diff --git a/.github/guides/VISUALS.md b/.github/guides/VISUALS.md index 4d8f7d3b585c8..69194004d4c10 100644 --- a/.github/guides/VISUALS.md +++ b/.github/guides/VISUALS.md @@ -406,6 +406,9 @@ There are a few snowflake layers that can be used to accomplish niche goals, alo Floating layers will float "up" the chain of things they're being drawn onto, until they find a real layer. They'll then offset off of that. +Adding `TOPDOWN_LAYER` (actual value `10000`) to another layer forces the appearance into topdown rendering, locally disabling [side map](#side_map-check-the-main-page-too). +We can think of this as applying to planes, since we don't want it interlaying with other non topdown objects. + This allows us to keep relative layer differences while not needing to make all sources static. Often very useful. ## Planes diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm index 8e4b42e823900..5b3efc37d685e 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_bughabitat.dmm @@ -188,7 +188,7 @@ /turf/open/floor/iron, /area/ruin/bughabitat) "sr" = ( -/obj/machinery/plumbing/growing_vat, +/obj/machinery/vatgrower, /turf/open/floor/iron, /area/ruin/bughabitat) "st" = ( @@ -322,14 +322,10 @@ /area/ruin/bughabitat) "Ku" = ( /obj/structure/table, -/obj/item/construction/plumbing/research, /turf/open/floor/plastic, /area/ruin/bughabitat) "Ly" = ( /obj/structure/table, -/obj/item/stack/ducts/fifty{ - amount = 23 - }, /mob/living/basic/butterfly, /turf/open/floor/plastic, /area/ruin/bughabitat) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm index 1a12daf1c6bb4..2e500943b6430 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm @@ -25,9 +25,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/icemoon, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm index 22af4367dd9e6..d01b86d5e4649 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm @@ -1,1747 +1,3595 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"b" = ( -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored) -"e" = ( -/obj/structure/trap/cult, +"ab" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 10 + }, +/obj/structure/stone_tile/center/burnt, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"an" = ( +/turf/open/misc/asteroid{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"cn" = ( +/obj/item/paper/crumpled/bloody/ruins/lavaland_incursion, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"dX" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface) +"eP" = ( +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/lavaland/surface) +"eV" = ( +/turf/closed/mineral/snowmountain/cavern/icemoon, +/area/icemoon/underground/explored) +"fF" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"gd" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"gi" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/slab, /turf/open/floor/cult, -/area/icemoon/underground) -"h" = ( -/obj/item/paper{ - default_raw_text = "We have managed to seal the beast inside, the last of its kind they say... unfortunately in doing so, it seems we have spawned creatures beyond our power to contain..." +/area/lavaland/surface) +"gE" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"gF" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/floor/cult, +/area/lavaland/surface) +"jY" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 }, -/obj/item/pen, /turf/open/misc/asteroid{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"mL" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"na" = ( +/obj/structure/girder/cult, +/turf/open/floor/cult, +/area/lavaland/surface) +"nY" = ( +/obj/item/grown/bananapeel, +/obj/structure/stone_tile/slab, +/turf/open/floor/cult, +/area/lavaland/surface) +"oK" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/engine/cult{ initial_gas_mix = "LAVALAND_ATMOS" }, -/area/icemoon/underground) -"q" = ( -/turf/open/genturf, -/area/lavaland/surface/outdoors/unexplored/danger/no_ruins) -"w" = ( +/area/lavaland/surface/outdoors) +"oV" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"pw" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"qv" = ( +/obj/structure/stone_tile/surrounding/burnt, +/obj/structure/stone_tile/center/burnt, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"qN" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"qV" = ( +/turf/open/floor/cult, +/area/lavaland/surface) +"rn" = ( +/obj/item/melee/cultblade/dagger, +/obj/item/paper/crumpled/bloody/ruins/lavaland_incursion/last, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"ry" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"tI" = ( +/turf/template_noop, +/area/template_noop) +"uP" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"uX" = ( +/mob/living/basic/mining/legion/cult_skeleton, +/turf/open/floor/cult, +/area/lavaland/surface) +"vu" = ( +/turf/open/misc/asteroid/lavaland_atmos, +/area/lavaland/surface/outdoors) +"vE" = ( /obj/machinery/door/airlock/cult/friendly{ use_power = 0 }, /turf/open/floor/cult, -/area/icemoon/underground) -"y" = ( -/mob/living/simple_animal/hostile/megafauna/dragon{ - desc = "Hunted to extinction, this icey moon is the final resting place for these creatures."; - name = "\proper the last ash drake" +/area/lavaland/surface) +"wf" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/block/burnt{ + dir = 1 }, -/turf/open/floor/mineral/gold, -/area/icemoon/underground) -"A" = ( -/obj/effect/mob_spawn/corpse/human/skeleton, -/turf/open/misc/asteroid{ +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"wP" = ( +/obj/structure/stone_tile/slab/burnt, +/turf/open/floor/engine/cult{ initial_gas_mix = "LAVALAND_ATMOS" }, -/area/icemoon/underground) -"E" = ( -/obj/item/grown/bananapeel, +/area/lavaland/surface/outdoors) +"xo" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding/cracked, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"xw" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 5 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/slab/cracked{ + dir = 10 + }, +/turf/open/misc/asteroid{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"yP" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"zz" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"zC" = ( +/obj/structure/trap/cult, /turf/open/floor/cult, -/area/icemoon/underground) -"J" = ( +/area/lavaland/surface) +"Cb" = ( /turf/closed/wall/mineral/cult, -/area/icemoon/underground) -"P" = ( -/turf/open/floor/mineral/silver, -/area/icemoon/underground) -"R" = ( -/turf/open/floor/mineral/gold, -/area/icemoon/underground) -"T" = ( -/turf/open/floor/cult, -/area/icemoon/underground) -"V" = ( -/obj/item/storage/toolbox/mechanical/old/clean, -/turf/open/misc/asteroid{ +/area/lavaland/surface) +"Ce" = ( +/turf/closed/mineral/volcanic/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/lavaland/surface) +"Cp" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface) +"Dq" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"GN" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/engine/cult{ initial_gas_mix = "LAVALAND_ATMOS" }, -/area/icemoon/underground) -"Z" = ( -/turf/open/misc/asteroid{ +/area/lavaland/surface/outdoors) +"If" = ( +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface) +"Ja" = ( +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"JE" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/icemoon/underground/explored) +"Ky" = ( +/turf/closed/mineral/volcanic/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"Nn" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/underground/explored) +"Nr" = ( +/turf/closed/wall/mineral/cult, +/area/lavaland/surface/outdoors) +"NB" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/slab/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"PT" = ( +/turf/open/floor/mineral/gold{ initial_gas_mix = "LAVALAND_ATMOS" }, -/area/icemoon/underground) +/area/lavaland/surface) +"PV" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/indestructible/necropolis/air, +/area/lavaland/surface) +"Qp" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface) +"QC" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"QL" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"Sw" = ( +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"SX" = ( +/obj/item/melee/cultblade/dagger, +/obj/item/clothing/glasses/hud/health/night/cultblind, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/misc/asteroid/lavaland_atmos, +/area/lavaland/surface/outdoors) +"Tr" = ( +/obj/structure/trap/cult, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"Uh" = ( +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 5 + }, +/turf/open/floor/engine/cult{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/lavaland/surface/outdoors) +"Uj" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface) +"UE" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"UF" = ( +/turf/open/indestructible/necropolis/air, +/area/lavaland/surface) +"UO" = ( +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 9 + }, +/turf/open/misc/asteroid{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"UX" = ( +/mob/living/basic/mining/legion/cult_skeleton, +/turf/open/indestructible/necropolis/air, +/area/lavaland/surface) +"UY" = ( +/turf/open/genturf, +/area/lavaland/surface/outdoors/unexplored/danger/no_ruins) +"Vh" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/cult, +/area/lavaland/surface) +"Vw" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"VX" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"Wm" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"WK" = ( +/obj/item/clothing/head/helmet/skull, +/turf/open/misc/asteroid/lavaland_atmos, +/area/lavaland/surface/outdoors) +"WN" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"Xm" = ( +/obj/structure/stone_tile/slab/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"XQ" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"Zs" = ( +/turf/open/misc/asteroid{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored) +"ZR" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/mob/living/simple_animal/hostile/megafauna/dragon{ + name = "\proper the last ash drake"; + desc = "The sole survivor of its species, hunted to the verge of extinction. This frozen hell is the final resting place for the last of the dragons." + }, +/turf/open/indestructible/boss, +/area/lavaland/surface) (1,1,1) = {" -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +tI +tI +tI +tI +tI +tI +tI +tI +tI +eV +Wm +Wm +Ja +Ja +Ja +Ja +Ja +Wm +eV +eV +eV +Ja +Ja +Ja +Ja +Ja +Wm +Wm +Nn +Ja +Ja +Ja +Ja +Nn +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI "} (2,1,1) = {" -b -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -w -w -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -b +tI +tI +tI +tI +tI +tI +tI +tI +eV +eV +eV +Ja +Ja +Ja +Ja +Ja +Ja +Ja +Wm +Wm +Wm +Ja +Ja +Ja +Ja +Ja +Ja +Ja +Ja +Zs +XQ +Ky +Ja +Ja +Wm +Ja +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI "} (3,1,1) = {" -b -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -T -e -T -T -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -b +tI +tI +tI +tI +tI +tI +tI +eV +eV +Wm +Wm +Zs +Ja +Ja +Ja +Ja +Ja +Ja +Zs +Zs +Zs +Zs +Zs +Zs +Ja +Ja +Ja +Ja +Zs +Ky +Ky +Ky +XQ +Ja +Ja +Wm +Nn +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI "} (4,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -T -T -E -T -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +tI +tI +eV +eV +Wm +XQ +XQ +XQ +Zs +Zs +Zs +Ja +Zs +Zs +XQ +XQ +XQ +XQ +Zs +Zs +Zs +XQ +XQ +Ja +Ja +Ja +Ky +Zs +Ja +Zs +Zs +Ja +Ja +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI "} (5,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -T -e -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +tI +Nn +Wm +Wm +XQ +Ky +Ky +XQ +Zs +XQ +Ja +Zs +Zs +Zs +Zs +Zs +Zs +XQ +XQ +XQ +XQ +XQ +XQ +XQ +Zs +Ja +Ja +Ja +Ja +Zs +Zs +Zs +Ja +Nn +Nn +Nn +Nn +Nn +tI +tI +tI +tI +Zs +Zs +tI +tI +tI +tI +tI +tI +tI "} (6,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -w -w -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +XQ +XQ +Ky +Ky +Ky +Ky +Ky +XQ +XQ +XQ +Zs +Zs +Zs +Ky +Ky +Zs +Zs +XQ +Zs +Ky +Zs +Zs +XQ +XQ +XQ +XQ +Zs +Zs +XQ +XQ +XQ +Zs +Ja +Wm +Wm +Nn +Nn +Nn +Nn +eV +Wm +XQ +Ky +Ky +tI +tI +tI +tI +tI +tI "} (7,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Nn +XQ +Zs +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Zs +Zs +Ky +Ky +Ky +Ky +Ky +Zs +Ky +Ky +XQ +XQ +XQ +XQ +XQ +XQ +XQ +Zs +XQ +XQ +XQ +XQ +XQ +Zs +Zs +Wm +Nn +Nn +eV +eV +XQ +Ky +Ky +XQ +Zs +tI +tI +tI +tI +tI "} (8,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +XQ +XQ +Ky +Ky +Zs +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Zs +XQ +XQ +XQ +Zs +XQ +XQ +Ky +Ky +Ky +Zs +XQ +XQ +Ky +Zs +Nn +eV +eV +eV +Ky +Ky +Ky +Ky +XQ +tI +tI +tI +tI +tI "} (9,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Wm +XQ +XQ +Wm +Wm +Cb +If +Ce +Ce +Ce +Ce +If +If +If +If +Cb +Cb +Cb +Cb +If +If +If +Cb +vE +vE +Cb +Cb +Cb +Cb +Cb +Cb +Ce +Ce +If +If +Ce +Ce +If +Cb +Cb +Cb +Cb +Ce +Ce +Cb +Ky +XQ +tI +tI +tI +tI +tI "} (10,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Nn +Nn +Nn +Nn +Wm +Cb +Cb +Cb +Cb +If +If +If +If +If +If +If +If +Cb +Cb +Cb +Cb +If +qV +zC +qV +qV +If +Cb +Cb +If +If +Cp +If +Cb +Cp +Cp +Cp +Cp +If +If +Cb +Cp +Cp +Cb +If +Ky +Wm +Nn +tI +tI +tI +tI "} (11,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +eV +eV +eV +Cb +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +an +Cb +qV +qV +qV +gF +Cb +zz +zz +an +zz +UY +UY +Vw +Vw +Vw +Vw +UY +UY +UY +UY +UY +UY +Cb +If +eV +Wm +Nn +tI +tI +tI +tI "} (12,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Nn +eV +eV +eV +eV +Cb +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +an +Cb +Cb +qV +zC +If +If +an +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +eV +Nn +Nn +tI +tI +tI +tI "} (13,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +eV +eV +eV +If +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +an +zz +Cb +vE +vE +If +zz +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +eV +Nn +Nn +tI +tI +tI +tI "} (14,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +tI +Nn +eV +eV +If +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +an +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +eV +eV +Nn +Nn +tI +tI +tI "} (15,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +tI +Nn +Nn +Ky +If +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +If +eV +eV +Nn +Nn +tI +tI +tI "} (16,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +tI +Nn +Ky +Ky +Ce +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +eV +eV +Nn +tI +tI +tI "} (17,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -V -Z -Z -Z -Z -Z -Z -Z -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +Ky +Ky +Ky +Ce +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +eV +eV +Nn +tI +tI +tI "} (18,1,1) = {" -b -J -J -J -J -q -q -q -q -q -q -q -q -q -q -q -A -J -J -J -J -J -J -Z -q -q -q -q -q -q -q -q -q -q -q -J -J -J -J -b +tI +tI +tI +Nn +Ky +Ky +Ky +Ky +Ce +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +eV +Nn +Nn +tI +tI +tI "} (19,1,1) = {" -b -J -T -T -J -J -q -q -q -q -q -q -q -q -q -q -h -J -R -P -P -R -J -Z -q -q -q -q -q -q -q -q -q -q -J -J -T -T -J -b +tI +tI +tI +Nn +Ky +Ky +Nn +Ky +If +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +If +Ky +eV +Nn +Nn +Nn +tI +tI "} (20,1,1) = {" -b -w -e -T -T -w -q -q -q -q -q -q -q -q -q -q -Z -J -P -R -R -P -J -Z -q -q -q -q -q -q -q -q -q -q -w -T -T -e -w -b +tI +tI +tI +Ky +Ky +Nn +Nn +eV +Cb +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +Ce +Ky +eV +eV +Nn +Nn +tI +tI "} (21,1,1) = {" -b -w -T -E -e -w -q -q -q -q -q -q -q -q -q -q -Z -J -P -R -y -P -J -Z -q -q -q -q -q -q -q -q -q -q -w -e -E -T -w -b +tI +tI +tI +Nn +Ky +Nn +eV +eV +Cb +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +Ce +Ky +Ky +eV +Nn +Nn +tI +tI "} (22,1,1) = {" -b -J -T -T -J -J -q -q -q -q -q -q -q -q -q -q -Z -J -R -P -P -R -J -Z -q -q -q -q -q -q -q -q -q -q -J -J -T -T -J -b +tI +tI +tI +tI +Nn +Nn +eV +eV +Cb +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Nn +Nn +Nn +tI "} (23,1,1) = {" -b -J -J -J -J -q -q -q -q -q -q -q -q -q -q -q -Z -J -J -J -J -J -J -Z -q -q -q -q -q -q -q -q -q -q -q -J -J -J -J -b +tI +tI +tI +tI +Nn +eV +Nn +eV +If +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Nr +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Nn +eV +Nn +Nn "} (24,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -Z -Z -Z -Z -Z -Z -Z -Z -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +eV +Wm +eV +If +If +Vw +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +vu +zz +GN +Sw +zz +vu +zz +Nr +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Ky +eV +eV +eV "} (25,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +Nn +Wm +mL +If +Cp +Vw +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +vu +Sw +zz +oK +wP +vu +Uh +Sw +vu +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +Ky +XQ +Ky +Ky +Ky +Ky +eV "} (26,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +tI +Nn +Wm +Wm +WN +If +If +Vw +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +zz +SX +cn +Cb +Cb +Cb +Cb +Sw +Sw +vu +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +If +XQ +XQ +XQ +Zs +Zs +Ky +Wm "} (27,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Nn +Wm +Wm +XQ +wf +If +Cp +Vw +Vw +zz +UY +UY +UY +UY +UY +UY +UY +UY +Nr +vu +zz +Cb +If +PT +PT +If +Cb +zz +zz +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Qp +Qp +Qp +If +If +If +pw +XQ +XQ +XQ +XQ +Wm +Wm "} (28,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +tI +Nn +Wm +Wm +XQ +Ky +If +Cp +Vw +Tr +zz +UY +UY +UY +UY +UY +UY +UY +UY +UY +Sw +oK +Cb +PT +dX +Uj +PT +Cb +Sw +ry +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +na +PV +Vh +If +eP +Xm +xw +jY +XQ +XQ +Zs +Ja "} (29,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +Nn +Wm +Ja +Wm +XQ +Ky +Ce +Cp +Vw +oK +Sw +UY +UY +UY +UY +UY +UY +UY +UY +UY +Sw +Sw +Cb +PT +Uj +ZR +PT +Cb +gE +Sw +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +vE +qV +qV +nY +gi +eP +qv +UE +VX +UO +XQ +Zs +QC "} (30,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +tI +eV +Ja +Ja +Wm +Ky +Ky +Ce +Cp +Vw +xo +an +UY +UY +UY +UY +UY +UY +UY +UY +Nr +zz +zz +Cb +If +PT +PT +If +Cb +zz +vu +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +vE +zC +UF +Vh +If +eP +NB +QL +Dq +QC +Ja +Ja +Zs "} (31,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +eV +eV +Ja +Ja +Zs +Ky +Ky +Ce +Cp +Vw +Vw +oK +UY +UY +UY +UY +UY +UY +UY +UY +UY +zz +vu +Sw +Cb +Cb +Cb +Cb +ab +fF +vu +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +Qp +Qp +If +If +gd +XQ +XQ +XQ +Ja +Zs +Wm "} (32,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +eV +Wm +Ja +Ja +Ky +Ky +Ky +Ce +Cp +Vw +Vw +zz +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +zz +Sw +vu +Sw +uP +vu +fF +rn +zz +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Qp +If +If +XQ +Zs +Zs +XQ +Zs +Ja +Wm "} (33,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +eV +Wm +Ja +Ja +Ky +Ky +Ky +Ce +Cp +Vw +UY +Vw +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +zz +zz +Sw +qN +zz +WK +vu +Nr +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +If +XQ +XQ +Zs +Zs +XQ +Ja +Wm "} (34,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +eV +Wm +Ja +Ky +Ky +Ky +Ky +Ce +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Nr +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +If +Zs +XQ +Zs +XQ +XQ +XQ +Wm "} (35,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -w -w -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +eV +Wm +Ja +Ky +Ky +Ky +Ky +If +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +If +Ky +Ky +XQ +XQ +Ky +Ky +Wm "} (36,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -T -e -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +Nn +Ja +Ja +Ky +Ky +Ky +yP +If +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Ky +Ky +Ky +eV "} (37,1,1) = {" -b -J -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -T -T -E -T -J -q -q -q -q -q -q -q -q -q -q -q -q -q -q -J -J -b +tI +Wm +Ja +Ja +Ky +Ky +Ky +oV +If +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Ky +Ky +eV +eV "} (38,1,1) = {" -b -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -T -e -T -T -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -b +tI +Wm +Ja +Ja +Ky +Ky +XQ +Zs +If +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cp +Ce +Ky +Ky +Ky +Ky +eV +eV +eV "} (39,1,1) = {" -b -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -w -w -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -b +tI +Wm +Ja +Ky +Ky +XQ +XQ +Zs +Cb +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +If +If +Ky +Ky +Nn +Nn +Nn +Nn +tI "} (40,1,1) = {" -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +tI +Wm +Ja +Ky +Ky +XQ +Zs +Ky +Cb +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +eV +Nn +Nn +Nn +tI +tI +"} +(41,1,1) = {" +tI +Wm +Ja +Ky +Ky +XQ +Ky +Ky +Cb +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +eV +Wm +Nn +Nn +tI +tI +"} +(42,1,1) = {" +tI +Wm +Ja +Ja +Ky +XQ +Ky +Ky +Cb +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +eV +XQ +XQ +Wm +Wm +Nn +tI +"} +(43,1,1) = {" +tI +Wm +Ja +Ja +Ky +XQ +Ky +Ky +If +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +Ky +XQ +Zs +Zs +Ja +Wm +Nn +"} +(44,1,1) = {" +tI +Nn +Wm +Ja +Ja +Zs +Ky +Ky +Ce +Cp +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +vE +vE +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Cb +Ky +Ky +Ja +Ja +Zs +Wm +Nn +"} +(45,1,1) = {" +tI +Nn +eV +Ja +Ja +Zs +XQ +Ky +If +If +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Qp +Qp +qV +qV +Cb +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Ce +Ky +Ky +Zs +Zs +Ja +Wm +eV +"} +(46,1,1) = {" +tI +Nn +eV +Ja +Ja +Wm +Zs +XQ +If +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Qp +UX +UF +qV +uX +Cb +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +Cb +Ce +Ky +Ja +Ja +Ja +Ja +Ja +eV +"} +(47,1,1) = {" +tI +Nn +eV +Wm +Ja +Ja +Zs +eV +Cb +Cb +Cb +If +If +If +If +If +Cp +Cp +Cp +If +If +If +If +Qp +Qp +UF +qV +qV +qV +Cb +Cb +Cb +Cp +Cp +Cp +Cp +Cp +Cp +Cp +Cb +Cb +Cb +Cb +Cb +Cb +Cb +Cb +Ce +Ky +Ky +Zs +Ja +Ja +Ja +Wm +"} +(48,1,1) = {" +tI +eV +eV +eV +Ja +Wm +Nn +eV +Cb +Cb +Cb +Cb +If +If +Ce +Ce +Ce +Ce +Ce +Ce +If +If +If +If +Qp +Qp +vE +vE +Cb +Cb +Cb +Ce +Cp +Cp +Cp +Ce +Ce +Ce +Ce +Ce +Ce +Ce +Cb +Cb +Cb +Cb +Cb +Cb +Ky +Zs +Ja +Ja +Ja +Wm +Nn +"} +(49,1,1) = {" +tI +eV +eV +eV +eV +Nn +Nn +Nn +eV +eV +eV +Zs +Ky +Ky +Ky +Ky +Ky +Ky +Ky +XQ +Zs +Ky +Ky +Ky +Ky +XQ +XQ +XQ +XQ +XQ +XQ +Zs +JE +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +XQ +XQ +Zs +Zs +Zs +Ja +Ja +Ky +Nn +Nn +"} +(50,1,1) = {" +tI +Nn +Nn +Nn +Nn +Nn +Nn +Nn +Nn +eV +eV +Zs +Ky +Ky +Ky +Ky +Ky +Ky +Zs +XQ +XQ +Zs +Ky +Ky +XQ +Zs +Zs +Zs +XQ +Zs +XQ +XQ +XQ +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Zs +XQ +XQ +XQ +XQ +Zs +XQ +XQ +Ja +Ky +Ky +Nn +Nn +"} +(51,1,1) = {" +tI +tI +tI +Nn +Nn +Nn +Nn +Nn +Nn +Nn +Nn +eV +Zs +Ky +Ky +Ky +Ky +Zs +Ja +XQ +XQ +XQ +Zs +Zs +Nn +Nn +Nn +Nn +Nn +Zs +Zs +XQ +XQ +Zs +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Zs +Zs +XQ +XQ +XQ +Ky +Ky +Ky +Ky +Nn +Nn +"} +(52,1,1) = {" +tI +tI +tI +tI +tI +tI +Nn +Nn +Nn +Nn +Nn +Nn +XQ +XQ +Ky +Ky +Ky +Ja +Ja +Ja +Zs +Ky +XQ +Nn +Nn +Nn +eV +eV +Nn +Nn +Nn +XQ +XQ +eV +eV +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +eV +Nn +tI +"} +(53,1,1) = {" +tI +tI +tI +tI +tI +tI +tI +tI +Nn +Nn +Nn +Nn +Nn +XQ +Ky +Ky +Ky +Ky +Ja +Ja +Ky +Ky +XQ +eV +Nn +eV +eV +tI +tI +Nn +Nn +Nn +eV +eV +eV +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +eV +eV +eV +tI +tI +"} +(54,1,1) = {" +tI +tI +tI +tI +tI +tI +tI +tI +tI +Nn +Nn +Nn +Nn +Zs +XQ +Ky +Ky +Ky +Ky +Ky +Ky +Ky +eV +eV +eV +tI +tI +tI +tI +tI +tI +Nn +eV +eV +eV +eV +eV +eV +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +Ky +eV +eV +eV +eV +tI +tI +tI +"} +(55,1,1) = {" +tI +tI +tI +tI +tI +tI +tI +tI +tI +Nn +Nn +Nn +Nn +Nn +Nn +XQ +Ky +Ky +Ky +Ky +Ky +eV +eV +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +tI +eV +eV +eV +eV +eV +eV +tI +tI +tI +tI +eV +eV +eV +eV +eV +eV +tI +tI +tI +tI "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm index d4ebe90811fb2..851cfe35548b6 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm @@ -23,9 +23,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/lavaland_atmos, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 2597a3a4a9985..ade5d068b6ebc 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -59,20 +59,6 @@ /obj/structure/alien/weeds/node, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) -"ar" = ( -/obj/effect/decal/cleanable/robot_debris, -/obj/structure/alien/weeds, -/obj/structure/closet/crate, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/plasteel{ - amount = 30 - }, -/obj/item/stack/sheet/mineral/diamond, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "as" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/bridge) @@ -226,16 +212,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) -"bh" = ( -/obj/machinery/modular_computer/preset/research/away{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/brigdoor/right/directional/east, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "bi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -249,6 +225,12 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) +"bl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "bm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue, @@ -794,15 +776,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) -"ds" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/table, -/obj/machinery/door/window/brigdoor/right/directional/east, -/obj/item/computer_disk, -/turf/open/floor/iron/dark, -/area/ruin/space/ancientstation/delta/ai) "dt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -897,6 +870,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) +"dT" = ( +/obj/machinery/modular_computer/preset/research/away{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/brigdoor/right/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "dU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -969,15 +952,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/bridge) -"ek" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/structure/closet/crate/bin, -/obj/effect/spawner/random/trash/garbage, -/obj/effect/spawner/random/trash/garbage, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "el" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1095,18 +1069,6 @@ "eJ" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/sec) -"eK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/item/chair{ - pixel_y = -8; - pixel_x = 13 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "eL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1541,11 +1503,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) -"gM" = ( -/obj/machinery/rnd/production/circuit_imprinter/offstation, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/white, -/area/ruin/space/ancientstation/delta/rnd) "gP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/operating/oldstation{ @@ -1921,15 +1878,6 @@ /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) -"io" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/folder/white, -/obj/item/reagent_containers/cup/beaker, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/dropper, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/delta/rnd) "ip" = ( /obj/machinery/chem_master, /obj/effect/decal/cleanable/dirt, @@ -2024,6 +1972,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/delta/rnd) +"iH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/fluff/broken_canister_frame, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "iI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2100,6 +2059,16 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"jc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "je" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -2266,13 +2235,6 @@ /obj/machinery/door/window/left/directional/east, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) -"jP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/duffelbag/sec, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "jU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/public/glass{ @@ -2687,14 +2649,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) -"lz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/obj/machinery/computer/apc_control/away, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "lB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/east, @@ -2909,14 +2863,6 @@ /obj/structure/cable, /turf/template_noop, /area/ruin/space/solars/ancientstation/charlie/solars) -"mz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/messenger/eng, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "mA" = ( /obj/machinery/conveyor{ id = "beta" @@ -2948,12 +2894,6 @@ }, /turf/open/floor/plating, /area/ruin/space/ancientstation/beta/mining) -"mF" = ( -/obj/machinery/shower/directional/west{ - has_water_reclaimer = 0 - }, -/turf/open/floor/pod/dark, -/area/ruin/space/ancientstation/delta/biolab) "mG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3128,31 +3068,9 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"ng" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/structure/fluff/broken_canister_frame, -/obj/effect/decal/cleanable/plasma, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "nk" = ( /turf/closed/wall, /area/ruin/space/ancientstation/charlie/dorms) -"nm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/item/tank/internals/oxygen{ - pixel_x = 1 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "np" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/north, @@ -3202,27 +3120,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) -"nC" = ( -/obj/structure/closet/crate, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/item/hemostat, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/retractor, -/obj/item/surgical_drapes, -/obj/machinery/light/small/broken/directional/west, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath/medical, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/obj/item/tank/internals/anesthetic/pure, -/turf/open/floor/iron/airless, -/area/ruin/space/ancientstation/beta/medbay) "nD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/optable, @@ -3230,6 +3127,15 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/medbay) +"nG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/machinery/door/window/brigdoor/right/directional/east, +/obj/item/computer_disk, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "nI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/science, @@ -3288,6 +3194,11 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"nT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/pipedispenser, +/turf/open/floor/iron/airless, +/area/ruin/space/ancientstation/beta/hall) "nU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -3432,11 +3343,6 @@ /obj/effect/decal/cleanable/xenoblood/xgibs/core, /turf/open/floor/iron/white, /area/ruin/space/ancientstation/delta/rnd) -"oK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/pipedispenser, -/turf/open/floor/iron/airless, -/area/ruin/space/ancientstation/beta/hall) "oL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3567,10 +3473,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) -"pv" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/engine/n2, -/area/ruin/space/ancientstation/beta/atmos) "pD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -3588,6 +3490,14 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) +"pI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/apc_control/away, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "pK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -3654,12 +3564,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/mining) -"qk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "ql" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3712,11 +3616,6 @@ }, /turf/closed/wall, /area/ruin/space/ancientstation/beta/atmos) -"qH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/plumbing/input, -/turf/open/floor/engine, -/area/ruin/space/ancientstation/delta/biolab) "qK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/scrubber, @@ -3807,6 +3706,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"rw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/engine/n2, +/area/ruin/space/ancientstation/beta/atmos) "rC" = ( /obj/effect/decal/cleanable/blood/xtracks{ dir = 8 @@ -3894,13 +3797,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"se" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/engie) "si" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, @@ -4235,15 +4131,6 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/hall) -"uC" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored{ - dir = 8; - chamber_id = "beta-n2" - }, -/turf/open/floor/engine/n2, -/area/ruin/space/ancientstation/beta/atmos) "uI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -4316,6 +4203,17 @@ dir = 1 }, /area/ruin/space/ancientstation/delta/biolab) +"vh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/item/tank/internals/oxygen{ + pixel_x = 1 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "vk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4440,19 +4338,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"wg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/structure/closet/crate/secure/weapon{ - req_access = list("away_sec") - }, -/obj/item/spess_knife, -/obj/item/clothing/suit/armor/vest/old, -/obj/item/gun/ballistic/rifle/boltaction, -/obj/item/ammo_box/strilka310, -/obj/item/ammo_box/strilka310, -/turf/open/floor/plating, -/area/ruin/space/ancientstation/delta/hall) "wi" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/command{ @@ -4616,6 +4501,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/supermatter) +"xd" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/folder/white, +/obj/item/reagent_containers/cup/beaker, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/dropper, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/delta/rnd) "xi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -4699,6 +4593,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) +"xW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/cafeteria, +/area/ruin/space/ancientstation/charlie/kitchen) "xY" = ( /obj/effect/turf_decal/caution/stand_clear, /obj/effect/turf_decal/stripes/line, @@ -5027,6 +4927,13 @@ "Ax" = ( /turf/closed/mineral/plasma, /area/ruin/space/ancientstation/beta/hall) +"Az" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "AA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random/dead, @@ -5064,6 +4971,13 @@ "AK" = ( /turf/closed/wall, /area/ruin/space/ancientstation/beta/medbay) +"AM" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/stripes/line, +/obj/structure/tank_dispenser/plasma, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "AT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5128,12 +5042,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/sec) -"Bq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/cafeteria, -/area/ruin/space/ancientstation/charlie/kitchen) "Bs" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/engine/o2, @@ -5220,6 +5128,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) +"BR" = ( +/obj/machinery/shower/directional/west{ + has_water_reclaimer = 0 + }, +/turf/open/floor/pod/dark, +/area/ruin/space/ancientstation/delta/biolab) +"BS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/structure/closet/crate/secure/weapon{ + req_access = list("away_sec") + }, +/obj/item/spess_knife, +/obj/item/clothing/suit/armor/vest/old, +/obj/item/gun/ballistic/rifle/boltaction, +/obj/item/ammo_box/strilka310, +/obj/item/ammo_box/strilka310, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/delta/hall) "Cc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -5274,6 +5201,27 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/kitchen) +"Ct" = ( +/obj/structure/closet/crate, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/item/hemostat, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/retractor, +/obj/item/surgical_drapes, +/obj/machinery/light/small/broken/directional/west, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/item/tank/internals/anesthetic/pure, +/turf/open/floor/iron/airless, +/area/ruin/space/ancientstation/beta/medbay) "CA" = ( /obj/effect/turf_decal/tile/purple/anticorner/contrasted{ dir = 4 @@ -5402,14 +5350,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/supermatter) -"DA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/item/storage/backpack/science, -/obj/item/storage/backpack/messenger/science, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/charlie/dorms) "DB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, @@ -5419,14 +5359,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/dorms) -"DC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/binary/tank_compressor, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "DI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/highsecurity, @@ -5618,6 +5550,22 @@ /obj/machinery/space_heater, /turf/open/floor/plating/rust, /area/ruin/space/ancientstation/delta/hall) +"Fm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/oxygen{ + pixel_y = -8; + pixel_x = 8 + }, +/obj/item/tank/internals/oxygen{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "Fo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, @@ -5640,6 +5588,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/diagonal, /area/ruin/space/ancientstation/beta/gravity) +"Ft" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vatgrower, +/turf/open/floor/engine, +/area/ruin/space/ancientstation/delta/biolab) "Fv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -5755,13 +5709,6 @@ /obj/effect/decal/cleanable/food/flour, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) -"Gb" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/turf_decal/stripes/line, -/obj/structure/tank_dispenser/plasma, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "Gd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -5815,6 +5762,16 @@ "Gz" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/delta/hall) +"GA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/binary/tank_compressor{ + dir = 8 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/beta/atmos) "GH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -5842,16 +5799,6 @@ }, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) -"GP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "GX" = ( /turf/closed/wall/rust, /area/ruin/space/ancientstation/delta/biolab) @@ -6012,6 +5959,15 @@ dir = 4 }, /area/ruin/space/ancientstation/delta/biolab) +"Ib" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "Ic" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -6185,6 +6141,14 @@ /obj/structure/lattice, /turf/template_noop, /area/space/nearstation) +"Jk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/industrial, +/obj/item/storage/backpack/messenger/eng, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) "Jo" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -6204,6 +6168,20 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"Js" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/alien/weeds, +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/plasteel{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/diamond, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/delta/ai) "Jw" = ( /obj/effect/decal/cleanable/glass, /obj/structure/closet/firecloset, @@ -6416,6 +6394,13 @@ /obj/effect/mapping_helpers/broken_machine, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/dorms) +"Kr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/duffelbag/sec, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) "Ku" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -7021,6 +7006,14 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/white/textured, /area/ruin/space/ancientstation/delta/proto) +"Oi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/storage/backpack/science, +/obj/item/storage/backpack/messenger/science, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/dorms) "Ol" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/east, @@ -7416,6 +7409,11 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/atmos) +"Rg" = ( +/obj/machinery/rnd/production/circuit_imprinter/offstation, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/ruin/space/ancientstation/delta/rnd) "Rm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7793,14 +7791,6 @@ /obj/machinery/door/window/brigdoor/right/directional/east, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/mining) -"TO" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/plumbing/growing_vat{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ruin/space/ancientstation/delta/biolab) "TV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance/two, @@ -8134,6 +8124,15 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"WT" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored{ + dir = 8; + chamber_id = "beta-n2" + }, +/turf/open/floor/engine/n2, +/area/ruin/space/ancientstation/beta/atmos) "WV" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -8228,22 +8227,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2, /area/ruin/space/ancientstation/beta/atmos) -"XB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/oxygen{ - pixel_y = -8; - pixel_x = 8 - }, -/obj/item/tank/internals/oxygen{ - pixel_x = -4; - pixel_y = 4 - }, -/turf/open/floor/iron, -/area/ruin/space/ancientstation/beta/atmos) "XD" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Custodial Closet" @@ -8506,6 +8489,18 @@ /obj/machinery/light/small/broken/directional/east, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) +"YT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/item/chair{ + pixel_y = -8; + pixel_x = 13 + }, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "YW" = ( /turf/open/floor/iron/textured_half, /area/ruin/space/ancientstation/beta/supermatter) @@ -9949,8 +9944,8 @@ Rf mH mH mH -qk -GP +bl +jc bJ aa aa @@ -9996,7 +9991,7 @@ zi NP NB oE -nC +Ct Ck aa aa @@ -10006,9 +10001,9 @@ Uu SZ Uu Yp -Gb -XB -nm +AM +Fm +vh kK Ln ny @@ -10016,7 +10011,7 @@ nz fR nB nK -DC +GA mH aa aa @@ -10082,7 +10077,7 @@ nA UW kW HA -ng +iH bJ nr aa @@ -10204,7 +10199,7 @@ gJ Ax Ax kQ -oK +nT Sf Cj VF @@ -10278,7 +10273,7 @@ bJ TB Kf zm -uC +WT XA bJ UP @@ -10344,7 +10339,7 @@ bJ CU Lh Zg -pv +rw OS bJ aa @@ -10410,7 +10405,7 @@ bJ Bs Lh Gi -pv +rw Ze bJ nr @@ -11645,7 +11640,7 @@ jE aa Ma By -eK +YT fc Wn Tf @@ -11710,7 +11705,7 @@ mS jE dl eI -lz +pI ju hm Yi @@ -11718,7 +11713,7 @@ Gt Yi hm em -ek +Ib dl eI Ox @@ -11852,7 +11847,7 @@ QZ hP em em -se +Az Ox iV fI @@ -12254,11 +12249,11 @@ wb bR aG nk -DA +Oi gZ kN Mt -mz +Jk nk nk aa @@ -12574,7 +12569,7 @@ dR Sr dz fi -Bq +xW GN ht ht @@ -12786,7 +12781,7 @@ ks uS jB Kk -jP +Kr aG nk aa @@ -14271,8 +14266,8 @@ ad ag aM NS -bh -ds +dT +nG cz cz ad @@ -14292,7 +14287,7 @@ oe WV ca hY -io +xd iE Yf wx @@ -14352,7 +14347,7 @@ wx BN fa hh -gM +Rg oH of WV @@ -15148,8 +15143,8 @@ NG OE UR rp -qH -TO +CK +Ft Xy vy rp @@ -15193,7 +15188,7 @@ aa aa ad ad -ar +Js be bp ZW @@ -15211,16 +15206,16 @@ wK UH ae GX -mF +BR AT rp -CK +vy VW Wd Np rp jg -wg +BS yx bE Jg diff --git a/_maps/RandomRuins/SpaceRuins/phonebooth.dmm b/_maps/RandomRuins/SpaceRuins/phonebooth.dmm index 9f766e42f850b..2eb0698ebbfd5 100644 --- a/_maps/RandomRuins/SpaceRuins/phonebooth.dmm +++ b/_maps/RandomRuins/SpaceRuins/phonebooth.dmm @@ -23,9 +23,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/airless, diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index ee207f21e86d6..d66be7f5614ff 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -172,21 +172,14 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/research) "aQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aR" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/effect/landmark/awaystart, /obj/item/bedsheet/purple, @@ -196,21 +189,14 @@ /turf/closed/wall, /area/awaymission/snowdin/post/dorm) "aT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/bedsheet/purple, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aU" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -218,61 +204,40 @@ /turf/closed/wall/rust, /area/awaymission/snowdin/post/dorm) "aW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aX" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/effect/landmark/awaystart, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aZ" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/item/bedsheet/orange, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "ba" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sign/poster/contraband/kudzu/directional/north, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bb" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/effect/landmark/awaystart, /obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside, @@ -299,11 +264,7 @@ /turf/closed/indestructible/rock/snow/ice, /area/awaymission/snowdin/cave/cavern) "bi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -325,11 +286,7 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "bl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -385,29 +342,17 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/kitchenspike, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, @@ -430,12 +375,7 @@ /area/awaymission/snowdin/post/research) "bF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/research) @@ -453,33 +393,18 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "bH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "bI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "bJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) @@ -494,11 +419,7 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) @@ -513,11 +434,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "bQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch3"; @@ -526,11 +443,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch2"; @@ -539,11 +452,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch1"; @@ -552,11 +461,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormhydro2"; @@ -566,11 +471,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormhydro1"; @@ -580,11 +481,7 @@ /area/awaymission/snowdin/post/dorm) "bV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -613,11 +510,7 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "cc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/kitchenspike, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, @@ -650,11 +543,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/light/directional/north, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) @@ -673,11 +562,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -695,11 +580,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) @@ -712,11 +593,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -729,11 +606,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -748,11 +621,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -770,11 +639,7 @@ /area/awaymission/snowdin/post/research) "cA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, @@ -816,12 +681,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) @@ -829,12 +689,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ name = "Freezer" }, @@ -846,24 +701,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/kitchen/fork, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -872,63 +717,33 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/holopad, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/food/egg_smudge, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -949,23 +764,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -974,12 +779,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -988,21 +788,12 @@ /area/awaymission/snowdin/post/dorm) "cY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1011,12 +802,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "da" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1026,34 +812,20 @@ /area/awaymission/snowdin/post/dorm) "db" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "dd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "de" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1062,21 +834,12 @@ /area/awaymission/snowdin/post/dorm) "df" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "dg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1088,12 +851,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "dh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -1101,12 +859,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "di" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1117,12 +870,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/research) @@ -1163,11 +911,7 @@ /area/awaymission/snowdin/post/kitchen) "dt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/food/flour, /obj/structure/cable, /turf/open/floor/plating, @@ -1245,11 +989,7 @@ /area/awaymission/snowdin/post) "dL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, @@ -1325,11 +1065,7 @@ /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/east, /obj/structure/table/wood, /obj/item/paper_bin, @@ -1355,11 +1091,7 @@ /area/awaymission/snowdin/post/dorm) "eh" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/landmark/awaystart, /obj/item/bedsheet/red, /obj/effect/mapping_helpers/broken_floor, @@ -1371,11 +1103,7 @@ /area/awaymission/snowdin/post) "ej" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post) @@ -1434,11 +1162,7 @@ /area/awaymission/snowdin/post/kitchen) "ez" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -1500,11 +1224,7 @@ /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eQ" = ( @@ -1514,12 +1234,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "eR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -1531,12 +1246,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) @@ -1544,12 +1254,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ id_tag = "snowdindormsec"; name = "James Reed's Private Quarters" @@ -1560,12 +1265,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -1573,22 +1273,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/trash/cheesie, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "eW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/trash/cheesie, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -1622,11 +1312,7 @@ /area/awaymission/snowdin/post/research) "fd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, @@ -1657,11 +1343,7 @@ /area/awaymission/snowdin/post/messhall) "fj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/public/glass{ name = "Kitchen" }, @@ -1724,12 +1406,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "fu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /turf/open/floor/plating, @@ -1745,11 +1422,7 @@ /area/awaymission/snowdin/post) "fx" = ( /obj/item/reagent_containers/blood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -1828,11 +1501,7 @@ /area/awaymission/snowdin/post/hydro) "fQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) @@ -1851,11 +1520,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) "fV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 4 @@ -1907,11 +1572,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/cave) "gh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) @@ -1919,11 +1580,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -1956,11 +1613,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/cave/mountain) "gm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/closet/crate, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/suit/hooded/wintercoat, @@ -1968,12 +1621,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "gn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -1981,37 +1629,14 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "go" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/awaymission/snowdin/post) -"gp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "gq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -2084,11 +1709,7 @@ /area/awaymission/snowdin/post/hydro) "gF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2118,11 +1739,7 @@ /area/awaymission/snowdin/post/hydro) "gL" = ( /obj/structure/sink/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) @@ -2185,12 +1802,7 @@ /turf/closed/mineral/diamond/ice, /area/awaymission/snowdin/cave/cavern) "gZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -2204,12 +1816,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -2220,12 +1827,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance{ name = "Misc Storage" }, @@ -2233,33 +1835,18 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "hc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "hd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "he" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/closet/crate/preopen, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/shoes/winterboots, @@ -2299,10 +1886,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "ho" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_main/mechbay) "hp" = ( @@ -2360,11 +1944,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "hA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "hB" = ( @@ -2418,24 +1998,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "hJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ id_tag = "snowdindormcap"; name = "Overseer's Private Quarters" @@ -2446,24 +2016,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "hL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2486,11 +2046,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "hO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -2504,11 +2060,7 @@ /area/awaymission/snowdin/post) "hP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /obj/structure/cable, @@ -2533,11 +2085,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "hT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/landmark/awaystart, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -2551,11 +2099,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "hW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "hX" = ( @@ -2568,11 +2112,7 @@ /area/awaymission/snowdin/post/hydro) "hY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) @@ -2591,15 +2131,6 @@ /obj/structure/fireaxecabinet/directional/north, /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) -"ib" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/hydro) "ic" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall/ice, @@ -2660,22 +2191,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "ip" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2683,12 +2204,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "iq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2699,12 +2215,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "ir" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -2715,12 +2226,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "is" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2735,12 +2241,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "it" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2751,11 +2252,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "iu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -2767,12 +2264,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2782,12 +2274,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sign/departments/medbay/directional/north, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2819,12 +2306,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "iB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, @@ -2835,12 +2317,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "iC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/landmark/awaystart, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) @@ -2862,11 +2339,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "iH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "iI" = ( @@ -2885,11 +2358,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "iL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 }, @@ -2908,23 +2377,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iP" = ( /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2932,12 +2391,7 @@ /area/awaymission/snowdin/post/garage) "iQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2947,24 +2401,14 @@ /obj/machinery/door/airlock/public/glass{ name = "Garage" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -2972,12 +2416,7 @@ /area/awaymission/snowdin/post/garage) "iT" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2991,12 +2430,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iV" = ( @@ -3004,12 +2438,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "iW" = ( @@ -3041,12 +2470,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/storage/box{ name = "box of donkpockets" }, @@ -3070,11 +2494,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "jh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -3120,12 +2540,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -3134,12 +2549,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3148,12 +2558,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -3180,11 +2585,7 @@ /area/awaymission/snowdin/post/gateway) "jv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/landmark/awaystart, /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -3215,20 +2616,12 @@ /area/awaymission/snowdin/post/messhall) "jz" = ( /obj/structure/table, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/kitchen/fork, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "jB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 @@ -3259,11 +2652,7 @@ }, /obj/effect/landmark/awaystart, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jF" = ( @@ -3287,21 +2676,14 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3325,11 +2707,7 @@ }, /area/awaymission/snowdin/cave/cavern) "jP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ name = "Bathroom" @@ -3356,11 +2734,7 @@ /area/awaymission/snowdin/post) "jV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, @@ -3385,11 +2759,7 @@ /area/awaymission/snowdin/post/gateway) "jZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/poddoor/shutters/preopen{ id = "snowdin_gate" }, @@ -3406,11 +2776,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "kc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) @@ -3436,41 +2802,23 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "ki" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "kj" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "kk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -3505,21 +2853,12 @@ /turf/closed/wall/ice, /area/awaymission/snowdin/cave/mountain) "kv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -3527,12 +2866,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3540,12 +2874,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "ky" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3555,37 +2884,15 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) -"kA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/showroomfloor, -/area/awaymission/snowdin/post/dorm) "kB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kF" = ( @@ -3615,11 +2922,7 @@ /area/awaymission/snowdin/post) "kK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -3685,11 +2988,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "kV" = ( @@ -3718,11 +3017,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "kZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3733,11 +3028,7 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "lb" = ( /obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3751,12 +3042,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "lf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -3771,12 +3057,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lk" = ( @@ -3788,22 +3069,13 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "lm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/mop_bucket/janitorialcart, /obj/item/mop, /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "lo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -3815,12 +3087,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/two, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3830,12 +3097,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/three, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3846,12 +3108,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/four, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3861,12 +3118,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/five, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3876,12 +3128,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/six, /obj/structure/cable, /turf/open/floor/iron, @@ -3890,23 +3137,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/seven, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post) "lv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /turf/open/floor/iron, @@ -3915,12 +3153,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post) @@ -3928,12 +3161,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -3948,23 +3176,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/firedoor, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -3972,12 +3190,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "lA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3985,12 +3198,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "lB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4001,12 +3209,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) @@ -4014,21 +3217,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4041,12 +3235,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -4054,11 +3243,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -4067,24 +3252,14 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) "lI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, @@ -4099,33 +3274,14 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "lK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/hydro) -"lL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lM" = ( /obj/machinery/door/airlock/external/glass/ruin, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -4136,12 +3292,7 @@ /area/awaymission/snowdin/post/garage) "lO" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -4149,12 +3300,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "lP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4165,24 +3311,14 @@ /obj/machinery/door/airlock{ name = "Mechanic's Quarters" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "lR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -4229,12 +3365,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "mb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4242,12 +3373,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "mc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4261,12 +3387,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -4274,12 +3395,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "me" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -4287,12 +3403,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "mf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4348,11 +3459,7 @@ /area/awaymission/snowdin/post/messhall) "mo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) @@ -4405,12 +3512,7 @@ /turf/open/floor/plating/snowed/smoothed, /area/awaymission/snowdin/outside) "my" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "mz" = ( @@ -4451,22 +3553,13 @@ /area/awaymission/snowdin/post/custodials) "mI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post) "mJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4500,11 +3593,7 @@ /area/awaymission/snowdin/post/messhall) "mP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/engineering/glass{ name = "Engineering" }, @@ -4530,11 +3619,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "mT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -4589,12 +3675,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "ne" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -4603,12 +3684,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "nf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4621,49 +3697,20 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "nh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/plating, /area/awaymission/snowdin/post) "ni" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post) -"nj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) -"nk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) "nl" = ( /obj/effect/baseturf_helper/asteroid/snow, /turf/closed/wall, @@ -4676,11 +3723,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "np" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4780,11 +3823,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "nM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post) @@ -4811,11 +3850,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "nR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -4867,11 +3902,7 @@ /turf/closed/wall, /area/awaymission/snowdin/post/secpost) "of" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -4914,32 +3945,17 @@ /area/awaymission/snowdin/post/engineering) "on" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "oo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "op" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "or" = ( @@ -5006,43 +4022,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/secpost) "oE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) "oF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/secpost) "oG" = ( /obj/structure/table, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 }, @@ -5067,11 +4063,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "oK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -5079,11 +4071,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "oL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -5105,11 +4093,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "oO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) @@ -5267,23 +4251,13 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "ps" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post) "pt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, @@ -5299,11 +4273,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "pv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible{ dir = 8 }, @@ -5406,14 +4376,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post) -"pQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) "pR" = ( /obj/structure/closet/emcloset, /obj/item/clothing/suit/hooded/wintercoat, @@ -5427,11 +4389,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "pT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible{ dir = 5 }, @@ -5592,11 +4550,7 @@ /area/awaymission/snowdin/post) "qs" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, @@ -5605,28 +4559,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /obj/machinery/power/terminal{ dir = 8 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) -"qu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/engineering) "qv" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ name = "Air Mix To Turbine Mix" @@ -5690,7 +4629,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "qF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/cavern2) "qG" = ( @@ -5738,11 +4677,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "qS" = ( @@ -5823,9 +4758,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) "rd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) @@ -5854,12 +4788,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "rm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post) "rn" = ( @@ -5872,11 +4801,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "ro" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/engineering) "rp" = ( @@ -5969,11 +4894,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "rI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer4{ + dir = 1 }, /obj/effect/light_emitter{ name = "cave light"; @@ -6549,11 +5471,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "ut" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -6782,7 +5701,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "vt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "vu" = ( @@ -6802,12 +5721,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/cavern1) "vy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -6815,7 +5729,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "vA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/cavern1) "vB" = ( @@ -6843,7 +5757,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/cavern1) "vG" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ +/obj/machinery/atmospherics/components/unary/outlet_injector/layer4{ dir = 1 }, /turf/open/floor/plating/snowed/cavern, @@ -7134,12 +6048,7 @@ /turf/open/floor/engine/cult, /area/awaymission/snowdin/post/mining_dock) "xw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/firealarm/directional/west, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -7298,13 +6207,6 @@ slowdown = 1 }, /area/awaymission/snowdin/cave) -"xV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, -/turf/closed/mineral/snowmountain/cavern, -/area/awaymission/snowdin/cave/cavern) "xW" = ( /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_dock) @@ -7708,7 +6610,7 @@ /turf/closed/wall/mineral/wood, /area/awaymission/snowdin/igloo) "zv" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 8 }, /turf/open/floor/plating/snowed/cavern, @@ -7760,9 +6662,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) "zH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/machinery/space_heater, /obj/structure/sign/warning/xeno_mining/directional/east, @@ -7770,14 +6671,11 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) "zI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_dock) "zJ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -10244,11 +9142,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/storage/box{ name = "box of donkpockets" }, @@ -10425,11 +9319,8 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "MP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/machinery/firealarm/directional/east, /obj/machinery/light/broken/directional/east, @@ -10556,11 +9447,8 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "NA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -10692,12 +9580,7 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "Oh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron/showroomfloor, @@ -10822,22 +9705,14 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) "OX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "OZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock/security{ name = "Security Checkpoint" @@ -10893,12 +9768,7 @@ }, /area/awaymission/snowdin/cave) "Pm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -10990,11 +9860,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/cave) "PU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/east{ id = "snowdindormcap"; @@ -11098,9 +9964,8 @@ }, /area/awaymission/snowdin/cave) "Qn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/structure/sign/warning/xeno_mining/directional/east, /turf/open/floor/plating, @@ -11140,11 +10005,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) "QB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /obj/machinery/light/broken/directional/south, /obj/effect/mapping_helpers/broken_floor, @@ -11202,11 +10064,7 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "QN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/public/glass, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -11493,12 +10351,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "Sr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -11837,7 +10690,7 @@ /turf/open/floor/engine/plasma, /area/awaymission/snowdin/post/engineering) "Up" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/post/cavern2) "Uq" = ( @@ -11852,12 +10705,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) "Us" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -12458,12 +11306,7 @@ "Yd" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "Ye" = ( @@ -12643,11 +11486,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/gateway) "Zj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -12664,11 +11503,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "Zp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/item/storage/medkit/o2{ pixel_x = 4; @@ -12730,12 +11565,7 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "ZH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) @@ -19500,7 +18330,7 @@ aV ir jh jP -kA +lf Oh aV aV @@ -21293,7 +20123,7 @@ dG dM Mg fz -gp +gn hg hN it @@ -23873,7 +22703,7 @@ kK lv js jW -nj +nM nL dK js @@ -24130,14 +22960,14 @@ kJ lw jo js -nk +rm nM QN oK ps -pQ +rm qs -pQ +rm rm rH dX @@ -25678,7 +24508,7 @@ on oO pv pT -qu +ZH Sj rp SK @@ -28748,12 +27578,12 @@ bf fV gL hA -ib +lK iL jB iL iL -lL +lK mv iK nA @@ -62267,7 +61097,7 @@ eJ eJ eJ eL -xV +eJ fr fr fr diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 5eeed4517657e..7d8b1cd028d46 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -17,13 +17,6 @@ "ag" = ( /turf/closed/wall/mineral/titanium, /area/awaymission/undergroundoutpost45/central) -"ah" = ( -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, -/area/awaymission/undergroundoutpost45/caves) "ai" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -451,11 +444,7 @@ /area/awaymission/undergroundoutpost45/central) "ci" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "cm" = ( /obj/effect/decal/cleanable/dirt, @@ -6396,11 +6385,7 @@ "zb" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ze" = ( /obj/structure/table, @@ -6430,11 +6415,7 @@ /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) "zq" = ( -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zr" = ( /obj/machinery/door/firedoor, @@ -6470,19 +6451,11 @@ "zK" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zO" = ( /obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zX" = ( /obj/structure/closet/secure_closet{ @@ -6604,11 +6577,7 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "BN" = ( /obj/machinery/computer/monitor{ @@ -6621,21 +6590,13 @@ /area/awaymission/undergroundoutpost45/engineering) "BQ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Cd" = ( /obj/structure/alien/weeds, /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Cj" = ( /obj/structure/table/reinforced, @@ -6760,14 +6721,10 @@ /turf/open/floor/iron/dark, /area/awaymission/undergroundoutpost45/gateway) "DJ" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ dir = 6 }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "DL" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -6907,11 +6864,7 @@ /area/awaymission/undergroundoutpost45/central) "Gn" = ( /obj/structure/alien/weeds, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Gp" = ( /obj/structure/table/reinforced, @@ -6963,11 +6916,7 @@ "HW" = ( /obj/structure/alien/weeds, /obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Ic" = ( /obj/structure/cable, @@ -7018,11 +6967,7 @@ "IT" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "IV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7115,11 +7060,7 @@ "KN" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "KO" = ( /obj/machinery/door/firedoor, @@ -7139,11 +7080,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "KU" = ( /obj/structure/closet/crate, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "KW" = ( /obj/machinery/airalarm/directional/north, @@ -7167,37 +7104,18 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Lk" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Lo" = ( /obj/machinery/atmospherics/components/unary/passive_vent/layer2{ dir = 4 }, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, -/area/awaymission/undergroundoutpost45/caves) -"Lz" = ( -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 351.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "LT" = ( /obj/structure/table/reinforced, @@ -7247,19 +7165,11 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "Mx" = ( /obj/machinery/light/small/directional/east, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "MC" = ( /obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "MJ" = ( /obj/machinery/light/blacklight/directional/west, @@ -7375,12 +7285,8 @@ /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) "OF" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "OL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green, @@ -7476,11 +7382,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Qw" = ( /obj/structure/disposalpipe/segment{ @@ -7541,11 +7443,7 @@ /area/awaymission/undergroundoutpost45/gateway) "RA" = ( /obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "RC" = ( /obj/machinery/airalarm/directional/west, @@ -7652,11 +7550,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "Tr" = ( /obj/structure/alien/resin/membrane, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Tu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -7709,21 +7603,13 @@ "UH" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "UM" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ dir = 10 }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "UU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7787,11 +7673,7 @@ "Wd" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Wk" = ( /obj/structure/cable, @@ -7819,14 +7701,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/crew_quarters) -"WE" = ( -/obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 351.9 - }, -/area/awaymission/undergroundoutpost45/caves) "WG" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -7889,11 +7763,7 @@ /area/awaymission/undergroundoutpost45/research) "XF" = ( /obj/structure/ore_box, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "XJ" = ( /obj/structure/table/reinforced, @@ -7911,11 +7781,7 @@ /area/awaymission/undergroundoutpost45/engineering) "XQ" = ( /obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "XU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7925,11 +7791,7 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Yf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7987,20 +7849,12 @@ /area/awaymission/undergroundoutpost45/engineering) "Zs" = ( /obj/machinery/light/small/directional/north, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ZD" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ZH" = ( /obj/machinery/airalarm/directional/east, @@ -36710,7 +36564,7 @@ tT gy uN hH -ah +zq zq ad ad @@ -36967,7 +36821,7 @@ tP gc uO vk -ah +zq zq zq ad @@ -37224,7 +37078,7 @@ tV gy uP hH -ah +zq zq zq zq @@ -42062,7 +41916,7 @@ ad ad ad ad -Lz +zq an bq aC @@ -42318,8 +42172,8 @@ ad ad ad ad -Lz -WE +zq +XQ ae bq aD @@ -42574,9 +42428,9 @@ ad ad ad ad -WE -Lz -Lz +XQ +zq +zq an bq aC @@ -42831,9 +42685,9 @@ ad ad ad ad -Lz -Lz -Lz +zq +zq +zq an al aD @@ -43088,9 +42942,9 @@ ad ad ad ad -Lz -Lz -Lz +zq +zq +zq aP bY aD @@ -43346,8 +43200,8 @@ ad ad ad ad -WE -Lz +XQ +zq aP bq cX @@ -43603,8 +43457,8 @@ ad ad ad ad -Lz -Lz +zq +zq an bZ bq @@ -43860,8 +43714,8 @@ ad ad ad ad -Lz -Lz +zq +zq an cS al @@ -44117,8 +43971,8 @@ ad ad ad ad -WE -Lz +XQ +zq an cT bq @@ -44374,8 +44228,8 @@ ad ad ad ad -Lz -Lz +zq +zq ae cU bq @@ -45410,9 +45264,9 @@ ad ad ad ad -ah -ah -ah +zq +zq +zq MC zq zq @@ -45688,7 +45542,7 @@ zq zq zq zq -ad +zq zq zq zq @@ -48325,7 +48179,7 @@ zq zq zq zq -ad +zq ad ad ad diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 970e1773c9fa9..7816e8a9be688 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -5,23 +5,24 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"aaf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 +"aal" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2" }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "aan" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) +"aao" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aap" = ( /obj/structure/sign/warning/pods/directional/north, /obj/effect/decal/cleanable/dirt/dust, @@ -35,21 +36,6 @@ }, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"aaA" = ( -/obj/structure/table/reinforced, -/obj/structure/spider/stickyweb, -/obj/item/clothing/suit/hazardvest{ - pixel_x = 3; - pixel_y = 21 - }, -/obj/item/hfr_box/corner{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/item/hfr_box/body/interface, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aaH" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -63,6 +49,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"abc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Gas"; + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "abh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -89,16 +82,6 @@ }, /turf/open/floor/iron, /area/station/security/tram) -"abR" = ( -/obj/machinery/power/emitter{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/sign/warning/no_smoking/circle/directional/south, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "acg" = ( /obj/machinery/power/smes/engineering, /turf/open/floor/plating, @@ -154,18 +137,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"adV" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/hallway) "aef" = ( /obj/structure/flora/bush/flowers_yw/style_3{ pixel_x = 5; @@ -181,6 +152,21 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"ael" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"aem" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "aeu" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -205,6 +191,24 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/genetics) +"aeG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"aeH" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -214,6 +218,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/lobby) +"afa" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"afm" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "afu" = ( /obj/structure/chair/wood{ dir = 8 @@ -235,11 +251,6 @@ dir = 8 }, /area/station/science/lobby) -"afB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/radiation/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "afF" = ( /obj/structure/table, /turf/open/floor/iron, @@ -255,6 +266,16 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"afZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "agb" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -267,6 +288,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"agp" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba, +/turf/open/floor/carpet, +/area/station/commons/dorms) "agy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/tank/oxygen{ @@ -373,6 +399,10 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"aiI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aiK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -383,30 +413,13 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"aiL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ - dir = 8 +"ajg" = ( +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - upper" }, -/turf/open/floor/engine/airless, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, /area/station/engineering/atmos) -"aiQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) -"ajQ" = ( -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ako" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -432,14 +445,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms) -"aky" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "akF" = ( /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/closed/wall, @@ -454,23 +459,6 @@ }, /turf/open/floor/iron, /area/station/security) -"akS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/suit_storage_unit/atmos, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) -"akU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "alb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -478,27 +466,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"alg" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) -"all" = ( -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 9; - pixel_y = 1 - }, -/obj/item/pen{ - pixel_x = 5 - }, -/obj/item/reagent_containers/cup/bottle/welding_fuel{ - pixel_x = -7; - pixel_y = 5 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "als" = ( /obj/machinery/holopad, /turf/open/floor/iron/kitchen/small, @@ -519,6 +486,15 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) +"amb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "amh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -543,34 +519,18 @@ }, /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) -"amH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Mix" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "amK" = ( -/obj/machinery/icecream_vat, +/obj/effect/turf_decal/weather/snow, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/weather/snow/corner{ - dir = 1 + dir = 9 }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/light/small/directional/north, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"amV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) "anb" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/red/corner{ @@ -630,14 +590,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"apd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "apk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red{ @@ -668,13 +620,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) -"apw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "apB" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -690,25 +637,33 @@ /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) "aqf" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"aqn" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "aqo" = ( /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"aqG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=16.0-CentralFore-CentralPort"; + location = "15.0-CentralStarboard-CentralFore" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aqV" = ( /obj/machinery/door/airlock/glass, /obj/machinery/door/firedoor, @@ -785,6 +740,13 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"asf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2O to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ask" = ( /obj/structure/cable, /obj/machinery/door/airlock/public/glass{ @@ -798,6 +760,17 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"asS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "asZ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -878,16 +851,14 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"aub" = ( -/obj/structure/sign/departments/botany/alt1/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"atZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 6 }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, /turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +/area/station/engineering/atmos) "auc" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -949,18 +920,6 @@ /obj/structure/cable, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"auQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "auT" = ( /obj/structure/cable, /obj/structure/chair/office{ @@ -969,13 +928,24 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"avd" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ave" = ( /turf/open/space, /area/space) "avp" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) "avr" = ( @@ -1006,11 +976,22 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"avP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "avR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"avT" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "avU" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -1033,19 +1014,26 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"aws" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "aww" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"awC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "awE" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -1058,6 +1046,12 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) +"awH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "awL" = ( /obj/structure/chair{ dir = 4 @@ -1129,6 +1123,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) +"axN" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "axX" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -1162,18 +1162,6 @@ }, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"ayx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "ayK" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) @@ -1195,6 +1183,17 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"ayT" = ( +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "ayV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1291,19 +1290,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) +"azW" = ( +/obj/machinery/computer/atmos_control/nitrogen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "azZ" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"aAb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "aAj" = ( /obj/item/storage/backpack/duffelbag/sec{ pixel_x = -15; @@ -1528,22 +1528,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"aEq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) -"aEy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "aEB" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/seed_rare, @@ -1569,9 +1553,10 @@ /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine) "aFb" = ( -/obj/structure/flora/grass/jungle/b/style_3{ - pixel_y = -6; - pixel_x = -5 +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/large/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 }, /turf/open/floor/grass, /area/station/service/chapel) @@ -1610,16 +1595,16 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aFH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) "aFR" = ( /turf/open/floor/plating, /area/station/security/tram) -"aFU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aFY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1642,16 +1627,13 @@ dir = 4 }, /area/station/science/ordnance/testlab) -"aGc" = ( -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/door/window/right/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "aGq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "aGv" = ( @@ -1705,14 +1687,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"aHb" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aHl" = ( /obj/structure/railing/corner, /obj/structure/disposalpipe/segment, @@ -1745,6 +1719,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "aIb" = ( @@ -1758,6 +1733,9 @@ name = "Library" }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/open/floor/iron/textured_half, /area/station/service/library) "aIk" = ( @@ -1768,20 +1746,21 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"aIr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/south, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "aIu" = ( /obj/structure/bookcase/random/reference, /obj/machinery/camera/autoname/directional/north, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/psychology) -"aIE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/generic, -/obj/effect/landmark/blobstart, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "aIO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1804,6 +1783,15 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/small, /area/station/engineering/main) +"aJb" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aJq" = ( /turf/closed/mineral/random/stationside, /area/space/nearstation) @@ -1814,6 +1802,16 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"aJP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aJV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -1844,16 +1842,13 @@ dir = 8 }, /area/station/construction/mining/aux_base) -"aKb" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"aKo" = ( -/obj/machinery/computer/atmos_control/plasma_tank, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"aKm" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "aKx" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark/small, @@ -1876,14 +1871,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"aKU" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aLk" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -1908,14 +1895,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"aLu" = ( -/obj/effect/turf_decal/delivery/white, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "aLv" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/line{ @@ -1945,6 +1924,16 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) +"aLC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/light/cold/directional/east, +/obj/machinery/power/apc/auto_name/directional/east{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "aLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -1977,20 +1966,9 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"aMZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, -/area/station/service/bar) -"aNc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) +"aNd" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aNj" = ( /obj/machinery/door/airlock/public{ name = "Arcade" @@ -2031,6 +2009,13 @@ "aNL" = ( /turf/closed/wall, /area/station/science/ordnance/bomb) +"aNO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "aNX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2052,14 +2037,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"aOb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +"aOa" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "aOh" = ( /obj/machinery/status_display/ai/directional/south, /obj/effect/turf_decal/tile/neutral{ @@ -2077,8 +2060,8 @@ }, /obj/machinery/light/warm/dim, /obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/camera/autoname/directional/south, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "aOz" = ( @@ -2091,10 +2074,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/science/genetics) -"aOS" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aOX" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -2125,15 +2104,6 @@ luminosity = 2 }, /area/station/science/ordnance/bomb) -"aPB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "aPD" = ( /obj/structure/chair{ dir = 1 @@ -2167,17 +2137,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"aQc" = ( -/obj/structure/flora/bush/flowers_br/style_random, -/obj/machinery/status_display/evac/directional/north, -/obj/effect/turf_decal/weather/dirt{ - dir = 5 - }, -/obj/effect/turf_decal/weather/dirt{ - dir = 6 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "aQf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2199,6 +2158,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark, /area/station/medical/cryo) +"aQx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - North Corridor" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "aQF" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -2207,6 +2180,18 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) +"aQX" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/main) +"aQZ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/cytology) "aRa" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -2239,6 +2224,14 @@ dir = 4 }, /area/station/maintenance/starboard/greater) +"aRx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aRC" = ( /obj/structure/table, /obj/item/flashlight/lamp/green{ @@ -2259,23 +2252,11 @@ /obj/effect/turf_decal/trimline/neutral/end, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"aRS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/computer/security/telescreen/turbine/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "aRT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"aSc" = ( -/obj/structure/reflector/double/anchored, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "aSt" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/light/small/directional/north, @@ -2293,10 +2274,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"aSV" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"aSW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aTb" = ( /obj/structure/toilet{ dir = 4 @@ -2351,6 +2337,11 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"aTB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "aTG" = ( /obj/structure/table/reinforced, /obj/machinery/requests_console/directional/east{ @@ -2363,12 +2354,30 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"aUb" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) "aUA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_edge, /area/station/maintenance/starboard/greater) +"aUB" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "aUJ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -2381,50 +2390,48 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"aUR" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"aVA" = ( +/obj/structure/closet/secure_closet/freezer/empty, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 }, -/obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 +/obj/item/food/grown/eggplant{ + pixel_y = 5; + pixel_x = 5 }, -/area/station/engineering/supermatter/room) -"aVA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/item/food/grown/eggplant{ + pixel_y = 5; + pixel_x = 5 }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/stone, -/area/station/service/bar) +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "aVF" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"aVS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Library Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/service/library) "aVT" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, /obj/effect/mapping_helpers/airlock/locked, @@ -2465,13 +2472,6 @@ "aWc" = ( /turf/open/floor/iron/small, /area/station/security/tram) -"aWf" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "aWi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2484,10 +2484,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) -"aWr" = ( -/obj/structure/flora/tree/jungle/small, -/turf/open/misc/dirt/jungle, -/area/station/service/chapel) "aWt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -2512,20 +2508,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"aWG" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) -"aXy" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2542,14 +2524,13 @@ /turf/open/floor/iron, /area/station/commons/storage/art) "aYj" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/stone, /area/station/service/bar/backroom) "aYp" = ( /obj/structure/chair, @@ -2591,39 +2572,32 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "aYU" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/stone, /area/station/service/bar) "aYY" = ( /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/service/lawoffice) -"aZf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable, -/obj/structure/reflector/single/anchored{ - dir = 10 - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "aZh" = ( /obj/machinery/modular_computer/preset/curator{ dir = 8 }, /turf/open/floor/carpet, /area/station/service/library) -"aZu" = ( -/obj/machinery/power/emitter{ - dir = 4 +"aZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aZG" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/siding/wood{ @@ -2698,15 +2672,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"baW" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/west, -/obj/effect/landmark/start/assistant, -/turf/open/floor/stone, -/area/station/service/bar) "bba" = ( /obj/effect/turf_decal/siding/blue{ dir = 8 @@ -2717,15 +2682,10 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"bbp" = ( -/obj/structure/spider/stickyweb/sealed, +"bbB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"bbF" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/area/station/engineering/supermatter) "bbK" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -2776,20 +2736,6 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"bcN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "bcO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2801,38 +2747,20 @@ dir = 4 }, /area/station/science/xenobiology) -"bcZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"bdb" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) -"bdd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "bdN" = ( /obj/structure/falsewall, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"bdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/computer/atmos_control/oxygen_tank{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bed" = ( /obj/structure/railing/corner{ dir = 1 @@ -2845,16 +2773,21 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"beg" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "bej" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood/end{ dir = 4 }, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) +"bes" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/library) "bey" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -2889,6 +2822,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"bfU" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Distro staging" + }, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bgg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2966,20 +2908,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"bhb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "bho" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -2992,6 +2920,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"bhE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"bhN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "biB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/smooth_large, @@ -3026,15 +2973,6 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) -"bjf" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/spawner/random/trash, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "bjh" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -3102,36 +3040,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bkF" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/west, -/obj/item/clothing/head/costume/paper_hat{ - pixel_y = 12; - pixel_x = -4 - }, -/obj/item/clothing/head/collectable/petehat{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_y = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) -"bkI" = ( -/obj/machinery/status_display/evac/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"bkO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Mix" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "bkY" = ( /obj/machinery/requests_console/directional/west{ department = "Chief Medical Officer's Desk"; @@ -3182,27 +3090,23 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"blt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bly" = ( /obj/structure/closet/crate/miningcar, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"blB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 - }, -/turf/open/floor/stone, -/area/station/service/bar) "blC" = ( +/obj/effect/turf_decal/siding/thinplating, /obj/effect/spawner/random/entertainment/arcade{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 10 - }, -/obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) "blJ" = ( @@ -3215,17 +3119,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) -"blZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bmr" = ( /obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_right, @@ -3282,6 +3175,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "bnn" = ( @@ -3309,15 +3203,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bnq" = ( -/obj/machinery/door/airlock/engineering{ - name = "Decomissioned Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/abandoned, -/turf/open/floor/iron/textured_half, -/area/station/engineering/engine_smes) "bnr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -3400,6 +3285,12 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"boB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "boI" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -3466,20 +3357,6 @@ /obj/machinery/light/broken/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"bpv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Air Mix" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/atmos/pumproom) "bpI" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, @@ -3493,6 +3370,24 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) +"bpY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"bqc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bqd" = ( /obj/item/reagent_containers/cup/bottle/ammonia, /obj/structure/steam_vent, @@ -3563,13 +3458,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"bre" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "brj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/north, @@ -3610,13 +3498,10 @@ /obj/vehicle/ridden/scooter/skateboard/hoverboard, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"brC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) +"brA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "brD" = ( /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/tile/neutral{ @@ -3624,6 +3509,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"brG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "brZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -3633,15 +3522,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/aft) -"bsn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "bsu" = ( /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/broken_floor, @@ -3684,15 +3564,17 @@ dir = 4 }, /area/station/maintenance/starboard/greater) -"bsJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/reagent_dispensers/fueltank/large, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "bsP" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bta" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "btG" = ( /obj/structure/rack, /obj/effect/turf_decal/delivery/white, @@ -3731,6 +3613,12 @@ /obj/structure/chair/stool/bamboo, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) +"bud" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "buf" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -3754,6 +3642,24 @@ dir = 8 }, /area/station/science/xenobiology) +"buI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/belt/utility{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/storage/belt/utility{ + pixel_x = 6 + }, +/obj/item/storage/belt/utility{ + pixel_x = -2; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "buJ" = ( /obj/effect/spawner/random/vending/snackvend, /obj/machinery/bluespace_vendor/directional/south, @@ -3798,6 +3704,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/security/warden) +"bvP" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "bvV" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -3806,15 +3723,21 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"bwy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/obj/structure/destructible/cult/item_dispenser/archives/library, +/obj/item/book/codex_gigas, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library) "bwz" = ( /obj/effect/spawner/random/entertainment/arcade, /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"bwY" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "bxa" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -3822,39 +3745,24 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"bxk" = ( +/obj/effect/turf_decal/tile/neutral/full, +/obj/structure/rack, +/obj/item/weldingtool/mini, +/obj/item/tank/internals/emergency_oxygen/empty, +/obj/item/cigarette/rollie, +/turf/open/floor/iron/dark/smooth_large, +/area/station/maintenance/central/lesser) "bxl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/weather/snow, /obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, +/obj/machinery/food_cart, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"bxs" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/orange/visible, -/obj/machinery/meter, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) -"bxu" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_y = 24; - req_access = list("engine_equip") - }, -/turf/open/floor/iron/corner{ - dir = 8 - }, -/area/station/engineering/main) "bxI" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -3882,6 +3790,10 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) +"byt" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "byv" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -3918,6 +3830,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"byR" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "byU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -3926,6 +3847,14 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"bzc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "bzj" = ( /obj/machinery/rnd/production/techfab/department/service, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -3937,19 +3866,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"bzJ" = ( -/obj/structure/table/wood, -/obj/machinery/barsign{ - chosen_sign = "thecavern"; - icon_state = "thecavern"; - pixel_y = 32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 10 +"bzF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/machinery/chem_dispenser/drinks/beer, -/turf/open/floor/iron/dark/textured, -/area/station/service/bar) +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -3986,26 +3911,16 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bAU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/portable_atmospherics/canister/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) -"bBd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Turbine" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "bBh" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 }, /obj/structure/flora/bush/flowers_br/style_3, /obj/machinery/firealarm/directional/north, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = -16 + }, /turf/open/floor/grass, /area/station/service/chapel) "bBk" = ( @@ -4029,10 +3944,27 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"bBy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) +"bBL" = ( +/obj/effect/landmark/start/cook, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) +"bBN" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table/wood, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/crap{ + pixel_y = 5 + }, +/obj/item/cigarette/pipe/cobpipe{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "bBX" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, @@ -4118,6 +4050,12 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"bDg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "bDh" = ( /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -4172,13 +4110,13 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"bDO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure" +"bDQ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "bEd" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/mapping_helpers/broken_floor, @@ -4203,6 +4141,18 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/science/lower) +"bEG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - HFR" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bEN" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -4219,13 +4169,6 @@ /obj/effect/spawner/structure/window/reinforced/shuttle, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"bFd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "bFh" = ( /obj/structure/rack, /obj/item/binoculars, @@ -4234,12 +4177,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"bFr" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/kirbyplants/random, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "bFt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -4253,7 +4190,8 @@ "bFO" = ( /obj/effect/spawner/random/trash, /obj/structure/cable, -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) "bFR" = ( @@ -4339,6 +4277,14 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/office) +"bGX" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "bGY" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -4391,11 +4337,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"bIi" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "bIp" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -28; @@ -4434,23 +4375,32 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "bJx" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, /area/station/service/chapel) -"bJA" = ( -/obj/item/kirbyplants/random, -/obj/structure/disposalpipe/segment{ +"bJH" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/light_switch/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "bJK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4458,13 +4408,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"bJN" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/radio/intercom/directional/west, -/obj/machinery/status_display/evac/directional/south, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "bJZ" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, @@ -4509,6 +4452,18 @@ }, /turf/open/floor/iron/white/small, /area/station/security/warden) +"bKK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bKN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/left/directional/west{ @@ -4519,7 +4474,10 @@ /area/station/security/tram) "bKO" = ( /obj/structure/table/wood, -/turf/open/floor/wood/large, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "bKU" = ( /obj/item/toy/crayon/spraycan{ @@ -4529,14 +4487,30 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"bLu" = ( -/obj/structure/cable, +"bLp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"bLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Library Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/service/library) "bLT" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/south, @@ -4550,6 +4524,17 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/commons/storage/art) +"bMn" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "bMt" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -4580,10 +4565,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"bNg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "bNl" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "sci-entrance" @@ -4627,33 +4608,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"bNX" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "bOa" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/frame/machine, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"bOb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "bOG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen/small, +/turf/closed/wall, /area/station/service/kitchen) "bON" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4677,6 +4640,36 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"bPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"bPk" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) +"bPy" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "bPU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /turf/open/floor/iron, @@ -4694,7 +4687,7 @@ /area/station/security/office) "bQd" = ( /obj/structure/flora/grass/jungle/b/style_2, -/turf/open/misc/dirt/jungle, +/turf/open/misc/dirt/station, /area/station/service/chapel) "bQi" = ( /obj/effect/decal/cleanable/dirt, @@ -4725,12 +4718,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"bRc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/doors/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "bRf" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/steam_vent, @@ -4782,13 +4769,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"bSm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +"bSk" = ( +/obj/machinery/air_sensor/engine_chamber, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "bSo" = ( /turf/open/space/basic, /area/space/nearstation) @@ -4820,13 +4804,6 @@ }, /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai) -"bTd" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "bTo" = ( /obj/effect/turf_decal/weather/dirt, /obj/effect/turf_decal/weather/dirt{ @@ -4844,19 +4821,10 @@ }, /turf/open/floor/iron/textured_half, /area/station/cargo/miningoffice) -"bTJ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"bTO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +"bTI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -4934,21 +4902,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"bWg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "bWh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4983,13 +4936,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) -"bWk" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "bWl" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -5057,23 +5003,12 @@ /turf/open/floor/iron/white/small, /area/station/medical/storage) "bXR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, /obj/structure/table/wood, -/turf/open/floor/iron/grimy, -/area/station/service/bar) -"bYe" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/turf/open/floor/stone, +/area/station/service/bar) "bYf" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/stripes/line{ @@ -5098,11 +5033,6 @@ dir = 1 }, /area/station/engineering/hallway) -"bYE" = ( -/obj/structure/cable, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/library) "bYK" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -5110,19 +5040,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"bYY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Air Mix" +"bYV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron/textured_half{ - dir = 1 +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/area/station/engineering/atmos/pumproom) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "bZa" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/white{ @@ -5190,11 +5119,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"bZY" = ( -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"cag" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "cam" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -5209,22 +5151,21 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"caB" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) -"caD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"cax" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/bot{ + dir = 1 }, -/turf/open/floor/wood, -/area/station/service/chapel/office) +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"cay" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "caI" = ( /obj/structure/cable, /obj/effect/decal/cleanable/glass, @@ -5236,18 +5177,28 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "caW" = ( -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/cable, /obj/structure/disposalpipe/trunk{ - dir = 4 + dir = 1 }, -/turf/open/floor/wood/large, +/obj/machinery/disposal/bin, +/turf/open/floor/stone, /area/station/service/bar) "cbg" = ( /obj/structure/table/wood, /obj/item/storage/fancy/candle_box, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"cbh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "cbi" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -5311,13 +5262,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"cbJ" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/gas, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "cbO" = ( /obj/structure/chair{ dir = 1 @@ -5351,34 +5295,12 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"ccu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"ccv" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"ccA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/stone, -/area/station/service/bar) -"ccx" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "ccD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5404,17 +5326,6 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"ccL" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light_switch/directional/north, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "cdg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/grass, @@ -5440,10 +5351,14 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"cdW" = ( +"cdC" = ( /obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/disposal/incinerator) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/departments/exodrone/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cdY" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -5456,24 +5371,13 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) -"cev" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/chem_dispenser, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/pharmacy) -"ceA" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 +"ceN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "ceP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -5504,6 +5408,15 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"cfb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "cfc" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ dir = 6 @@ -5528,20 +5441,18 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cgh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing/corner{ +"cgs" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Starboard Filter"; - dir = 1 +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "cgt" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/garbage, @@ -5554,21 +5465,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"cgz" = ( -/obj/machinery/door/airlock/atmos{ - name = "DECOMISSIONED" - }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/atmospherics_engine) "cgL" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -5598,17 +5494,6 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"chb" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"chf" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "chh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5620,32 +5505,10 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"chj" = ( -/obj/structure/grille, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/atmos/space_catwalk) "chp" = ( /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"chr" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "chC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -5662,7 +5525,7 @@ "chI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/thinplating{ - dir = 10 + dir = 6 }, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) @@ -5687,10 +5550,20 @@ /obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/mob/living/basic/deer, /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, /area/station/service/chapel) +"cig" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "cik" = ( /obj/structure/bookcase/random, /obj/item/radio/intercom/directional/west, @@ -5716,6 +5589,12 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"civ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ciR" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/command_all, @@ -5751,16 +5630,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"cjP" = ( -/obj/effect/turf_decal/delivery, +"cjD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "cjR" = ( /obj/structure/disposalpipe/segment, /obj/structure/plasticflaps/opaque, /turf/open/floor/iron, /area/station/maintenance/port/lesser) +"cjS" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "cjY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5804,15 +5693,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, /area/station/maintenance/department/medical/central) -"ckI" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "ckL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5833,6 +5713,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"ckR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ckV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5845,21 +5735,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"cla" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Distribution" - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "clb" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/kitchen/small, @@ -5905,10 +5780,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"clX" = ( -/obj/structure/railing/corner, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "clZ" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -5942,20 +5813,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"cmu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cmw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -5975,14 +5832,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"cmB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/light/floor, -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "cmD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -5992,12 +5841,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cmO" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "cmX" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -6022,21 +5865,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"cnC" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "cnG" = ( /obj/machinery/suit_storage_unit/rd, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/rd) -"cnU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cob" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6045,6 +5882,17 @@ /obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"coi" = ( +/obj/structure/cable/layer3, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/left/directional/south{ + name = "AI Security Door" + }, +/obj/machinery/flasher/directional/east{ + id = "ai" + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) "cop" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -6056,6 +5904,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"cor" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) @@ -6069,12 +5921,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"coO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos) "cpA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6089,15 +5935,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cpC" = ( -/obj/effect/turf_decal/siding/red{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) "cpE" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -6165,20 +6002,19 @@ /turf/open/floor/plating, /area/station/science/ordnance/storage) "cqD" = ( -/obj/structure/table/wood, -/obj/item/holosign_creator/robot_seat/bar{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/structure/sign/picture_frame/portrait/bar{ - pixel_y = 32 - }, -/obj/item/roulette_wheel_beacon, -/obj/machinery/light/small/directional/north, -/obj/structure/disposalpipe/segment, +/obj/structure/closet/secure_closet/bar, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/machinery/airalarm/directional/north, +/obj/structure/reagent_dispensers/beerkeg, +/obj/structure/reagent_dispensers/beerkeg, /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/stone, /area/station/service/bar/backroom) "cqM" = ( @@ -6209,6 +6045,12 @@ "cri" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/firedoor, +/obj/structure/cable, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) "crm" = ( @@ -6292,9 +6134,6 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"csB" = ( -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "csE" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -6321,11 +6160,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) -"csZ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ctb" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -6347,34 +6181,6 @@ "ctH" = ( /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"ctN" = ( -/obj/structure/closet/secure_closet/freezer/empty, -/obj/item/food/grown/tomato{ - pixel_y = 2; - pixel_x = 2 - }, -/obj/item/food/grown/tomato{ - pixel_y = 2; - pixel_x = 2 - }, -/obj/item/food/grown/eggplant{ - pixel_y = 5; - pixel_x = 5 - }, -/obj/item/food/grown/eggplant{ - pixel_y = 5; - pixel_x = 5 - }, -/obj/item/storage/fancy/egg_box, -/obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/flour, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "cua" = ( /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/structure/crate, @@ -6398,6 +6204,15 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) +"cvc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma/five, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cvk" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -6444,17 +6259,19 @@ dir = 1 }, /area/station/cargo/bitrunning/den) -"cvX" = ( -/obj/structure/sign/poster/official/random/directional/south, -/obj/effect/turf_decal/siding/wood/corner{ +"cvV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, +/turf/open/floor/wood/tile, +/area/station/service/bar) +"cvX" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 }, -/obj/machinery/airalarm/directional/east, -/obj/item/kirbyplants/random, -/turf/open/floor/stone, +/obj/machinery/restaurant_portal/bar, +/turf/open/floor/wood/tile, /area/station/service/bar) "cwb" = ( /obj/effect/turf_decal/stripes/white/end{ @@ -6466,6 +6283,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"cwj" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "cwt" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -6508,6 +6331,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"cxz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/station/service/chapel) "cxO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -6517,14 +6347,6 @@ }, /turf/open/floor/plating, /area/station/science/cubicle) -"cxQ" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "cyf" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -6561,17 +6383,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) -"cyP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/right/directional/east{ - req_access = list("hydroponics"); - name = "Hydroponics Service Desk" - }, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/hydroponics) "cyU" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, @@ -6598,13 +6409,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"czf" = ( -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "czg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6622,6 +6426,13 @@ dir = 8 }, /area/station/service/janitor) +"czu" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "cAb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6648,16 +6459,17 @@ /turf/open/floor/iron/white/small, /area/station/medical/surgery/theatre) "cAl" = ( -/obj/machinery/camera/autoname/directional/east, /obj/effect/turf_decal/siding/wood{ - dir = 8 + dir = 4 }, -/obj/machinery/light/small/directional/east, /obj/effect/turf_decal/siding/wood{ - dir = 4 + dir = 8 }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/stone, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/assistant, +/obj/structure/cable, +/turf/open/floor/wood/tile, /area/station/service/bar) "cAm" = ( /obj/effect/decal/cleanable/dirt, @@ -6686,6 +6498,15 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) +"cAv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "cAZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6694,6 +6515,16 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cBd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cBl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cBw" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/filingcabinet/chestdrawer, @@ -6705,28 +6536,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"cBR" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"cBV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"cBX" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/structure/transit_tube/horizontal{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cCb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -6742,21 +6551,6 @@ /obj/item/storage/bag/xeno, /turf/open/floor/iron/white, /area/station/science/cytology) -"cCd" = ( -/obj/effect/spawner/random/trash, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"cCe" = ( -/obj/structure/bed/maint, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "cCl" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -6789,6 +6583,30 @@ }, /turf/open/misc/asteroid/airless, /area/space/nearstation) +"cCM" = ( +/obj/structure/cable, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) +"cCP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"cCV" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "cCW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6833,18 +6651,6 @@ dir = 8 }, /area/station/science/lower) -"cDE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating/rust, -/area/station/engineering/storage_shared) "cDH" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -6881,6 +6687,13 @@ dir = 1 }, /area/station/maintenance/starboard/greater) +"cDV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "cEn" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -6894,15 +6707,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"cEs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/window/brigdoor/right/directional/north{ - atom_integrity = 300; - name = "AI Core Chamber Access"; - req_access = list("ai_upload") - }, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "cED" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -6917,15 +6721,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"cEH" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "cEK" = ( /obj/effect/landmark/start/ai, /obj/item/radio/intercom/directional/south{ @@ -7006,16 +6801,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"cFz" = ( -/obj/structure/cable/layer3, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/brigdoor/left/directional/north{ - atom_integrity = 300; - name = "AI Core Chamber Access"; - req_access = list("ai_upload") - }, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "cFR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7040,21 +6825,13 @@ /turf/closed/wall/r_wall, /area/station/security/execution/education) "cGG" = ( -/obj/structure/rack, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, -/obj/item/clothing/gloves/color/fyellow{ - pixel_y = 2 - }, -/obj/item/wrench, -/obj/item/cigarette/xeno{ - pixel_x = -3; - pixel_y = -9 - }, -/obj/item/clothing/head/utility/welding, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine/atmos) +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cGI" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/secure_closet/medical3, @@ -7063,6 +6840,17 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/iron/small, /area/station/medical/storage) +"cGV" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/storage) +"cHh" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "cHp" = ( /obj/effect/turf_decal/siding/dark_red/corner{ dir = 4 @@ -7083,6 +6871,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"cHt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 9 + }, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cHC" = ( /obj/structure/chair{ pixel_y = -2 @@ -7095,6 +6891,25 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"cHG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"cHI" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/vatgrower, +/turf/open/floor/engine, +/area/station/science/cytology) "cHO" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/full, @@ -7132,36 +6947,15 @@ /turf/open/floor/grass, /area/station/medical/virology) "cIX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, /area/station/service/bar) -"cJb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cJv" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, +/obj/effect/turf_decal/siding/thinplating_new/light, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron/white/small, /area/station/service/hydroponics) "cJz" = ( /obj/structure/cable, @@ -7212,37 +7006,30 @@ dir = 4 }, /area/station/science/lab) -"cKc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI Core Shutter" - }, -/turf/open/floor/iron/stairs, -/area/station/ai_monitored/turret_protected/ai) "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) +"cKm" = ( +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cKt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"cKv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/floor/iron/stairs/old{ - dir = 8 - }, -/area/station/engineering/supermatter/room) +"cKy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/atmospheric_sanity/ignore_area, +/turf/open/floor/iron, +/area/station/engineering/hallway) "cKL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -7263,6 +7050,13 @@ /obj/structure/marker_beacon/indigo, /turf/open/space/basic, /area/space/nearstation) +"cLw" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cLD" = ( /obj/structure/window/spawner/directional/north, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -7286,6 +7080,16 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"cLR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/right/directional/south{ + name = "AI Security Door" + }, +/obj/machinery/flasher/directional/west{ + id = "ai" + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) "cLS" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -7333,6 +7137,10 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"cMG" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -7353,14 +7161,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) -"cMZ" = ( -/obj/machinery/power/smes/engineering, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Energy Silos" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "cNk" = ( /obj/structure/sign/departments/restroom/directional/south, /obj/machinery/camera/autoname/directional/east, @@ -7409,6 +7209,25 @@ dir = 1 }, /area/station/science/xenobiology) +"cOI" = ( +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"cOJ" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "cON" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -7446,16 +7265,6 @@ /obj/structure/urinal/directional/east, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"cPv" = ( -/obj/effect/turf_decal/siding/red{ - dir = 10 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) -"cPB" = ( -/obj/machinery/air_sensor/incinerator_tank, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "cPD" = ( /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -7503,22 +7312,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"cQI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "cQN" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/table/wood, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/grimy, +/turf/open/floor/stone, /area/station/service/bar) "cQP" = ( /obj/structure/cable, @@ -7531,6 +7329,14 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"cQV" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage" + }, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/engineering/main) "cRc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7550,25 +7356,22 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/lobby) -"cRq" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/reagent_containers/cup/glass/mug/coco{ - pixel_x = -9 +"cRo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" }, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 6 +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 4 +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "cRw" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue, @@ -7620,6 +7423,10 @@ /obj/structure/flora/bush/sparsegrass, /turf/open/floor/grass, /area/station/service/chapel) +"cSc" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cSk" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/closet/l3closet, @@ -7654,26 +7461,23 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"cSy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "cSC" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) -"cSP" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "cTn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) "cTp" = ( @@ -7683,10 +7487,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"cTu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "cTw" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/south, @@ -7711,10 +7511,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"cTS" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"cTK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "cTX" = ( /obj/machinery/computer/crew{ dir = 4 @@ -7724,14 +7524,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"cUa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +"cTY" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "cUf" = ( /obj/structure/sign/directions/engineering{ dir = 1; @@ -7792,6 +7593,19 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"cVm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "cVx" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 4 @@ -7817,13 +7631,16 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) -"cVM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 +"cVO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/engineering/hallway) +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/chapel/office) "cVQ" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -7833,20 +7650,6 @@ dir = 1 }, /area/station/science/lower) -"cVS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"cVY" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) "cWh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7854,30 +7657,6 @@ dir = 4 }, /area/station/maintenance/fore/lesser) -"cWB" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/cup/rag{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = 10; - pixel_y = 8 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = 5; - pixel_y = 16 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = -7; - pixel_y = 15 - }, -/turf/open/floor/iron/dark/textured, -/area/station/service/bar) "cWM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7892,10 +7671,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"cWQ" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "cWZ" = ( /obj/machinery/door/airlock/external{ name = "Primary Docking Bay" @@ -7909,8 +7684,20 @@ /area/station/hallway/secondary/entry) "cXb" = ( /obj/machinery/light/small/directional/north, -/turf/open/misc/dirt/jungle, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, /area/station/service/chapel) +"cXg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cXh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7918,6 +7705,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"cXp" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Service Hallway" + }, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/hallway/secondary/service) "cXu" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -8019,10 +7816,6 @@ /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"cYU" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "cYW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/steam_vent, @@ -8042,11 +7835,20 @@ }, /area/station/hallway/primary/central/fore) "cZi" = ( -/obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/camera/autoname/directional/south, /obj/item/kirbyplants/random, -/turf/open/floor/iron, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"cZj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cZk" = ( /obj/structure/chair{ dir = 1 @@ -8064,6 +7866,15 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) +"cZs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "cZx" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -8114,6 +7925,10 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/security) +"dao" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/stone, +/area/station/service/bar) "daq" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -8142,14 +7957,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"dbo" = ( -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "dbs" = ( /obj/structure/chair/plastic{ dir = 8 @@ -8188,27 +7995,19 @@ "dbF" = ( /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"dbN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +"dbJ" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/iron/grimy, +/area/station/service/library) "dbZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood, /area/station/service/chapel) "dcc" = ( /obj/item/kirbyplants/random/fullysynthetic, @@ -8256,6 +8055,13 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"dcK" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "dcS" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -8308,6 +8114,15 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"ddF" = ( +/mob/living/basic/goat/pete, +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "ddK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8317,6 +8132,17 @@ /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ddT" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "deb" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, @@ -8376,13 +8202,10 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/psychology) -"dfc" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/restaurant_portal/restaurant, -/turf/open/floor/stone, -/area/station/service/bar) +"dfd" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "dff" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/east, @@ -8395,23 +8218,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"dfz" = ( -/obj/structure/barricade/wooden, -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/locked, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "dfN" = ( /obj/structure/window/spawner/directional/west, /obj/structure/window/spawner/directional/south, /turf/open/floor/grass, /area/station/cargo/storage) +"dfT" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "dgm" = ( /obj/structure/railing/corner{ dir = 1 @@ -8462,13 +8280,13 @@ /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "dhu" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 10 - }, /obj/structure/flora/bush/sparsegrass{ pixel_x = -5; pixel_y = 9 }, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, /turf/open/floor/grass, /area/station/service/chapel) "dhy" = ( @@ -8499,6 +8317,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dhG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) "dhH" = ( /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) @@ -8506,15 +8331,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"dib" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/eighties/red, -/area/station/hallway/primary/central/fore) "dim" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8526,6 +8342,19 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"din" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing/corner, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dis" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8544,6 +8373,17 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/dark/small, /area/station/medical/medbay/lobby) +"dix" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - project room" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "diF" = ( /obj/machinery/door/airlock/public/glass{ name = "Barber" @@ -8576,18 +8416,6 @@ /obj/effect/landmark/start/mime, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"diL" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "diP" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/aft) @@ -8603,10 +8431,15 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"diZ" = ( +"djc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, /obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "djf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8615,6 +8448,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "djg" = ( @@ -8637,6 +8471,19 @@ /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"djX" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker; + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "djY" = ( /obj/machinery/door/airlock/public/glass{ name = "Dorms" @@ -8647,6 +8494,20 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/dorms) +"dkh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) +"dkv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dkz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8660,20 +8521,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"dkR" = ( -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "dkT" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/stripes/line{ @@ -8682,13 +8529,12 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"dlk" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 +"dlj" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "dlx" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/rock/pile/style_random, @@ -8706,6 +8552,10 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/iron/small, /area/station/medical/storage) +"dlB" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/misc/dirt/station, +/area/station/service/chapel) "dlG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8720,17 +8570,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"dmb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "dmk" = ( /obj/machinery/holopad, /obj/effect/landmark/start/depsec/medical, @@ -8786,10 +8625,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"dnl" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) +"dny" = ( +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "dnK" = ( /obj/item/kirbyplants/random, /obj/item/storage/briefcase{ @@ -8840,6 +8679,14 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/brig) +"doc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dof" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -8848,6 +8695,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"doi" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "doj" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -8894,12 +8748,6 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) -"dpk" = ( -/obj/effect/turf_decal/arrows/white, -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "dps" = ( /obj/machinery/camera/directional/south{ c_tag = "AI Chamber - Aft"; @@ -8917,6 +8765,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"dpH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "dpR" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -8936,13 +8790,6 @@ "dqO" = ( /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) -"dqV" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "dqX" = ( /obj/structure/reagent_dispensers/wall/peppertank/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -8955,16 +8802,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"drw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ - dir = 4 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "dry" = ( /obj/structure/bed/medical{ dir = 4 @@ -8975,16 +8812,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) -"drB" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/light/cold/directional/east, -/obj/machinery/power/apc/auto_name/directional/east{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "drC" = ( /obj/machinery/vending/cola, /obj/effect/turf_decal/tile/blue{ @@ -8993,15 +8820,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"drF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "drI" = ( /obj/structure/railing{ dir = 1 @@ -9070,11 +8888,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"dsE" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/screwdriver, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "dsK" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -9087,12 +8900,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/security/lockers) -"dsP" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "dsU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -9142,7 +8949,6 @@ /turf/open/floor/iron/dark, /area/station/science/genetics) "dtO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, @@ -9163,6 +8969,12 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"duj" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "dun" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -9187,7 +8999,6 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -9199,15 +9010,6 @@ }, /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/ai) -"duK" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/south, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "duT" = ( /obj/structure/closet/wardrobe/white, /obj/machinery/light/small/directional/west, @@ -9216,14 +9018,9 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"duY" = ( -/obj/structure/railing, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) +"dvd" = ( +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "dvo" = ( /obj/machinery/ore_silo, /obj/effect/turf_decal/bot_white, @@ -9234,11 +9031,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"dvv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "dvJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/fourcorners, @@ -9248,16 +9040,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"dvO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "dvY" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9292,14 +9074,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"dwP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "dwT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9319,24 +9093,12 @@ "dxf" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"dxr" = ( -/obj/effect/turf_decal/stripes/white/box, -/obj/item/hfr_box/core, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"dxu" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Cold Room" +"dxv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 5 }, /turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/area/station/engineering/atmos) "dxw" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/light/warm/directional/east, @@ -9367,11 +9129,14 @@ /turf/open/floor/plating, /area/station/construction/mining/aux_base) "dxV" = ( -/obj/effect/turf_decal/siding/wood, +/obj/machinery/airalarm/directional/north, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, /obj/effect/turf_decal/siding/wood{ - dir = 4 + dir = 5 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "dxZ" = ( /obj/structure/cable, @@ -9404,21 +9169,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"dyt" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "dyF" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ @@ -9432,6 +9182,9 @@ dir = 4 }, /area/station/hallway/primary/central/fore) +"dyI" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "dyO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9449,6 +9202,21 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"dzh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/pipe_dispenser{ + pixel_y = -7; + pixel_x = 2 + }, +/obj/item/pipe_dispenser{ + pixel_y = 5; + pixel_x = -2 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dzi" = ( /obj/structure/table/wood, /obj/item/book/granter/action/spell/smoke/lesser{ @@ -9467,16 +9235,6 @@ /obj/item/radio/intercom/chapel/directional/east, /turf/open/floor/iron/terracotta/diagonal, /area/station/service/chapel/office) -"dzA" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) -"dzD" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "dzE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9485,6 +9243,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"dzH" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "dAn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -9493,6 +9255,15 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"dAu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dAz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -9587,6 +9358,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"dBT" = ( +/obj/effect/turf_decal/box/white{ + color = "#EFB341" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "dCe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9709,32 +9486,38 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"dDW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Recreation" +"dEc" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/commons/fitness/recreation/entertainment) +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics - Central Fore" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dEq" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "dEu" = ( /obj/machinery/vending/cigarette, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) -"dEA" = ( -/obj/machinery/modular_computer/preset/engineering, -/obj/structure/cable, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) +"dEw" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/space/basic, +/area/space/nearstation) +"dEy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "dEF" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -9754,6 +9537,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"dEY" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"dFA" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"dFG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "dFN" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, @@ -9767,6 +9574,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"dFY" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "dGV" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -9788,6 +9602,18 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"dHx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - turbine" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dHL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9802,14 +9628,13 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"dHU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 8 +"dHW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 }, +/obj/structure/lattice, /turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/space/nearstation) "dIt" = ( /obj/structure/cable, /obj/machinery/button/door/directional/east{ @@ -9831,20 +9656,6 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/grass, /area/station/service/chapel) -"dIZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "dJd" = ( /obj/machinery/computer/records/security, /turf/open/floor/wood/tile, @@ -9858,12 +9669,27 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"dJn" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "dJv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /turf/open/floor/wood/tile, /area/station/service/bar) +"dJB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9877,19 +9703,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"dJU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "dKl" = ( /obj/effect/spawner/random/engineering/material_cheap, /obj/effect/spawner/random/engineering/material, @@ -9940,13 +9753,15 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"dLj" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/effect/turf_decal/bot, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) +"dKY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "dLn" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark/herringbone, @@ -9996,16 +9811,11 @@ /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "dMi" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar) "dMm" = ( @@ -10067,14 +9877,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"dNM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump/on/layer2{ - dir = 1; - name = "Air to Distro" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "dNU" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -10103,6 +9905,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"dOP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dOT" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -10117,24 +9926,6 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office) -"dOU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "engsm"; - name = "Radiation Shutters Control" - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"dOY" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "dPa" = ( /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) @@ -10164,6 +9955,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "dPx" = ( @@ -10171,8 +9963,17 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, /area/station/service/chapel) +"dPW" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "dQi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10201,19 +10002,15 @@ }, /turf/open/floor/engine, /area/station/science/cytology) -"dQY" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "dRb" = ( -/obj/effect/landmark/start/bartender, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/obj/effect/turf_decal/siding/wood, /turf/open/floor/stone, /area/station/service/bar/backroom) "dRk" = ( @@ -10225,6 +10022,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"dRn" = ( +/obj/effect/turf_decal/siding/wood/end, +/turf/open/floor/stone, +/area/station/service/chapel) "dRD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10312,6 +10113,10 @@ "dTd" = ( /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dTe" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/cargo/boutique) "dTg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10320,6 +10125,13 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dTo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dTB" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/effect/decal/cleanable/dirt, @@ -10342,6 +10154,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"dTQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/chapel/office) "dTW" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/shuttle/mining{ @@ -10479,27 +10296,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"dXa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "dXb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10543,6 +10339,22 @@ dir = 1 }, /area/station/science/xenobiology) +"dYc" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/multitool{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/cigarette{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/lockers) "dYj" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -10567,15 +10379,17 @@ /obj/effect/landmark/start/cook, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"dYw" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/chair{ - dir = 4 +"dYv" = ( +/obj/structure/closet/radiation, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"dYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dYI" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -10608,11 +10422,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"dYY" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "dZa" = ( /obj/structure/table/reinforced, /obj/machinery/camera/directional/west, @@ -10680,14 +10489,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"dZX" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "Air to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "dZZ" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -10739,12 +10540,14 @@ /turf/open/floor/wood, /area/station/commons/fitness/recreation) "ebk" = ( +/obj/structure/chair/stool/bar/directional/north, /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/light/floor, -/turf/open/floor/stone, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood/tile, /area/station/service/bar) "ebE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10802,6 +10605,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"ecC" = ( +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) "ecL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/transit_tube/horizontal, @@ -10827,6 +10634,17 @@ dir = 1 }, /area/station/science/research) +"edk" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "edD" = ( /obj/machinery/light/small/directional/west, /obj/item/kirbyplants/random, @@ -10904,13 +10722,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"efl" = ( -/obj/effect/turf_decal/stripes/line{ +"efi" = ( +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "efm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10978,6 +10798,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) +"egC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "egG" = ( /obj/effect/landmark/start/medical_doctor, /obj/item/radio/intercom/directional/south, @@ -10992,18 +10819,51 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"egL" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "egN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) -"egR" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 +"ehd" = ( +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/west, +/obj/structure/table/greyscale, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cut{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Office" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "ehf" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11014,11 +10874,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"ehw" = ( -/obj/machinery/computer/atmos_control/carbon_tank, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "ehT" = ( /obj/machinery/door/airlock{ id_tag = "commiss2"; @@ -11157,28 +11012,12 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/main) -"ejX" = ( -/obj/effect/turf_decal/siding/wood{ +"ejO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/vending/cigarette, -/turf/open/floor/stone, -/area/station/service/bar) -"ekf" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "ekr" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 1 @@ -11236,13 +11075,30 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/security) -"eld" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination A" +"elb" = ( +/obj/structure/table/reinforced, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 5 }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) +"elc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "elh" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, /obj/structure/sign/warning/cold_temp/directional/west, @@ -11250,10 +11106,7 @@ /turf/open/floor/iron/dark, /area/station/science/ordnance) "eln" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/tree/jungle/small/style_4, +/obj/structure/flora/tree/jungle/small/style_5, /turf/open/floor/grass, /area/station/service/chapel) "elv" = ( @@ -11319,7 +11172,6 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "elN" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/north, /obj/effect/landmark/start/hangover, /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -11342,6 +11194,11 @@ "emd" = ( /turf/open/floor/iron, /area/station/medical/chemistry) +"emg" = ( +/obj/effect/spawner/random/structure/crate_loot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "emn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -11351,13 +11208,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"emp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "emB" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -11365,13 +11215,15 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"emC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"emF" = ( +/obj/machinery/light/warm/dim, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/stripes/red/end, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ena" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -11402,6 +11254,20 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"enF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "enG" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -11430,6 +11296,18 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/security/brig/entrance) +"eog" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"eok" = ( +/obj/machinery/air_sensor/nitrogen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "eoz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11449,19 +11327,17 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/central/greater) -"eoU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "epa" = ( /obj/machinery/telecomms/bus/preset_four, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera/autoname/directional/east, /turf/open/floor/circuit, /area/station/tcommsat/server) +"epm" = ( +/obj/machinery/light/no_nightlight/directional/east, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "epn" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/full, @@ -11484,11 +11360,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) -"epr" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "epu" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -11500,17 +11371,14 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"eqk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office" +"eqr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Fuel Pipe to Incinerator"; + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/security/checkpoint/science) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eqz" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -11523,19 +11391,22 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"eqB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/power/energy_accumulator/tesla_coil/anchored, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "eqG" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) +"eqI" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "eqS" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -11570,22 +11441,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/tile, /area/station/science/lower) -"erJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/glasses/meson, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -8; - pixel_y = 14 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "erK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new, @@ -11602,15 +11457,12 @@ /turf/open/floor/iron/small, /area/station/security/office) "esr" = ( -/obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ess" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "esv" = ( /obj/docking_port/stationary{ dwidth = 4; @@ -11687,19 +11539,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/circuit, /area/station/maintenance/port/aft) -"etD" = ( -/obj/structure/cable/layer3, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI Core Shutter" - }, -/turf/open/floor/iron/stairs, -/area/station/ai_monitored/turret_protected/ai) -"etX" = ( -/obj/structure/sign/warning/hot_temp/directional/east, -/turf/open/floor/iron/stairs/right, -/area/station/engineering/atmos) "etZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark/corner{ @@ -11712,12 +11551,19 @@ /obj/machinery/seed_extractor, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"eue" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "eul" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/turf/open/floor/iron, +/turf/open/floor/iron/white/small, /area/station/commons/fitness/locker_room) "euq" = ( /obj/structure/cable, @@ -11748,11 +11594,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"euP" = ( -/obj/structure/chair/office, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "euR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -11773,17 +11614,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"evm" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Engine Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" +"evj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 }, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/engine) +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "evq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11806,6 +11643,13 @@ dir = 4 }, /area/station/science/xenobiology) +"evw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "evA" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -11817,18 +11661,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/maintenance/department/engine) -"ewo" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/plumbing/growing_vat{ +"evQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/orange{ dir = 4 }, -/turf/open/floor/engine, -/area/station/science/cytology) +/turf/open/floor/plating, +/area/station/engineering/atmos) +"evW" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ewt" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/south, @@ -11851,33 +11694,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"exr" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/machinery/air_sensor/oxygen_tank, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) -"exA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +"exF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/clothing/head/cone{ - pixel_x = -7; - pixel_y = 9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"exE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to North Ports" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "exM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11922,20 +11747,27 @@ dir = 1 }, /area/station/ai_monitored/turret_protected/aisat/maint) +"eyW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) +"eyY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eyZ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"ezd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "ezi" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, @@ -11970,18 +11802,6 @@ /obj/vehicle/ridden/secway, /turf/open/floor/plating, /area/station/security/tram) -"ezG" = ( -/obj/structure/railing, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/engine_access, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "engine" - }, -/obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "ezM" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -11990,11 +11810,6 @@ /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ezQ" = ( -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "ezS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/showcase/cyborg/old{ @@ -12064,14 +11879,26 @@ /obj/machinery/light/floor, /turf/open/floor/noslip, /area/station/medical/medbay/central) -"eAC" = ( -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"eAI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1, -/turf/open/space/basic, -/area/space/nearstation) +"eAE" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "eAK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -12079,16 +11906,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"eAU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/window/right/directional/south{ - name = "AI Security Door" - }, -/obj/machinery/flasher/directional/west{ - id = "ai" - }, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "eAY" = ( /turf/open/floor/grass, /area/station/science/xenobiology) @@ -12171,14 +11988,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/main) -"eDe" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "eDh" = ( /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/engine, @@ -12190,17 +11999,6 @@ /obj/structure/flora/bush/pale, /turf/open/floor/grass, /area/station/hallway/primary/central/fore) -"eDl" = ( -/obj/structure/cable/layer3, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/left/directional/south{ - name = "AI Security Door" - }, -/obj/machinery/flasher/directional/east{ - id = "ai" - }, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "eDo" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, @@ -12302,6 +12100,21 @@ /obj/item/stamp/head/hos, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"eEj" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) +"eEn" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eEq" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner, @@ -12314,12 +12127,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"eEX" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eFc" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, @@ -12333,6 +12140,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"eFi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "eFk" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12464,8 +12277,11 @@ /turf/open/floor/iron/white, /area/station/medical/paramedic) "eGU" = ( -/obj/structure/chair/stool/bar/directional/north, -/turf/open/floor/wood/large, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, /area/station/service/bar) "eHa" = ( /obj/structure/sign/poster/official/random/directional/north, @@ -12500,6 +12316,18 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/workout) +"eHv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/library) "eHy" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -12514,6 +12342,13 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) +"eHS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "eIp" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12522,19 +12357,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eIv" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) -"eIx" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "eIF" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -12575,21 +12397,9 @@ /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) "eIW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"eIX" = ( -/obj/machinery/light/cold/directional/south, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "eJe" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron/smooth, @@ -12625,19 +12435,17 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) +"eKd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) -"eKp" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Test Chamber"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "eKs" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -12696,19 +12504,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"eLZ" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Port"; - dir = 8 +"eLF" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"eMa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "eMc" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/stripes/line{ @@ -12749,19 +12559,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"eNm" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/curved, -/turf/open/space/basic, -/area/space/nearstation) -"eNn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating/airless, -/area/space/nearstation) "eNo" = ( /obj/item/reagent_containers/cup/glass/bottle/beer/almost_empty{ pixel_x = -6 @@ -12788,15 +12585,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eNM" = ( -/obj/structure/table/wood, -/obj/structure/reagent_dispensers/beerkeg, -/obj/effect/turf_decal/siding/wood/end{ - dir = 8 +"eNP" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9"; + pixel_y = -15 }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/stone, -/area/station/service/bar) +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "eNU" = ( /obj/structure/table/reinforced, /obj/item/phone{ @@ -12810,11 +12606,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"eOh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eOk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12831,15 +12622,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"eOP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/holopad, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eOX" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/item/kirbyplants/random, @@ -12847,11 +12629,29 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"eOY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eOZ" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) +"ePk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ePn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/south, @@ -12917,13 +12717,6 @@ "eQt" = ( /turf/closed/wall, /area/station/command/heads_quarters/rd) -"eQv" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/premium{ - pixel_y = 5 - }, -/turf/open/floor/stone, -/area/station/service/abandoned_gambling_den) "eQC" = ( /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/structure/girder, @@ -12950,16 +12743,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"eRa" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "eRy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13040,11 +12823,11 @@ /turf/open/floor/iron, /area/station/security/prison) "eTJ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/tile, /area/station/service/bar) "eTT" = ( /obj/structure/cable, @@ -13073,6 +12856,13 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"eUx" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/closet/toolcloset, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "eUC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -13102,15 +12892,13 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"eUR" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Gas to Cold Loop" - }, -/turf/open/floor/iron/smooth_edge{ +"eUY" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ dir = 1 }, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "eUZ" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 1 @@ -13144,30 +12932,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) -"eVk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"eVm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "eVz" = ( /obj/machinery/camera/directional/west{ c_tag = "AI Sat - Antechamber"; @@ -13178,6 +12942,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"eVC" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "eVH" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13215,34 +12984,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"eWf" = ( -/obj/structure/closet/cardboard, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/airlock_painter, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"eWj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4; - initialize_directions = 8 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark/end{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "eWk" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) +"eWr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "eWB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -13273,16 +13027,6 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"eWQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "eWY" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13301,15 +13045,12 @@ /turf/open/floor/iron, /area/station/security/prison/workout) "eXB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/storage/fancy/candle_box, -/obj/machinery/light_switch/directional/west, -/obj/structure/rack/skeletal, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library) +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "eXK" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -13318,6 +13059,15 @@ }, /turf/open/floor/stone, /area/station/maintenance/aft) +"eXR" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "eXW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13348,11 +13098,8 @@ /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) "eYB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/end, +/turf/open/floor/wood, /area/station/service/chapel) "eYD" = ( /obj/structure/railing{ @@ -13393,28 +13140,26 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "eZj" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"eZt" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "eZM" = ( /obj/structure/cable/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) "fap" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/service/bar) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "fav" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/computer/security/telescreen/entertainment/directional/west, @@ -13465,10 +13210,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"fbs" = ( -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "fbt" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -13533,18 +13274,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"fcI" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"fcE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 }, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - Airlock" +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" }, -/obj/structure/cable, -/obj/structure/sign/warning/vacuum/external/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) +/area/station/engineering/atmos/pumproom) "fcU" = ( /obj/structure/window/spawner/directional/south, /obj/structure/flora/bush/large/style_random{ @@ -13629,6 +13370,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"feu" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/firealarm/directional/north, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"fex" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "feL" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -13657,14 +13411,28 @@ }, /turf/open/floor/plating, /area/station/service/janitor) -"ffE" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 9 +"ffK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" }, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"ffL" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "fgk" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/status_display/door_timer{ @@ -13715,6 +13483,7 @@ /obj/machinery/power/apc/auto_name/directional/north{ low_power_nightshift_lights = 1 }, +/obj/effect/turf_decal/weather/dirt, /turf/open/floor/grass, /area/station/service/chapel) "fgW" = ( @@ -13726,6 +13495,10 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"fgX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "fho" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/implanter{ @@ -13745,22 +13518,21 @@ }, /turf/open/floor/iron/small, /area/station/security/office) +"fhp" = ( +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 6 + }, +/obj/effect/turf_decal/siding{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "fhT" = ( /obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"fhX" = ( -/obj/structure/table/greyscale, -/obj/item/lightreplacer{ - pixel_y = 7 - }, -/obj/item/lightreplacer{ - pixel_y = 2; - pixel_x = -2 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "fhZ" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -13795,10 +13567,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"fiq" = ( -/obj/machinery/computer/atmos_control/nitrous_tank, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "fiw" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/table, @@ -13810,11 +13578,6 @@ /obj/item/plate, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"fiI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fiK" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -13825,6 +13588,24 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"fiW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/chair/sofa/bench/right, +/turf/open/floor/stone, +/area/station/service/chapel) +"fjf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fjh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fjp" = ( /obj/machinery/door/airlock{ id_tag = "Cabin1"; @@ -13888,6 +13669,10 @@ /obj/item/mod/module/signlang_radio, /turf/open/floor/iron/small, /area/station/medical/storage) +"fkr" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "fkF" = ( /obj/structure/table/wood, /obj/item/pen/red{ @@ -13949,6 +13734,16 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"flx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "flD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ @@ -14083,6 +13878,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"foh" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"fos" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "fot" = ( /obj/effect/turf_decal/trimline/white/line, /obj/effect/turf_decal/trimline/white/mid_joiner, @@ -14095,6 +13910,22 @@ /obj/machinery/vending/security, /turf/open/floor/iron, /area/station/security/lockers) +"foI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/button/door/directional/north{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 26; + pixel_y = -2; + req_access = list("xenobiology") + }, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) "foL" = ( /obj/structure/sign/poster/official/random/directional/north, /obj/structure/lattice, @@ -14136,19 +13967,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"fpF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Turbine Interior Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "fpN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -14177,11 +13995,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) -"fqQ" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "fqT" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -14206,20 +14019,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"frm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) +"frn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/machinery/computer/atmos_control/carbon_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "frC" = ( /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/dark/smooth_large, @@ -14237,6 +14042,16 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"frZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "fsk" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -14304,19 +14119,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/aft) -"ftc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Lockers" - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "fts" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14352,6 +14154,26 @@ }, /turf/open/floor/iron, /area/station/security/warden) +"ftC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/chapel) +"ftT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination A" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "ftX" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -14365,6 +14187,11 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"ful" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "fun" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14393,27 +14220,6 @@ /obj/effect/mapping_helpers/mail_sorting/security/detectives_office, /turf/open/floor/iron, /area/station/security/brig/entrance) -"fuB" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) -"fuC" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/engine/airless, -/area/station/maintenance/disposal/incinerator) "fuD" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -14426,16 +14232,6 @@ }, /turf/open/space/basic, /area/space) -"fuT" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "fuV" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -14467,6 +14263,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/command/heads_quarters/ce) +"fvv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/arrows/white{ + color = "#0000FF"; + pixel_y = 15 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "fvz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14480,6 +14284,13 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"fvH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/electropack, +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fvL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -14501,6 +14312,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"fwr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14533,6 +14358,10 @@ dir = 1 }, /area/station/science/lobby) +"fwV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood, @@ -14548,6 +14377,13 @@ "fxi" = ( /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"fxp" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "fxF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14559,22 +14395,13 @@ /obj/structure/table, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) -"fxV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Waste" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "fxW" = ( -/obj/item/kirbyplants/random, -/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/restaurant_portal/restaurant, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 10 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/wood/tile, /area/station/service/bar) "fyo" = ( /obj/structure/table, @@ -14677,9 +14504,8 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "fzw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, +/obj/machinery/light/floor, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar) "fzx" = ( @@ -14708,6 +14534,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "fAr" = ( @@ -14734,6 +14561,12 @@ /obj/effect/spawner/random/structure/furniture_parts, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fAD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fAJ" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -14797,19 +14630,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fBy" = ( -/obj/structure/table, -/obj/item/folder, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "fBB" = ( -/obj/structure/table/wood, -/obj/item/plate, -/obj/item/food/cheesynachos{ - pixel_y = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/turf/open/floor/wood/large, +/turf/open/floor/stone, /area/station/service/bar) "fBN" = ( /obj/structure/flora/bush/flowers_yw/style_3{ @@ -14835,16 +14660,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"fBZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Emitters" - }, -/obj/machinery/power/energy_accumulator/tesla_coil, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "fCd" = ( /turf/open/floor/wood, /area/station/cargo/miningfoundry) @@ -14882,15 +14697,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"fCW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/storage_shared) "fDd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14901,6 +14707,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"fDf" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Incinerator Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/engineering/atmos) "fDg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14992,58 +14810,39 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) -"fEi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/structure/sign/poster/official/plasma_effects/directional/west, -/obj/effect/mapping_helpers/apc/cell_10k, -/turf/open/floor/iron/smooth_corner{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "fEq" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"fEr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, +"fEs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) -"fEw" = ( -/obj/effect/turf_decal/tile/neutral/full, -/obj/structure/rack, -/obj/item/weldingtool/mini, -/obj/item/tank/internals/emergency_oxygen/empty, -/obj/item/cigarette/rollie, -/turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/central/lesser) +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) "fEF" = ( +/obj/structure/cable, /obj/effect/turf_decal/siding/thinplating{ - dir = 9 + dir = 5 }, -/obj/structure/cable, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"fEM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cytology) "fEU" = ( /obj/structure/table, /obj/item/multitool{ @@ -15064,17 +14863,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fFe" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fFt" = ( /obj/structure/chair/wood{ dir = 8 @@ -15082,9 +14870,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"fFu" = ( -/turf/open/floor/iron/stairs/medium, -/area/station/engineering/atmos) "fFD" = ( /obj/effect/turf_decal/siding/blue, /obj/effect/landmark/start/paramedic, @@ -15165,11 +14950,21 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"fGF" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) +"fGf" = ( +/obj/structure/cable, +/obj/machinery/modular_computer/preset/engineering{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) +"fGk" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "fGT" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -15247,6 +15042,7 @@ codes_txt = "patrol;next_patrol=21.0-Bar-Porthall"; location = "20.0-CentralPort-Bar" }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "fHT" = ( @@ -15254,6 +15050,15 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/iron/white, /area/station/science/research) +"fIe" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "fIf" = ( /obj/structure/filingcabinet/filingcabinet, /obj/machinery/airalarm/directional/west, @@ -15266,18 +15071,23 @@ /obj/structure/chair/wood{ dir = 8 }, -/turf/open/floor/wood/tile, +/obj/machinery/light/floor, +/turf/open/floor/stone, /area/station/service/bar) -"fIn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"fIP" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fJe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fJl" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -15285,6 +15095,11 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/xenobiology) +"fJn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "fJs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15299,13 +15114,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"fJt" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "fJK" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -15319,24 +15127,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"fJP" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"fJX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "fJZ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/yellow{ @@ -15392,16 +15182,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/space/basic, /area/space/nearstation) -"fKA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "fKN" = ( /obj/effect/landmark/event_spawn, /obj/machinery/computer/security/telescreen/test_chamber/directional/west, @@ -15417,15 +15197,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/science/lower) -"fKR" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/disposal/bin, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron, -/area/station/engineering/hallway) "fLf" = ( /obj/structure/cable/layer3, /obj/structure/cable, @@ -15442,20 +15213,6 @@ /obj/item/assembly/mousetrap/armed, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"fLj" = ( -/obj/item/clothing/head/cone{ - pixel_x = -12; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/insectguts, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "fLk" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -15493,29 +15250,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fLy" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/reagent_containers/condiment/pack/sugar{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/glass/coffee/no_lid{ - pixel_y = 13; - pixel_x = 6 - }, -/obj/item/plate/small{ - pixel_y = 1; - pixel_x = -4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/food/butterbiscuit{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/turf/open/floor/iron, -/area/station/engineering/hallway) "fLC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -15632,21 +15366,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"fMP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/binoculars{ - pixel_x = -7; - pixel_y = 13 - }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = -3 +"fMB" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot{ + dir = 1 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fMQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -15659,7 +15388,9 @@ /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "fMX" = ( -/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/open/floor/stone, /area/station/service/chapel) "fNb" = ( @@ -15710,14 +15441,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/catwalk_floor, /area/station/ai_monitored/turret_protected/ai) -"fNQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fNR" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -15770,19 +15493,26 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fOo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"fOq" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "fOJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"fOK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fOQ" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, @@ -15795,16 +15525,22 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"fPb" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "fPu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer3, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fPK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fPO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -15849,19 +15585,21 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"fQd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ +"fPZ" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 +/obj/structure/table, +/obj/item/storage/box/mousetraps{ + pixel_x = -5 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 11; + pixel_y = 7 }, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/area/station/service/janitor) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -15892,26 +15630,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) -"fRm" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fRq" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -15943,11 +15661,24 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"fRI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/misc/asteroid, +/area/station/maintenance/hallway/abandoned_command) "fRJ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"fRM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fRV" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -15963,10 +15694,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood/end, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /turf/open/floor/wood/parquet, /area/station/service/library) "fSe" = ( @@ -15977,6 +15704,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/prison) +"fSg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fSx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16053,6 +15786,16 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fTJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) "fTM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -16145,12 +15888,10 @@ /turf/open/floor/plating, /area/station/construction/mining/aux_base) "fVl" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_x = 2; - pixel_y = 10 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/turf/open/floor/wood/large, +/turf/open/floor/stone, /area/station/service/bar) "fVy" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -16186,20 +15927,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fWe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - West" - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "fWi" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -16229,18 +15956,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"fXe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "fXg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16271,10 +15986,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) -"fXo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine) "fXB" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16309,17 +16020,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"fYo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, +"fYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/station/service/chapel) "fYr" = ( /obj/structure/table, /obj/item/extinguisher/empty, @@ -16334,8 +16042,13 @@ /area/station/commons/dorms) "fYJ" = ( /obj/structure/table/wood, -/obj/item/food/lizard_fries, -/turf/open/floor/wood/large, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "fYU" = ( /obj/effect/spawner/random/structure/crate_loot, @@ -16371,23 +16084,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fZL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) -"fZV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "fZZ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -16435,21 +16131,11 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"gan" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Mech Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/mechbay) "gaF" = ( /obj/machinery/stasis{ dir = 4 @@ -16496,6 +16182,28 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/white/small, /area/station/science/lab) +"gbf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/smes{ + capacity = 1.8e+008; + charge = 2e+005 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"gbh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"gbj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "gby" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/herringbone, @@ -16506,13 +16214,6 @@ /obj/structure/alien/weeds, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"gbE" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "gbG" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -16538,17 +16239,11 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"gbP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +"gbT" = ( +/obj/structure/table, +/obj/item/storage/bag/construction, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "gcg" = ( /obj/structure/chair{ name = "Defense" @@ -16569,28 +16264,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"gcM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) -"gcR" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "gdn" = ( /obj/item/kirbyplants/organic/applebush, /obj/effect/turf_decal/tile/red{ @@ -16728,8 +16401,8 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "gfs" = ( @@ -16815,6 +16488,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ggz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"ggJ" = ( +/obj/machinery/light/no_nightlight/directional/east, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "ggN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -16927,6 +16619,11 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"gip" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "giq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -16980,6 +16677,12 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"gjE" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "gjL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ @@ -16988,48 +16691,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/server) -"gjP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = -3; - pixel_y = -7 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = -8 - }, -/obj/item/clothing/head/cone{ - pixel_x = -3; - pixel_y = -14 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = -8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "gjS" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -17040,6 +16701,12 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"gjU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gkq" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/corner, @@ -17083,36 +16750,15 @@ dir = 8 }, /area/station/engineering/main) -"gla" = ( -/turf/open/floor/iron/grimy, -/area/station/commons) +"glo" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "gls" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"glA" = ( -/obj/effect/landmark/start/hangover, -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/wood/tile, -/area/station/service/bar) -"glJ" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/firecloset, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "glM" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -17120,16 +16766,28 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"glO" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"glT" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 9; + pixel_x = 4 }, -/turf/open/floor/iron, -/area/station/engineering/hallway) +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "glY" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/rack, @@ -17161,21 +16819,59 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"gnd" = ( -/turf/closed/wall, -/area/station/engineering/atmos/office) -"gns" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"gmv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +/obj/item/radio/intercom/directional/north, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"gnB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"gnK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) +"gnL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -17236,6 +16932,12 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"goS" = ( +/obj/machinery/incident_display/delam/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "goT" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -17257,6 +16959,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gpy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/plush/slimeplushie{ + name = "Nanners" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "gpA" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /obj/effect/decal/cleanable/dirt, @@ -17317,24 +17026,6 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"gqn" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 8; - pixel_x = 3 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "gqs" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -17349,6 +17040,11 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"gqS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "grm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -17359,14 +17055,6 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/on, /turf/open/floor/iron/dark/smooth_large, /area/station/security/execution/education) -"gro" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to South Ports" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "grx" = ( /obj/machinery/vending/wardrobe/medi_wardrobe, /obj/structure/window/reinforced/spawner/directional/west, @@ -17389,15 +17077,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"grI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood/tile, -/area/station/service/bar) "gsh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -17465,27 +17144,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"gtU" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) -"gub" = ( +"guh" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 + name = "atmos to engine" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gun" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/red{ @@ -17518,16 +17182,6 @@ "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/computer/turbine_computer{ - dir = 4 - }, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "gvV" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -17544,6 +17198,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"gwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gwl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17554,28 +17216,29 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) -"gwx" = ( -/obj/structure/disposalpipe/segment{ +"gwm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"gwL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/trimline/neutral/line{ +"gwx" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) @@ -17619,6 +17282,12 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"gxd" = ( +/obj/structure/reflector/single/anchored{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gxg" = ( /obj/effect/turf_decal/siding/red{ dir = 9 @@ -17646,6 +17315,15 @@ /obj/structure/filingcabinet/employment, /turf/open/floor/wood/tile, /area/station/service/lawoffice) +"gxo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "gxq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17690,11 +17368,15 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"gxK" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) +"gxA" = ( +/obj/structure/table, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/core, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "gxL" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, @@ -17721,6 +17403,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gya" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "gyc" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -17745,6 +17435,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"gyj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "gyr" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/smooth, @@ -17769,11 +17470,8 @@ /turf/open/floor/iron, /area/station/security/brig/entrance) "gyy" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, +/obj/structure/table/wood, +/turf/open/floor/stone, /area/station/service/bar) "gzs" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -17808,14 +17506,16 @@ "gzF" = ( /turf/closed/wall/r_wall, /area/station/security/prison/rec) -"gzL" = ( -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/atmospherics/components/binary/valve{ +"gzM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "gzY" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -17833,6 +17533,13 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"gAy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "gAA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17853,6 +17560,13 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"gAQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gAR" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -17862,16 +17576,10 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"gBe" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +"gAV" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gBg" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -17944,11 +17652,30 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"gBG" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"gBB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter/room) +"gBK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "gBT" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/secure_safe/caps_spare, @@ -17985,10 +17712,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) -"gCp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "gCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, @@ -18003,11 +17726,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"gCx" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/passive_vent, -/turf/open/space/basic, -/area/space/nearstation) "gCA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18032,34 +17750,19 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"gCP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"gCR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "gCT" = ( /turf/closed/wall, /area/station/hallway/secondary/command) -"gDe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/railing, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/stairs/old{ - dir = 8 +"gDc" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_y = 2 }, -/area/station/engineering/supermatter/room) +/obj/item/pen, +/obj/machinery/airalarm/directional/south, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) "gDk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18077,19 +17780,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"gDq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "gDs" = ( /obj/structure/lattice, /obj/structure/window/spawner/directional/south, @@ -18135,23 +17825,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gEy" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 10 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "gEG" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -18291,15 +17964,21 @@ /turf/open/floor/wood, /area/station/cargo/miningfoundry) "gGx" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/item/kirbyplants/random, /obj/effect/turf_decal/siding/wood{ - dir = 4 + dir = 5 }, -/turf/open/floor/stone, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood/tile, /area/station/service/bar) +"gGy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18310,6 +17989,10 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"gGO" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "gGQ" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -18341,6 +18024,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"gHm" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gHD" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -18378,14 +18067,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) -"gIr" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "gIs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18396,15 +18077,18 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "gIv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, +/obj/machinery/camera/autoname/directional/east, +/obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/stone, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/wood/tile, /area/station/service/bar) "gIx" = ( /obj/structure/cable, @@ -18414,23 +18098,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gIz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "North Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "gIF" = ( /obj/effect/turf_decal/siding/green, /turf/open/floor/iron/dark/small, @@ -18446,20 +18113,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"gIM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 8 +"gIR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "gIS" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/holywater, @@ -18484,23 +18151,35 @@ }, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"gJs" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/clothing/head/utility/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gJu" = ( /obj/structure/closet, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/light/small/directional/north, /turf/open/floor/carpet/royalblue, /area/station/command/corporate_suite) +"gJw" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"gJD" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"gJQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/stack/spacecash/c1, +/obj/item/cigarette/cigar/havana, +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/station/maintenance/starboard/central) "gJS" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18527,20 +18206,12 @@ "gKs" = ( /turf/closed/wall, /area/station/maintenance/disposal/incinerator) -"gKz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "gKE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"gKF" = ( -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "gKK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -18585,19 +18256,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"gLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "gLs" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -18637,9 +18301,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "gLV" = ( @@ -18737,6 +18398,13 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"gMV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gMX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18746,10 +18414,22 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"gNa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gNb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"gNg" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "gNs" = ( /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, @@ -18762,21 +18442,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"gNA" = ( -/obj/structure/table/reinforced, -/obj/structure/desk_bell{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "gNC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18790,39 +18455,27 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"gNI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "gNP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gNS" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "gNV" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/stairs{ dir = 1 }, /area/station/cargo/office) +"gNX" = ( +/obj/machinery/light/floor, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "gOm" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/equipment) @@ -18879,10 +18532,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/small, /area/station/security/checkpoint/engineering) -"gPf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/engine, -/area/station/engineering/atmos) "gPm" = ( /obj/machinery/computer/monitor{ dir = 1 @@ -18890,6 +18539,11 @@ /obj/machinery/computer/security/telescreen/minisat/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"gPv" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gPN" = ( /obj/structure/fermenting_barrel, /turf/open/floor/plating, @@ -18921,6 +18575,13 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"gQy" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "gQG" = ( /obj/structure/window/spawner/directional/east, /obj/structure/closet/crate, @@ -18937,40 +18598,6 @@ }, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) -"gQI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"gQK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) -"gQT" = ( -/obj/item/cigarette, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 5; - pixel_x = 6 - }, -/obj/item/lighter, -/obj/structure/sign/poster/official/random/directional/east, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "gRm" = ( /obj/structure/flora/bush/flowers_br, /obj/structure/flora/bush/flowers_pp/style_random, @@ -18985,6 +18612,17 @@ dir = 1 }, /area/station/security/tram) +"gRG" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) "gRH" = ( /obj/machinery/button/door/directional/north{ id = "Cabin4"; @@ -19006,20 +18644,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"gSh" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/clothing/head/utility/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gSi" = ( /obj/structure/chair{ dir = 4 @@ -19208,11 +18832,16 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/security/medical) -"gUN" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/structure/flora/tree/jungle/style_5, -/turf/open/floor/grass, -/area/station/service/chapel) +"gUM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"gUQ" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -19262,6 +18891,11 @@ "gWb" = ( /turf/closed/wall, /area/station/command/heads_quarters/hos) +"gWf" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/xenobiology) "gWk" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -19272,19 +18906,6 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/command/corporate_suite) -"gWl" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "gWB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19293,13 +18914,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/processing) -"gWJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/wrench, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "gWN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19316,12 +18930,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"gXn" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "gXs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19355,23 +18963,21 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"gXT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) -"gYH" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) -"gZf" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/misc/asteroid, -/area/station/maintenance/hallway/abandoned_command) "gZh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad, @@ -19453,6 +19059,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hal" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "haq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19465,14 +19077,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"haH" = ( -/obj/machinery/food_cart, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "haO" = ( /obj/effect/turf_decal/stripes/white/end, /obj/machinery/door/poddoor/shutters{ @@ -19672,6 +19276,19 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"hcQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/stone, +/area/station/service/bar) "hcT" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -19761,6 +19378,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "hdQ" = ( @@ -19779,23 +19397,17 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"hdW" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/camera/autoname/directional/east, -/obj/effect/spawner/random/entertainment/arcade{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/eighties/red, -/area/station/hallway/primary/central/fore) "hdZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"hed" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "hei" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -19897,6 +19509,13 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hfm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "hfC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19980,21 +19599,21 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"hgH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "hgP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"hgV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "hgY" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -20041,6 +19660,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hhr" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20067,13 +19692,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/evidence) -"hir" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "his" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/mod/module/plasma_stabilizer{ @@ -20090,13 +19708,6 @@ }, /turf/open/floor/iron/small, /area/station/security/office) -"hiD" = ( -/obj/machinery/door/airlock/multi_tile/public{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/bar) "hiK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20115,11 +19726,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/station/science/cytology) -"hjj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/curved, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "hjk" = ( /obj/structure/railing{ dir = 4 @@ -20153,6 +19759,12 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"hkd" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "hkk" = ( /obj/machinery/computer/records/medical{ dir = 4 @@ -20221,13 +19833,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"hkG" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "hkL" = ( /obj/structure/cable, /turf/open/floor/wood/large, @@ -20243,13 +19848,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark, /area/station/science/lab) -"hkT" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/sink/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "hkW" = ( /obj/structure/closet/crate/goldcrate, /obj/effect/turf_decal/bot_white/right, @@ -20257,14 +19855,13 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hla" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" +"hlC" = ( +/obj/effect/spawner/structure/window, +/obj/effect/turf_decal/bot{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood/end, -/obj/machinery/door/firedoor, -/turf/open/floor/stone, -/area/station/hallway/primary/port) +/turf/open/floor/plating, +/area/station/engineering/main) "hlE" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -20282,19 +19879,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"hlM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/smooth_corner{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "hlX" = ( /obj/machinery/door/airlock/public/glass{ name = "Old Command Hallway" @@ -20339,6 +19923,12 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) +"hmn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/hallway/primary/central/aft) "hmt" = ( /obj/structure/closet/crate, /obj/item/stack/license_plates/empty/fifty, @@ -20351,32 +19941,29 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron, /area/station/security/prison/work) -"hmu" = ( -/obj/effect/spawner/random/entertainment/lighter, -/obj/item/cigarette/rollie/mindbreaker{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/cigarette/rollie/trippy{ - pixel_x = 4 - }, -/obj/effect/mapping_helpers/burnt_floor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) -"hmB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "hmC" = ( -/obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/turf/open/floor/stone, +/turf/open/floor/wood, +/area/station/service/chapel) +"hmH" = ( +/obj/effect/spawner/xmastree, +/obj/structure/flora/tree/jungle/style_3, +/turf/open/floor/grass, /area/station/service/chapel) +"hmK" = ( +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar/backroom) "hmQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table, @@ -20416,17 +20003,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"hnG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "hnO" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -20471,10 +20047,10 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "hok" = ( @@ -20493,12 +20069,6 @@ "hop" = ( /turf/closed/wall, /area/station/service/chapel/funeral) -"hox" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "hoG" = ( /obj/structure/cable, /obj/effect/landmark/start/scientist, @@ -20530,15 +20100,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"hpi" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/disposal/incinerator) "hpj" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -20584,47 +20145,6 @@ dir = 8 }, /area/station/science/lobby) -"hqf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = -20; - pixel_y = -2 - }, -/obj/item/storage/box/lights/mixed{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 5; - pixel_y = 1 - }, -/turf/open/floor/iron/small, -/area/station/commons) -"hqm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"hqr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "hqH" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/cup/watering_can/wood, @@ -20654,6 +20174,16 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"hrl" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "hrx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20739,20 +20269,13 @@ /turf/open/floor/iron/small, /area/station/engineering/break_room) "hsx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor, -/turf/open/floor/stone, -/area/station/service/bar) -"hsy" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 5 +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "hsC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -20765,18 +20288,18 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"hsH" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "hsJ" = ( /obj/docking_port/stationary/mining_home, /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"hsL" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) "hsO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -20792,6 +20315,13 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/station/security/tram) +"htg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "htp" = ( /turf/closed/wall, /area/station/service/barber) @@ -20821,20 +20351,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"htQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "hua" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -20914,12 +20430,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) -"hvo" = ( -/obj/structure/sign/warning/hot_temp/directional/east, -/turf/open/floor/iron/stairs/right{ - dir = 1 - }, -/area/station/engineering/atmos) "hvx" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/machinery/light/small/directional/north, @@ -20956,12 +20466,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"hvZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "hwh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -21012,12 +20516,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"hwG" = ( -/obj/machinery/door/window/left/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/effect/turf_decal/stripes/white/full, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "hwJ" = ( /turf/closed/wall/rust, /area/space/nearstation) @@ -21047,7 +20545,6 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/item/kirbyplants/random, /obj/item/storage/box{ pixel_x = -8; pixel_y = 15 @@ -21063,18 +20560,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"hxG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "hxQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -21114,20 +20599,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"hyx" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_y = -24; - req_access = list("engine_equip"); - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "hyA" = ( /obj/machinery/light/dim/directional/south, /turf/open/floor/iron/dark/side, @@ -21178,12 +20649,18 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) "hzK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"hzO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "hzV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -21208,7 +20685,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 10 }, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) "hAC" = ( /obj/machinery/light/small/directional/east, @@ -21240,6 +20717,47 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/execution/transfer) +"hBh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = -20; + pixel_y = -2 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/open/floor/iron/small, +/area/station/service/janitor) +"hBi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to External Air Ports" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "hBq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -21258,6 +20776,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) "hBA" = ( @@ -21342,6 +20861,10 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/aft) +"hCT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hCX" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -21357,6 +20880,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"hDd" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hDg" = ( /obj/structure/chair/stool/directional/east, /obj/effect/decal/cleanable/dirt/dust, @@ -21383,6 +20913,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"hDu" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/power/emitter, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "hDz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, @@ -21433,23 +20970,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/command/storage/eva) -"hEt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "hEu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21484,6 +21004,24 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hFd" = ( +/obj/structure/rack, +/obj/item/clothing/neck/petcollar, +/obj/item/flashlight/flare/candle{ + pixel_x = 10 + }, +/obj/item/flashlight/flare/candle{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/screwdriver{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/engine/atmos) "hFp" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -21517,24 +21055,10 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"hFK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/computer/atmos_control/mix_tank{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"hFR" = ( -/obj/effect/turf_decal/siding/red{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) +"hFO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) @@ -21630,20 +21154,9 @@ /obj/item/hemostat, /turf/open/floor/iron/white, /area/station/science/robotics/augments) -"hIU" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "hJp" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/ai) -"hJs" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "hJC" = ( /obj/structure/closet/crate/hydroponics, /obj/item/paper/guides/jobs/hydroponics, @@ -21703,6 +21216,12 @@ /obj/structure/sign/warning/no_smoking/circle/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"hKf" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "hKs" = ( /obj/effect/turf_decal/box/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -21767,6 +21286,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/office) +"hLx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hLD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -21818,14 +21343,6 @@ }, /turf/open/floor/plating, /area/station/security) -"hMb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "hMh" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/chair/stool/bamboo{ @@ -21856,6 +21373,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/glass, /area/station/hallway/primary/central/aft) +"hMQ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"hMX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNb" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -21879,6 +21410,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hNq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNv" = ( /obj/machinery/netpod, /obj/machinery/light_switch/directional/north, @@ -21907,14 +21445,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"hNU" = ( -/obj/structure/table/reinforced, -/obj/structure/spider/stickyweb, -/obj/item/mod/module/plasma_stabilizer{ - pixel_y = 11 - }, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "hNY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -21952,13 +21482,7 @@ }, /area/station/security/execution/transfer) "hOO" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 9 - }, -/obj/effect/turf_decal/weather/dirt{ - dir = 5 - }, -/obj/structure/flora/bush/large/style_random, +/obj/structure/flora/tree/jungle/small/style_4, /turf/open/floor/grass, /area/station/service/chapel) "hOX" = ( @@ -21976,8 +21500,6 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/rack, /obj/effect/spawner/random/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) "hPd" = ( @@ -22045,6 +21567,21 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/circuit, /area/station/tcommsat/server) +"hQs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "hQx" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -22081,11 +21618,27 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hQG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hRc" = ( +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, +/obj/structure/closet/crate/wooden/toy, /turf/open/floor/iron/smooth, /area/station/service/greenroom) "hRd" = ( @@ -22100,13 +21653,6 @@ /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"hRF" = ( -/obj/structure/transit_tube/curved{ - dir = 1 - }, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating/airless, -/area/space/nearstation) "hRO" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -22127,48 +21673,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"hSj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark, -/obj/item/radio/intercom/directional/south, -/obj/item/c_tube{ - pixel_x = 20 - }, -/obj/item/clothing/head/cone{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/clothing/head/cone{ - pixel_y = 7; - pixel_x = -6 - }, -/obj/item/pipe_dispenser{ - pixel_y = 9; - pixel_x = 14 - }, -/obj/item/cigarette{ - pixel_y = 2 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) -"hSG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/stack/cable_coil{ - pixel_x = 9; - pixel_y = -1 - }, -/obj/item/analyzer{ - pixel_y = 9 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "hSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/white{ @@ -22192,20 +21696,6 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"hTp" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hTr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance{ @@ -22216,16 +21706,11 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hTC" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +"hTz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hTD" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -22254,11 +21739,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) -"hUh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "hUq" = ( /obj/structure/table/glass, /turf/open/floor/iron/smooth, @@ -22334,6 +21814,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hVz" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "hVJ" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, @@ -22357,6 +21842,7 @@ /obj/machinery/light/small/directional/south, /obj/item/radio/intercom/directional/south, /obj/structure/flora/bush/flowers_yw, +/obj/machinery/camera/directional/south, /turf/open/floor/grass, /area/station/service/chapel) "hVX" = ( @@ -22378,6 +21864,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/science/genetics) +"hWa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hWk" = ( /obj/machinery/vending/coffee, /obj/structure/extinguisher_cabinet/directional/south, @@ -22420,6 +21913,14 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/security) +"hWL" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "hWU" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -22430,6 +21931,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"hXc" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "hXf" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Hull Breach Emergency Storage" @@ -22447,18 +21955,15 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) -"hXt" = ( -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"hXB" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output{ - dir = 1 +"hXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "hXU" = ( /turf/closed/wall, /area/station/security/execution/education) @@ -22557,16 +22062,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"hZb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "hZe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22579,13 +22074,6 @@ /obj/machinery/brm, /turf/open/floor/iron, /area/station/cargo/miningfoundry) -"hZf" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "hZP" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, @@ -22637,6 +22125,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"iaB" = ( +/obj/machinery/computer/turbine_computer{ + mapping_id = "main_turbine" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "iaH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22646,16 +22141,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"iaI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/right/directional/west, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "iaJ" = ( /obj/structure/transit_tube/crossing/horizontal, /obj/structure/lattice/catwalk, @@ -22681,11 +22166,6 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"iaW" = ( -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/glass/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) "ibe" = ( /obj/effect/turf_decal/bot_white, /obj/structure/closet/crate/freezer, @@ -22701,11 +22181,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"ibB" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "ibD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -22735,6 +22210,20 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"ibP" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"ibX" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "icc" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -22759,6 +22248,11 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"icF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "icN" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22871,11 +22365,6 @@ }, /turf/open/floor/sepia, /area/station/maintenance/aft) -"idH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) "idJ" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, @@ -22907,12 +22396,6 @@ /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit, /area/station/tcommsat/server) -"ieM" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "ieY" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -22946,6 +22429,13 @@ dir = 8 }, /area/station/maintenance/port/greater) +"ifu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ifH" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -23042,16 +22532,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"ihj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Turbine to Wastes" - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "ihl" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -23098,13 +22578,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) -"ihA" = ( -/obj/structure/transit_tube/curved{ - dir = 1 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "ihC" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -23142,6 +22615,24 @@ }, /turf/open/space/basic, /area/space) +"iiE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "engine" + }, +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/meter, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Port" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iiI" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment, @@ -23164,13 +22655,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijn" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 5 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, @@ -23206,15 +22690,6 @@ /obj/machinery/photobooth, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central/fore) -"ijP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ijV" = ( /turf/open/misc/asteroid, /area/station/maintenance/department/engine) @@ -23233,15 +22708,6 @@ "ikc" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ikf" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos) "ikl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -23259,6 +22725,14 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"ikC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ikH" = ( /obj/structure/table/bronze, /obj/machinery/computer/security/wooden_tv{ @@ -23289,16 +22763,6 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"ilb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "ile" = ( /obj/structure/chair{ dir = 1 @@ -23343,18 +22807,21 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) +"ily" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/machinery/plumbing/input{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/cytology) "ilz" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"ilB" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Engine Bay North" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "ilD" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -23369,39 +22836,19 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"ilK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 +"ilT" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" }, -/obj/effect/turf_decal/trimline/neutral/line{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"ilN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/turf/open/floor/plating, +/area/station/engineering/atmos) "ilW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"img" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "imj" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "permaouter"; @@ -23426,6 +22873,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"imO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ina" = ( /obj/structure/table, /turf/open/floor/plating, @@ -23443,6 +22898,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) "inR" = ( @@ -23465,9 +22921,9 @@ /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) "ioa" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar) "iob" = ( @@ -23476,11 +22932,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron, /area/station/security/prison/rec) -"iok" = ( -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "ioo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23494,16 +22945,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) -"ioN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ +"ioQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "ioR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/west, @@ -23520,20 +22972,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/security/execution/transfer) -"ioX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_corner{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "ipb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -23586,6 +23024,11 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ipq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "ipr" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/wardrobe/miner, @@ -23602,6 +23045,15 @@ dir = 8 }, /area/station/command/bridge) +"ipt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ipx" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -23630,12 +23082,12 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"ipG" = ( -/obj/machinery/deepfryer, -/obj/structure/sign/poster/official/random/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) +"ipN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ipP" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner{ @@ -23672,13 +23124,6 @@ dir = 1 }, /area/station/maintenance/port/fore) -"iql" = ( -/obj/machinery/atmospherics/components/binary/pump/off{ - dir = 1; - name = "Air to Public Ports" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iqp" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -23723,23 +23168,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"iqY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Outlet Pump" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - Distribution 2" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "ira" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/small/directional/south, @@ -23789,19 +23217,13 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/hop) -"irZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) +"irR" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "isi" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new{ @@ -23819,18 +23241,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"isv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Aux Cooling to Gas" - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ +"isC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "isD" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -23865,19 +23285,6 @@ }, /turf/closed/wall, /area/station/hallway/primary/port) -"isO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "isQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23894,12 +23301,13 @@ "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"itv" = ( -/obj/structure/transit_tube/horizontal{ - dir = 2 +"itr" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +/obj/machinery/atmospherics/pipe/bridge_pipe/green, +/turf/open/floor/iron, +/area/station/engineering/atmos) "itw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -23949,6 +23357,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"iua" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "iuc" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "AISat Maintenance" @@ -24026,6 +23441,16 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"ivs" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ivz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -24052,32 +23477,12 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"ivT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ivY" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/tcomms_all, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"iwi" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "iwt" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -24088,14 +23493,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"iwM" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" +"iwR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/catwalk_floor/iron, -/area/station/science/xenobiology) +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24151,28 +23555,6 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) -"iyh" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"iyl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "iyn" = ( /obj/structure/railing/corner{ dir = 4 @@ -24228,6 +23610,13 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"izf" = ( +/obj/structure/sign/warning/engine_safety/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "izh" = ( /obj/item/shovel, /turf/open/floor/plating, @@ -24239,12 +23628,6 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"izm" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 9 - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "izo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24255,6 +23638,22 @@ dir = 1 }, /area/station/maintenance/central/lesser) +"izu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"izA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "izD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24272,16 +23671,24 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos/storage/gas) -"izT" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ +"izF" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) +"izP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "iAk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -24355,14 +23762,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) -"iAS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/chair/stool/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "iAZ" = ( /obj/structure/bed/medical/anchored{ dir = 4 @@ -24373,14 +23772,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"iBa" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "iBc" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 5 @@ -24407,14 +23798,19 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"iBt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "iBu" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"iBB" = ( -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "iBE" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/cable, @@ -24468,13 +23864,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"iCp" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "iCq" = ( /obj/effect/turf_decal/siding/thinplating/terracotta{ dir = 8 @@ -24484,12 +23873,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"iCr" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "iCw" = ( /obj/structure/hedge, /obj/effect/turf_decal/tile/yellow{ @@ -24503,6 +23886,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iCx" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "iCF" = ( /obj/structure/railing, /obj/structure/sign/poster/official/random/directional/north, @@ -24510,14 +23900,16 @@ dir = 8 }, /area/station/engineering/main) -"iCL" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 +"iCJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" }, -/obj/machinery/holopad, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24572,10 +23964,35 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iDP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"iEi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "iEk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/bridge) +"iEo" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "iEA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -24630,6 +24047,12 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"iFB" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "iFD" = ( /obj/effect/turf_decal/plaque{ icon_state = "L5"; @@ -24638,6 +24061,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "iFE" = ( @@ -24651,27 +24078,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating/rust, /area/station/maintenance/hallway/abandoned_command) -"iGc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_corner, -/area/station/engineering/supermatter/room) -"iGd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "iGl" = ( /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) @@ -24688,6 +24094,9 @@ /area/station/maintenance/solars/port/aft) "iGq" = ( /obj/effect/landmark/start/librarian, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/wood/parquet, /area/station/service/library) "iGt" = ( @@ -24743,6 +24152,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iHa" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cold Loop"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iHg" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -24776,6 +24195,17 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"iHE" = ( +/obj/structure/chair/office, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "iHM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24791,6 +24221,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"iId" = ( +/obj/machinery/processor{ + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/table, +/obj/effect/turf_decal/siding/end, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "iIs" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -24808,6 +24247,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "iIw" = ( @@ -24980,16 +24420,6 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"iJO" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "iJS" = ( /obj/structure/railing/corner/end{ dir = 4 @@ -25030,26 +24460,6 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"iKB" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"iKK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25132,21 +24542,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) -"iLS" = ( -/obj/structure/table, -/obj/item/stock_parts/matter_bin{ - pixel_x = 6; - pixel_y = 15 - }, -/obj/item/stock_parts/matter_bin{ - pixel_y = 5 - }, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/dark, -/area/station/science/lab) "iLV" = ( /obj/machinery/recharge_station, /turf/open/floor/plating, @@ -25186,13 +24581,6 @@ /obj/machinery/flasher/portable, /turf/open/floor/plating, /area/station/security/tram) -"iME" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "iMI" = ( /obj/structure/cable, /obj/structure/sign/warning/no_smoking/circle/directional/north, @@ -25396,18 +24784,13 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"iPg" = ( -/obj/effect/turf_decal/stripes/line{ +"iPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Waste to Exhaust" - }, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iPj" = ( /obj/structure/cable, /turf/open/floor/circuit/green, @@ -25447,12 +24830,6 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) -"iQe" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar) "iQl" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -25504,6 +24881,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"iRk" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/cytology) "iRl" = ( /obj/structure/table/wood, /obj/item/food/grown/citrus/lemon{ @@ -25519,18 +24902,30 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iRp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) "iRz" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"iRE" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) +"iRQ" = ( +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/food/meat/bacon, +/obj/item/food/meat/bacon, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "iSb" = ( /obj/structure/frame/computer{ dir = 1 @@ -25568,14 +24963,15 @@ "iSr" = ( /turf/open/floor/iron, /area/station/security/execution/transfer) +"iSt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "iSD" = ( -/turf/open/misc/dirt/jungle, +/turf/open/misc/dirt/station, /area/station/service/chapel) -"iSE" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iSK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -25653,16 +25049,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"iTZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Waste" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "iUb" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -25681,6 +25067,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "iUH" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -25796,39 +25188,6 @@ /obj/item/flashlight, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"iVW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 10 - }, -/obj/structure/table, -/obj/item/cigarette, -/obj/item/toy/toy_dagger, -/obj/item/clothing/head/collectable/paper, -/obj/item/toy/figure/roboticist{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/toy/figure/syndie{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/toy/figure/md{ - pixel_x = 10 - }, -/obj/item/toy/figure/hop{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/toy/figure/ian{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/toy/figure/lawyer{ - pixel_x = -10 - }, -/obj/item/toy/figure/detective, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iVY" = ( /obj/effect/turf_decal/siding/brown{ dir = 1 @@ -25884,6 +25243,18 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"iWD" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25937,18 +25308,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iXg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "iXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25963,16 +25322,17 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/cmo_office, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"iXn" = ( -/obj/structure/table/reinforced, -/obj/item/mod/module/signlang_radio, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) -"iXx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/electrical) +"iXu" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "iXy" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -25994,35 +25354,20 @@ /turf/open/floor/iron/dark, /area/station/science/server) "iXW" = ( -/obj/structure/sign/poster/official/random/directional/north, /obj/structure/table/wood, -/obj/item/gun/ballistic/shotgun/doublebarrel, -/obj/structure/reagent_dispensers/beerkeg, -/obj/structure/reagent_dispensers/beerkeg{ - pixel_y = 5 - }, -/obj/machinery/camera/autoname/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 5 }, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/east, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/service/bar/backroom) -"iXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"iYd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/grimy, -/area/station/service/library) "iYh" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, @@ -26063,6 +25408,21 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/processing) +"iZs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iZu" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/item/kirbyplants/random, @@ -26116,6 +25476,7 @@ codes_txt = "patrol;next_patrol=19.0-Engineering-CentralPort"; location = "18.0-ToolStorage-Engineering" }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) "iZM" = ( @@ -26123,6 +25484,19 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) +"iZO" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "iZU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26140,14 +25514,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jad" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jar" = ( /obj/machinery/drone_dispenser, /turf/open/misc/asteroid, @@ -26219,12 +25585,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/rd) -"jbo" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 9 - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "jbp" = ( /obj/structure/flora/bush/jungle, /obj/structure/flora/rock/pile/style_3, @@ -26240,21 +25600,6 @@ }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"jbs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=16.0-CentralFore-CentralPort"; - location = "15.0-CentralStarboard-CentralFore" - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "jbt" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -26278,10 +25623,31 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jbE" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "jbV" = ( /obj/machinery/photocopier, /turf/open/floor/iron/dark, /area/station/security/office) +"jbX" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "jch" = ( /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) @@ -26315,6 +25681,19 @@ /obj/machinery/door/window/right/directional/south, /turf/open/floor/plating, /area/station/service/chapel/funeral) +"jcB" = ( +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) "jcE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26322,11 +25701,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) -"jcG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "jcU" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -26354,20 +25728,21 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/service/library) -"jdU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, +"jdR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Turbine to Chamber" - }, -/turf/open/floor/iron/smooth, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"jdX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jeh" = ( /turf/open/floor/noslip, /area/station/security/tram) @@ -26385,6 +25760,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"jeF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "jeG" = ( /obj/machinery/portable_atmospherics/canister/plasma, /obj/effect/turf_decal/stripes/white/line{ @@ -26393,29 +25774,20 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"jeV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" + }, +/turf/open/floor/plating/rust, +/area/station/engineering/main) "jeW" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/plating, /area/station/medical/medbay/lobby) -"jfa" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) -"jfk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron, -/area/station/engineering/atmos) "jfs" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -26447,13 +25819,15 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"jfB" = ( +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "jfE" = ( /obj/structure/closet/secure_closet/evidence, /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/smooth, /area/station/security/evidence) "jfT" = ( -/obj/structure/closet/secure_closet/hydroponics, /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 }, @@ -26466,9 +25840,6 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) @@ -26477,17 +25848,13 @@ dir = 8 }, /obj/structure/flora/bush/jungle/a/style_3, -/turf/open/misc/dirt/jungle, +/turf/open/misc/dirt/station, /area/station/service/chapel) -"jgx" = ( -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/hydroponics/constructable, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"jgy" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jgF" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -26504,14 +25871,14 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"jhk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/warning/pods/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) +"jhj" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "jhm" = ( /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) @@ -26522,28 +25889,21 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"jhz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"jhB" = ( +/obj/structure/sign/warning/electric_shock, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "jhC" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"jhJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"jhF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jhY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -26562,16 +25922,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) -"jia" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "jie" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -26682,13 +26032,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jjZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "jkz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -26762,6 +26105,19 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"jlA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"jlC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/stone, +/area/station/service/chapel) "jlL" = ( /obj/structure/closet/secure_closet/engineering_chief, /obj/item/storage/briefcase/secure, @@ -26840,6 +26196,16 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"jmN" = ( +/obj/structure/table, +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jmV" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, @@ -26902,6 +26268,12 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) +"jnI" = ( +/obj/machinery/air_sensor/incinerator_tank, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "jnN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -26951,19 +26323,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"jph" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "jpm" = ( /obj/structure/chair{ dir = 4; @@ -27028,10 +26387,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"jqh" = ( -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "jqq" = ( /obj/structure/closet/crate/trashcart/filled, /obj/effect/landmark/start/hangover, @@ -27080,6 +26435,18 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"jqK" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/biogenerator, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "jqZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27087,19 +26454,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) -"jrb" = ( -/obj/item/radio/intercom/directional/west, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"jrj" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - name = "Refuse Exhaust" - }, -/turf/open/space/basic, -/area/space/nearstation) "jrk" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -27116,6 +26470,22 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"jrv" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jrD" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "jrG" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -27129,24 +26499,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"jrN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) -"jrS" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "jrT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27193,6 +26545,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "jsJ" = ( @@ -27254,6 +26607,12 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"jtG" = ( +/obj/structure/table, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "jtI" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -27279,28 +26638,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/commons/storage/tools) -"jul" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) -"juF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 6 - }, -/obj/machinery/holopad, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "juJ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -27316,7 +26653,6 @@ "juP" = ( /obj/machinery/light/small/directional/south, /obj/machinery/status_display/evac/directional/south, -/obj/effect/turf_decal/siding/wood, /turf/open/floor/stone, /area/station/service/chapel) "juS" = ( @@ -27352,6 +26688,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) "jvN" = ( @@ -27438,29 +26775,6 @@ }, /turf/open/floor/iron, /area/station/security) -"jwC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) -"jwM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "jwU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/sign/poster/random/directional/south, @@ -27476,13 +26790,6 @@ /obj/structure/frame/machine, /turf/open/floor/tram, /area/station/security/tram) -"jxh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) "jxk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27547,6 +26854,10 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"jya" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "jyd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, @@ -27567,22 +26878,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) -"jyl" = ( -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/item/newspaper{ - pixel_y = 4; - pixel_x = -4 - }, -/obj/item/geiger_counter{ - pixel_x = 13; - pixel_y = 6 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jyu" = ( /obj/structure/chair/bronze{ dir = 4 @@ -27606,6 +26901,16 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"jyF" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "jyG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27684,14 +26989,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jzJ" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/closet/firecloset, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "jAb" = ( /obj/structure/cable, /turf/open/floor/iron/stairs{ @@ -27727,6 +27024,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"jBg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jBo" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 @@ -27741,6 +27042,19 @@ }, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"jBu" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jBA" = ( /obj/structure/cable, /obj/machinery/power/smes/super/full, @@ -27758,13 +27072,6 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"jBW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "jCi" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance, @@ -27773,12 +27080,18 @@ /area/station/maintenance/port/fore) "jCm" = ( /obj/effect/landmark/start/hangover, -/turf/open/misc/dirt/jungle, +/turf/open/misc/dirt/station, /area/station/service/chapel) "jCo" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jCH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jCP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27804,6 +27117,9 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) +"jDi" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jDm" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown{ @@ -27847,6 +27163,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"jDT" = ( +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "jEc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27963,20 +27289,13 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jFk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "jFm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/effect/turf_decal/siding/wood, /obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/tile, /area/station/service/bar) "jFw" = ( /obj/item/kirbyplants/random, @@ -28008,11 +27327,12 @@ /turf/open/floor/plating, /area/station/maintenance/fore/lesser) "jFK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, /area/station/service/bar) "jGc" = ( /obj/structure/window/spawner/directional/east, @@ -28024,15 +27344,20 @@ }, /turf/open/floor/iron, /area/station/security) -"jGk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 8 +"jGu" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"jGy" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/turf/open/floor/stone, +/area/station/service/bar/backroom) "jGA" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -28114,14 +27439,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"jHl" = ( -/obj/machinery/smartfridge, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "jHq" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -28145,15 +27462,6 @@ /mob/living/basic/sloth/citrus, /turf/open/floor/iron, /area/station/cargo/storage) -"jHH" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new/light/corner{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "jHI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -28161,6 +27469,17 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) +"jHJ" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"jHM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "jHU" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -28168,22 +27487,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/science/lobby) -"jIa" = ( -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/hallway) "jIc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ @@ -28230,6 +27533,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"jIA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jIB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -28292,18 +27601,13 @@ /area/station/cargo/office) "jJd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron, +/area/station/service/hydroponics) "jJg" = ( /obj/effect/turf_decal/siding/wideplating, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28313,11 +27617,6 @@ }, /turf/open/floor/wood, /area/station/engineering/main) -"jJu" = ( -/obj/structure/chair, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28357,16 +27656,6 @@ dir = 1 }, /area/station/science/xenobiology) -"jKh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28407,14 +27696,6 @@ "jKU" = ( /turf/closed/wall, /area/station/engineering/atmos/storage/gas) -"jKV" = ( -/obj/machinery/processor{ - pixel_y = 6 - }, -/obj/machinery/camera/autoname/directional/west, -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "jLb" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -28437,8 +27718,16 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"jLv" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jLB" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -28496,24 +27785,19 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"jMy" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Waste Outlet" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 +"jMp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"jMC" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) -"jMA" = ( -/obj/structure/chair/stool/bar/directional/east, -/turf/open/floor/wood/large, -/area/station/service/bar) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jML" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -28526,6 +27810,15 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"jMQ" = ( +/obj/machinery/atmospherics/components/binary/pump/off{ + name = "O2 To Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jMX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -28563,17 +27856,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"jNr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 9 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) +"jNu" = ( +/obj/machinery/air_sensor/air_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "jNw" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -28581,19 +27868,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"jNL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/trinary/filter/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "jNO" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/flora/bush/leavy/style_3{ @@ -28657,6 +27931,13 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"jOM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "jOS" = ( /obj/machinery/vending/cigarette, /obj/machinery/light/small/directional/south, @@ -28713,14 +27994,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"jQo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "jQv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -28743,6 +28016,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Fore Primary Hallway" }, +/obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/central/fore) "jRk" = ( @@ -28785,6 +28059,13 @@ /obj/structure/chair/sofa/bench, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"jRz" = ( +/obj/structure/flora/bush/large/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "jRE" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -28805,13 +28086,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jRR" = ( -/obj/machinery/atmospherics/components/binary/crystallizer{ - dir = 4 +"jRK" = ( +/obj/machinery/door/airlock{ + name = "Hydroponics Maintenance" }, -/obj/machinery/light/cold/dim/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jRU" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -28827,16 +28109,46 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"jSm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "jSn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed, /obj/item/bedsheet/brown, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"jSp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "jSw" = ( /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) +"jSE" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jSJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -28873,6 +28185,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"jTf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "jTh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28883,6 +28201,22 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security/detectives_office) +"jTj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"jTn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jTu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28905,6 +28239,12 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/holodeck/rec_center) +"jTD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jTU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28921,6 +28261,14 @@ dir = 1 }, /area/station/hallway/primary/aft) +"jTW" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jUc" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, @@ -28950,19 +28298,44 @@ /obj/item/instrument/harmonica, /turf/open/floor/iron, /area/station/security/prison/rec) +"jUr" = ( +/obj/item/cigarette, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_y = 5; + pixel_x = 6 + }, +/obj/item/lighter, +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"jUU" = ( +"jUy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jUA" = ( +/obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light_switch/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons) +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "jVe" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -28977,14 +28350,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"jVI" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +"jVx" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/maintenance/central/greater) "jVJ" = ( /obj/structure/table, /obj/item/bikehorn/rubberducky{ @@ -29033,15 +28403,6 @@ /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, /area/station/service/chapel) -"jWk" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "jWl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -29050,6 +28411,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"jWm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - upper" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jWr" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "jWs" = ( /turf/open/floor/iron/dark, /area/station/security/processing) @@ -29074,6 +28448,11 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/iron, /area/station/cargo/storage) +"jWC" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "jWO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/camera/autoname/directional/south, @@ -29153,10 +28532,15 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"jXJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/central/aft) +"jXH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jXQ" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -18; @@ -29188,6 +28572,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"jYe" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "jYr" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/mecha_part_fabricator{ @@ -29215,6 +28605,11 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/service/janitor) +"jYM" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/service/bar) "jYU" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "hopqueue"; @@ -29381,6 +28776,12 @@ /obj/item/stock_parts/power_store/cell, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"kbL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29402,20 +28803,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"kcM" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/camera/autoname/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "kcQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 @@ -29439,6 +28826,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"kdv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "kdH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -29464,11 +28856,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) -"keb" = ( -/obj/structure/cable, -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "kee" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/corner{ @@ -29500,7 +28887,7 @@ /area/station/security/prison/work) "keL" = ( /obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) "keO" = ( /obj/effect/spawner/random/trash, @@ -29514,25 +28901,13 @@ /turf/open/floor/iron, /area/station/science/lower) "keQ" = ( -/obj/structure/flora/grass/jungle/b/style_3, -/turf/open/floor/grass, -/area/station/service/chapel) -"keS" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input{ +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) -"keY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/power/energy_accumulator/tesla_coil, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "kft" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29572,17 +28947,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kfO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "kfW" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -29621,6 +28988,11 @@ dir = 1 }, /area/station/hallway/primary/aft) +"kgu" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent, +/turf/open/space/basic, +/area/space/nearstation) "kgw" = ( /obj/machinery/door/airlock{ name = "Gambling Den" @@ -29630,22 +29002,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"kgG" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "kgN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, @@ -29657,16 +29013,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"kgW" = ( -/obj/structure/table/reinforced, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/body/waste_output{ - pixel_x = 7; - pixel_y = -11 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "kgZ" = ( /obj/structure/cable, /obj/machinery/newscaster/directional/east, @@ -29694,16 +29040,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"khr" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "khD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -29813,6 +29149,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kiP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kiQ" = ( /obj/structure/cable, /obj/machinery/power/smes/super/full, @@ -29824,6 +29166,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kiY" = ( +/obj/structure/flora/tree/jungle/style_6, +/turf/open/floor/grass, +/area/station/service/chapel) "kjg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29840,6 +29186,25 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"kjs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/glasses/meson{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kjw" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29850,6 +29215,18 @@ dir = 8 }, /area/station/hallway/secondary/dock) +"kjx" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "kjO" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/siding/white{ @@ -29861,6 +29238,10 @@ /obj/structure/plasticflaps/opaque, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"kjW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "kkd" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Creature Pen"; @@ -29936,6 +29317,17 @@ /obj/machinery/duct, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"klf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"klg" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/engineering/atmos) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -29948,29 +29340,18 @@ dir = 4 }, /area/station/science/xenobiology) +"klG" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "klH" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) -"klL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 6 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "klN" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -30060,6 +29441,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"kmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/table, +/obj/item/radio/intercom/directional/south, +/obj/item/clothing/head/cone{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/clothing/head/cone{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/pipe_dispenser{ + pixel_y = 9; + pixel_x = 14 + }, +/obj/item/cigarette{ + pixel_y = 2 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kmP" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -30128,13 +29531,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark/small, /area/station/medical/virology) -"kol" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/stack/spacecash/c1, -/obj/item/cigarette/cigar/havana, -/turf/open/floor/light/colour_cycle/dancefloor_b, -/area/station/maintenance/starboard/central) "kop" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30161,53 +29557,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"koV" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"kpe" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"kph" = ( -/obj/structure/railing, -/obj/machinery/light/cold/directional/north, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos/office) -"kpq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/vacuum/external/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "kpF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, @@ -30367,6 +29716,14 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"krb" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos) "krd" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/machinery/newscaster/directional/north, @@ -30386,6 +29743,12 @@ /obj/structure/cable, /turf/open/floor/iron/stairs, /area/station/maintenance/department/science/xenobiology) +"krF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "krG" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, @@ -30436,8 +29799,22 @@ /turf/open/floor/circuit, /area/station/tcommsat/server) "ksm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/stone, +/obj/structure/table/wood, +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/barsign{ + chosen_sign = "thecavern"; + icon_state = "thecavern"; + pixel_y = 32 + }, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "kso" = ( /obj/structure/disposalpipe/junction{ @@ -30497,12 +29874,25 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"ksM" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/hallway) "ksN" = ( /obj/structure/transit_tube/station/dispenser, /obj/effect/decal/cleanable/dirt, @@ -30516,6 +29906,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"kti" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ktl" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -30544,41 +29944,17 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"ktL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ +"ktJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ktM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/cargo/office) -"ktQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/mousetraps{ - pixel_x = -5 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/small, -/area/station/commons) "ktT" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -30613,18 +29989,22 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/office) -"kuk" = ( -/obj/machinery/light/warm/dim, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "kuq" = ( /obj/machinery/computer/cargo/request, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"kut" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "kux" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -30648,6 +30028,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "kuO" = ( @@ -30667,9 +30048,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/commons/storage/tools) -"kvb" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/atmos) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -30679,6 +30057,9 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kvz" = ( +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "kvD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -30718,11 +30099,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kwr" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/chair, -/turf/open/floor/iron, -/area/station/engineering/hallway) "kws" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/firealarm/directional/west, @@ -30751,13 +30127,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/robotics/augments) -"kwH" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "kwW" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth, @@ -30802,6 +30171,16 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"kxE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "kxF" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -30837,28 +30216,6 @@ }, /turf/open/floor/plating, /area/station/service/hydroponics) -"kya" = ( -/obj/structure/table/greyscale, -/obj/item/paper{ - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/mug/tea{ - pixel_y = 8; - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"kyg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "kym" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -30872,6 +30229,16 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"kyE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "kyN" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/small, @@ -30887,6 +30254,17 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kzs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/security/checkpoint/science) "kzv" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -30897,21 +30275,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"kzz" = ( -/obj/effect/turf_decal/weather/dirt, -/mob/living/basic/deer, -/obj/structure/flora/bush/flowers_yw, -/turf/open/floor/grass, -/area/station/service/chapel) -"kzF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "kzI" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -30928,7 +30291,10 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, /area/station/service/chapel) "kAf" = ( /obj/structure/transit_tube/station/dispenser/flipped{ @@ -30947,18 +30313,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) -"kAG" = ( -/obj/structure/lattice/catwalk, +"kAz" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/structure/cable, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/obj/machinery/power/emitter{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "kAJ" = ( /obj/structure/closet/wardrobe/mixed, /obj/effect/turf_decal/siding/wideplating/dark, @@ -30997,19 +30359,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/small, /area/station/engineering/main) -"kBD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "kBM" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/eighties/red, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/turf/open/floor/eighties, /area/station/hallway/primary/central/fore) "kBZ" = ( /obj/machinery/door/airlock/command{ @@ -31023,6 +30380,19 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"kCq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "kCy" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -31088,24 +30458,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"kDj" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "kDs" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"kDY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kEd" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31114,6 +30470,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) +"kEo" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/engineering/main) "kEs" = ( /obj/machinery/door/airlock/external/glass{ name = "Supply Door Airlock" @@ -31150,6 +30510,15 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"kEW" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kFg" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/wood, @@ -31179,6 +30548,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"kFA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "kFD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/autolathe, @@ -31186,10 +30562,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/smooth, /area/station/cargo/sorting) -"kFH" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) "kFI" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -31210,8 +30582,10 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/sorting) -"kFS" = ( -/turf/closed/mineral/random/stationside, +"kFK" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, /area/station/engineering/atmos) "kFU" = ( /obj/item/kirbyplants/random, @@ -31220,13 +30594,6 @@ "kFY" = ( /turf/closed/wall/r_wall, /area/station/medical/morgue) -"kGm" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "kGn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -31276,6 +30643,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"kHd" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kHi" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -31308,20 +30681,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"kHI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 +"kHp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 6 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "kHL" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -31339,27 +30711,6 @@ }, /turf/open/floor/iron, /area/station/security) -"kHQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"kHU" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "kHX" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -31484,10 +30835,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) -"kJs" = ( -/obj/machinery/holopad, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "kJJ" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -31546,33 +30893,36 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"kLk" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) +"kKX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "kLo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"kLv" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Supplies" - }, -/turf/open/floor/plating, +"kLr" = ( +/obj/structure/table, +/obj/item/hfr_box/body/waste_output, +/obj/item/hfr_box/body/moderator_input, +/obj/item/hfr_box/body/fuel_input, +/obj/item/hfr_box/body/interface, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "kLS" = ( /turf/open/floor/iron/stairs{ dir = 1 }, /area/station/medical/treatment_center) +"kMe" = ( +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "kMm" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -31615,6 +30965,16 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"kNv" = ( +/obj/machinery/air_sensor/mix_tank, +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Mix" + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"kNx" = ( +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "kNz" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, @@ -31625,22 +30985,6 @@ "kND" = ( /turf/closed/wall/r_wall, /area/station/security/prison) -"kNG" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "kNI" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -31671,6 +31015,15 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kOh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Mech Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "kOm" = ( /obj/structure/cable, /turf/closed/wall/r_wall, @@ -31686,6 +31039,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) +"kOH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kOR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31730,19 +31090,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kPp" = ( -/obj/structure/closet/secure_closet/bar, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "kPv" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -31765,23 +31112,28 @@ dir = 1 }, /area/station/security/prison/shower) -"kPL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +"kPW" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kQe" = ( +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") }, -/obj/effect/turf_decal/trimline/neutral/line{ +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"kPW" = ( -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/cargo/storage) "kQk" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -31789,23 +31141,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"kQo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"kQr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "kQt" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) @@ -31813,27 +31148,14 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) -"kRf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/bar) -"kRs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"kRi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/obj/structure/table/wood, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/grimy, -/area/station/service/bar) +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kRt" = ( /obj/machinery/monkey_recycler, /obj/effect/turf_decal/siding/white{ @@ -31841,20 +31163,7 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"kRu" = ( -/obj/effect/turf_decal/siding/white{ - dir = 10 - }, -/obj/machinery/air_sensor/air_tank, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) "kRA" = ( -/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -31890,13 +31199,16 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"kRW" = ( -/obj/machinery/computer/atmos_control/nitrogen_tank{ +"kRV" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kSb" = ( /turf/open/floor/wood, /area/station/command/heads_quarters/qm) @@ -31923,20 +31235,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"kSr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/command/heads_quarters/rd) "kSv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -31971,6 +31269,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -31992,12 +31291,6 @@ dir = 1 }, /area/station/command/heads_quarters/hop) -"kTu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "kTw" = ( /turf/closed/wall, /area/station/construction/mining/aux_base) @@ -32041,6 +31334,10 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"kUa" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "kUf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32061,6 +31358,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"kUN" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "kVb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32075,9 +31375,7 @@ "kVg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, +/obj/structure/chair/sofa/bench/left, /turf/open/floor/stone, /area/station/service/chapel) "kVn" = ( @@ -32099,18 +31397,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"kVK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ +"kVB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 6 }, -/obj/structure/reflector/double/anchored, -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "kWd" = ( /obj/machinery/door/airlock{ name = "Room 2" @@ -32131,6 +31423,17 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/small, /area/station/security/office) +"kWF" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/bar) "kWJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -32139,14 +31442,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"kWK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "kWR" = ( /obj/machinery/door/airlock/public/glass{ name = "Docking Corridor" @@ -32156,15 +31451,13 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"kXf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, +"kWY" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"kXj" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) +/area/station/engineering/atmos/office) "kXn" = ( /turf/closed/wall/r_wall, /area/station/engineering/gravity_generator) @@ -32183,14 +31476,12 @@ /turf/open/floor/iron/white/small, /area/station/security/warden) "kXC" = ( -/obj/structure/sign/clock/directional/north, -/obj/structure/table/wood, -/obj/machinery/reagentgrinder{ - pixel_x = -5; - pixel_y = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/service/bar) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "kXM" = ( /obj/effect/spawner/random/structure/girder, /obj/structure/barricade/wooden, @@ -32222,11 +31513,6 @@ /obj/effect/landmark/navigate_destination/cargo, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kYo" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "kYs" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -32295,6 +31581,27 @@ /obj/structure/flora/grass/jungle/b/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"kZr" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) +"kZv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, +/turf/open/floor/iron/stairs, +/area/station/ai_monitored/turret_protected/ai) "kZx" = ( /obj/machinery/button/door/directional/north{ id = "main_surgery"; @@ -32338,16 +31645,22 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, /area/station/service/chapel) -"lae" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Cold Loop to Gas" +"lab" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/smooth_edge{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 }, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "laD" = ( /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) @@ -32404,6 +31717,22 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) +"lbi" = ( +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"lbl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/storage/fancy/candle_box, +/obj/structure/rack/skeletal, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library) "lbF" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 @@ -32506,20 +31835,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lda" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/hallway) "ldb" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"ldo" = ( -/obj/machinery/griddle, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) +"ldl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/machinery/light/cold/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "ldq" = ( /turf/closed/wall, /area/station/maintenance/department/science/xenobiology) @@ -32538,6 +31866,14 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) +"ldG" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ldJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -32583,6 +31919,39 @@ dir = 1 }, /area/station/medical/treatment_center) +"leB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/dark_red, +/obj/effect/decal/cleanable/dirt, +/obj/item/food/gumball{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/cigarette/candy{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/food/gumball{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weldingtool/mini{ + pixel_x = 5; + pixel_y = -11 + }, +/obj/item/screwdriver{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/storage/box/prisoner{ + pixel_x = 5; + pixel_y = -12 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/processing) "leC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -32635,6 +32004,15 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lfq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Distro" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "lfs" = ( /obj/effect/landmark/start/assistant, /turf/open/floor/iron/half, @@ -32664,44 +32042,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/prison) -"lfI" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"lfQ" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) "lfU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"lgc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Aux Cooling"; - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "lgf" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -32792,6 +32138,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"lgD" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "lgG" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -32885,47 +32235,9 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"lhZ" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"lik" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/dark_red, -/obj/effect/decal/cleanable/dirt, -/obj/item/food/gumball{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/cigarette/candy{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/food/gumball{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/weldingtool/mini{ - pixel_x = 5; - pixel_y = -11 - }, -/obj/item/screwdriver{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/storage/box/prisoner{ - pixel_x = 5; - pixel_y = -12 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/security/processing) "lir" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32941,19 +32253,6 @@ /obj/effect/landmark/navigate_destination/kitchen, /turf/open/floor/wood, /area/station/hallway/primary/central/aft) -"lix" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 8; - pixel_y = 13 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "liG" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -33020,24 +32319,20 @@ /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) "ljg" = ( -/obj/structure/kitchenspike, /obj/effect/turf_decal/weather/snow/corner{ - dir = 5 + dir = 1 }, /obj/effect/turf_decal/weather/snow, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, +/obj/machinery/light/small/directional/north, +/obj/machinery/icecream_vat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "lji" = ( +/obj/structure/flora/tree/jungle/style_2, /obj/effect/turf_decal/weather/dirt{ - dir = 1 + dir = 9 }, -/obj/structure/flora/bush/flowers_yw/style_3, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/camera/directional/north, /turf/open/floor/grass, /area/station/service/chapel) "ljl" = ( @@ -33175,6 +32470,15 @@ /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, /area/station/service/chapel) +"lkN" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "lkR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33183,14 +32487,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"lkS" = ( -/obj/item/toy/plush/slimeplushie{ - name = "Nanners" - }, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/science/xenobiology) "lkV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -33278,6 +32574,13 @@ /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, /area/station/service/chapel) +"lmo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lmv" = ( /obj/structure/disposalpipe/segment, /obj/item/kirbyplants/random, @@ -33286,6 +32589,9 @@ "lmz" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lmJ" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "lmR" = ( /obj/structure/dresser, /obj/structure/sign/poster/contraband/random/directional/east, @@ -33314,16 +32620,48 @@ }, /area/station/hallway/secondary/construction) "lnD" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/rag{ + pixel_x = -6; + pixel_y = 6 }, -/turf/open/floor/stone, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 5; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -7; + pixel_y = 15 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "lnI" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/ore_box, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"lnM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/brigdoor/right/directional/north{ + atom_integrity = 300; + name = "AI Core Chamber Access"; + req_access = list("ai_upload") + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) "lnN" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 @@ -33418,6 +32756,15 @@ /obj/machinery/holopad, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lps" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/atmos_control/nocontrol/master{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "lpC" = ( /turf/open/floor/plating, /area/station/service/chapel/funeral) @@ -33438,22 +32785,6 @@ }, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) -"lpT" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/stack/sheet/iron/fifty{ - pixel_y = -9; - pixel_x = -4 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/cable_coil{ - pixel_x = -1; - pixel_y = -7 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "lpV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/green{ @@ -33494,6 +32825,18 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) +"lqh" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -17; + pixel_y = 2 + }, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/hydroponics) "lql" = ( /turf/open/floor/wood/parquet, /area/station/service/library) @@ -33518,20 +32861,23 @@ /obj/effect/landmark/transport/nav_beacon/tram/platform/birdshot/prison_wing, /turf/open/floor/tram, /area/station/security/tram) +"lqQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lrh" = ( /obj/structure/cable, /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/aft) -"lrD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "lrE" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -33544,34 +32890,17 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"lrL" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = 18 - }, -/obj/item/storage/bag/construction, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - North" - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "lrP" = ( /obj/machinery/computer/security{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/security/office) -"lsd" = ( -/obj/machinery/photocopier, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"lrQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lsh" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -33581,24 +32910,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/service/barber) -"lso" = ( -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"lst" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" }, -/obj/effect/turf_decal/siding/wood{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/stone, -/area/station/service/bar) -"lsK" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"lsF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lsO" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white/side{ @@ -33646,13 +32971,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"ltz" = ( -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) "ltE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33677,6 +32995,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"ltU" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "luc" = ( /obj/machinery/door/airlock{ id_tag = "ShowerToilet1"; @@ -33721,33 +33049,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"luv" = ( -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/stone, -/area/station/service/bar) -"luC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) -"luE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood/tile, -/area/station/service/bar) "luG" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -33755,9 +33056,8 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "luP" = ( -/obj/effect/landmark/start/hangover, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, /turf/open/floor/wood/tile, /area/station/service/bar) @@ -33779,12 +33079,11 @@ /turf/open/space/basic, /area/space/nearstation) "lvr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination/bar, +/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "lvu" = ( @@ -33807,8 +33106,19 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"lvy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lvA" = ( /obj/structure/table/wood/fancy/red, /obj/item/clothing/head/costume/witchwig{ @@ -33821,10 +33131,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"lvG" = ( -/obj/machinery/atmospherics/components/trinary/filter/critical, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/supermatter/room) "lvJ" = ( /obj/structure/flora/bush/flowers_br, /turf/open/floor/grass, @@ -33902,6 +33208,20 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"lwK" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/atmos/storage) +"lwO" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Engine Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/turf/open/floor/catwalk_floor, +/area/station/engineering/supermatter/room) "lwW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -33921,6 +33241,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/explab) +"lxm" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "lxo" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33957,20 +33281,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lxO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/power/emitter{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "lxP" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/girder, @@ -34028,12 +33338,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"lyX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "lyY" = ( /obj/structure/bed, /obj/item/bedsheet/red, @@ -34117,6 +33421,23 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/grass, /area/station/cargo/storage) +"lzW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/storage/photo_album/library, +/turf/open/floor/iron/grimy, +/area/station/service/library) "lAk" = ( /obj/effect/turf_decal/siding/white{ dir = 9 @@ -34137,16 +33458,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"lAt" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "lAO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -34180,14 +33491,11 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) "lAV" = ( -/obj/structure/table/wood, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 }, -/turf/open/floor/wood/large, +/obj/structure/cable, +/turf/open/floor/stone, /area/station/service/bar) "lBf" = ( /obj/effect/decal/cleanable/dirt, @@ -34251,15 +33559,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/medbay/lobby) -"lBw" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "lBy" = ( /obj/structure/railing, /obj/structure/lattice, @@ -34292,6 +33591,15 @@ /obj/effect/mapping_helpers/airlock/access/all/security/detective, /turf/open/floor/iron/textured_half, /area/station/security/detectives_office) +"lCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lCg" = ( /obj/structure/chair{ dir = 4 @@ -34352,6 +33660,12 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/coroner, /turf/open/floor/plating, /area/station/medical/morgue) +"lCT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "lDc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34363,6 +33677,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) +"lDo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/indigo, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "lDp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34467,13 +33787,22 @@ /turf/open/floor/wood/tile, /area/station/maintenance/aft) "lEO" = ( -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/structure/table/glass, +/obj/item/flashlight/lamp/green{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/taperecorder{ + pixel_x = -15; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library) "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) @@ -34483,21 +33812,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"lFm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "lFq" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/exodrone_launcher, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"lFE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "lFG" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/red, @@ -34505,28 +33834,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) -"lFH" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/warning/engine_safety/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) -"lFT" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/storage/belt/utility, -/obj/item/pipe_dispenser, -/obj/item/clothing/head/utility/welding{ - pixel_y = 6 - }, -/obj/item/clothing/head/utility/welding{ - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "lGd" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -34551,13 +33858,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) -"lGq" = ( -/obj/structure/fluff/broken_canister_frame, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lGr" = ( /obj/effect/turf_decal/siding/brown{ dir = 6 @@ -34572,13 +33872,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"lGJ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/book/manual/wiki/engineering_guide{ - pixel_y = 6 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "lGK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34616,16 +33909,23 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"lHd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lHe" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/carpet/donk, /area/station/command/heads_quarters/qm) -"lHh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/radiation/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "lHk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34646,9 +33946,8 @@ /area/station/science/lower) "lHp" = ( /obj/effect/turf_decal/siding/thinplating{ - dir = 9 + dir = 1 }, -/obj/structure/sign/poster/official/tactical_game_cards/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) "lHt" = ( @@ -34699,6 +33998,12 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) +"lHZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/closed/wall, +/area/station/hallway/primary/central/aft) "lIa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34799,14 +34104,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"lJm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/spawner/random/vending/colavend, -/turf/open/floor/stone, -/area/station/service/bar) +"lJq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "lJB" = ( /obj/item/radio/intercom/directional/north{ broadcasting = 1; @@ -34818,13 +34119,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"lJF" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "lJV" = ( /obj/structure/bed, /obj/effect/decal/cleanable/dirt, @@ -34847,6 +34141,16 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"lKs" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Recreation" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/commons/fitness/recreation/entertainment) "lKA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -34941,16 +34245,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"lLE" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "lLH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34967,19 +34261,6 @@ "lLX" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"lMg" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - South 2" - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "lMl" = ( /obj/structure/railing{ dir = 4 @@ -35023,19 +34304,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "lMH" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/table/glass, -/obj/item/flashlight/lamp/green{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/taperecorder{ - pixel_x = -15; - pixel_y = 3 +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/grimy, /area/station/service/library) "lNf" = ( @@ -35081,20 +34354,19 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"lNC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = 17 +"lNF" = ( +/obj/effect/spawner/random/entertainment/lighter, +/obj/item/cigarette/rollie/mindbreaker{ + pixel_x = -2; + pixel_y = 6 }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 +/obj/item/cigarette/rollie/trippy{ + pixel_x = 4 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "lNJ" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -35136,15 +34408,6 @@ "lOj" = ( /turf/closed/wall, /area/station/cargo/miningoffice) -"lOk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"lOC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "lOG" = ( /obj/structure/table, /obj/item/stack/spacecash/c1{ @@ -35185,24 +34448,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lPq" = ( -/obj/structure/flora/bush/flowers_yw/style_2, -/turf/open/floor/grass, -/area/station/service/chapel) -"lPw" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"lPB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/stone, -/area/station/service/chapel) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -35235,21 +34480,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"lPW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Atmos to Loop" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "lQh" = ( /turf/open/floor/iron/small, /area/station/maintenance/port/aft) @@ -35281,6 +34511,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/terracotta/small, /area/station/security/checkpoint/escape) +"lQU" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lQZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -35328,18 +34563,35 @@ dir = 8 }, /area/station/science/xenobiology) -"lRz" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Filter" +"lRy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"lRK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/effect/turf_decal/tile/brown{ +/obj/effect/turf_decal/siding/wideplating{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"lRM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/area/station/hallway/primary/central/fore) "lRU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35381,12 +34633,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"lSF" = ( -/obj/effect/decal/cleanable/generic, -/obj/machinery/light/cold/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +"lSy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "lSI" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35438,11 +34688,14 @@ /turf/open/floor/iron/dark, /area/station/cargo/storage) "lTy" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, /obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, +/turf/open/floor/wood/tile, /area/station/service/bar) "lTA" = ( /obj/effect/decal/cleanable/dirt, @@ -35452,18 +34705,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"lTC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Release" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "lTN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35483,26 +34724,17 @@ icon_state = "L1"; pixel_y = -15 }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "lUo" = ( /turf/open/floor/iron, /area/station/science/lobby) -"lUu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "lUz" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -35601,6 +34833,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/large, /area/station/hallway/primary/central/fore) +"lWp" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/west, +/obj/item/clothing/head/costume/paper_hat{ + pixel_y = 12; + pixel_x = -4 + }, +/obj/item/clothing/head/collectable/petehat{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_y = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "lWz" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -35640,6 +34888,11 @@ }, /turf/open/floor/carpet/donk, /area/station/command/heads_quarters/qm) +"lWV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lWY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -35766,6 +35019,23 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lYt" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/storage/wallet{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/lighter{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/qm) "lYw" = ( /obj/structure/hedge, /obj/item/radio/intercom/directional/south, @@ -35828,8 +35098,17 @@ color = "#52B4E9" }, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) +"lZr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "lZt" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -35914,12 +35193,8 @@ /turf/open/floor/grass, /area/station/service/chapel) "mae" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/iron/dark/textured, +/obj/structure/cable, +/turf/closed/wall, /area/station/service/bar) "maf" = ( /turf/closed/wall/rust, @@ -35952,31 +35227,23 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"maK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "maL" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, /turf/open/floor/sepia, /area/station/maintenance/aft) -"mbf" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"mbj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "mbp" = ( /obj/structure/hedge, /obj/machinery/light_switch/directional/east, @@ -35992,6 +35259,17 @@ /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"mbP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/requests_console/directional/north{ + name = "Atmospherics Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -36001,16 +35279,6 @@ /obj/machinery/cell_charger, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"mce" = ( -/obj/machinery/computer/slot_machine{ - pixel_y = 2 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/stone, -/area/station/service/bar) "mch" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -36048,6 +35316,12 @@ /obj/machinery/holopad, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"mct" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "mcv" = ( /obj/effect/turf_decal/siding/brown, /obj/structure/table/reinforced/plastitaniumglass, @@ -36080,21 +35354,12 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mcT" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "mcV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /obj/effect/landmark/start/hangover, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "mdm" = ( @@ -36111,6 +35376,14 @@ "mdt" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/mechbay) +"mdG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "mdX" = ( /obj/machinery/light/small/directional/north, /obj/machinery/conveyor_switch{ @@ -36206,38 +35479,39 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"mfU" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/electrical) "mgt" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"mgz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"mgF" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" }, -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) -"mgW" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mgR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mgW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 9 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "mhk" = ( /turf/closed/wall, /area/station/maintenance/port/greater) @@ -36264,11 +35538,13 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) "mib" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/area/station/service/bar) +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "mid" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -36299,16 +35575,6 @@ "miF" = ( /turf/open/floor/stone, /area/station/service/chapel) -"miN" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "miP" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 10 @@ -36323,14 +35589,12 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"miR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line, +"mjc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mjf" = ( /obj/structure/table/reinforced/rglass, /obj/machinery/door/window/left/directional/west{ @@ -36350,26 +35614,18 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"mjt" = ( +/obj/machinery/computer/atmos_control/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mjF" = ( /obj/structure/table/glass, /obj/item/clothing/suit/costume/cyborg_suit, /obj/item/clothing/head/costume/tv_head, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"mjG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "mjN" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -36435,15 +35691,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"mkz" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/chapel) "mkA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36453,14 +35700,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/textured_large, /area/station/command/heads_quarters/cmo) -"mkD" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/service/bar) "mkF" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/depsec/supply, @@ -36526,6 +35765,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"mlD" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mlK" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -36589,6 +35840,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "mmT" = ( @@ -36643,37 +35895,11 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) -"mno" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, -/area/station/service/bar) "mnw" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"mnx" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/machinery/button/ignition/incinerator/atmos{ - pixel_x = 6; - pixel_y = 7 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "mny" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36681,13 +35907,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"mnA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mnC" = ( /obj/structure/table, /obj/item/phone{ @@ -36700,6 +35919,12 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"mnH" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mnN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36719,11 +35944,14 @@ /turf/open/floor/plating, /area/station/cargo/storage) "mog" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, +/obj/machinery/oven/range, +/obj/machinery/airalarm/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/turf/open/floor/iron/kitchen/small, +/obj/effect/turf_decal/siding/end{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "moj" = ( /obj/machinery/door/airlock{ @@ -36738,16 +35966,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"mom" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Waste Hookup" +"mok" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "mos" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -36768,6 +35994,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"moN" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mpk" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/circuit/green, @@ -36779,38 +36013,12 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"mpx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/eighties, -/area/station/hallway/primary/central/fore) "mpy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"mpB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor, -/turf/open/floor/stone, -/area/station/service/bar) -"mpE" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/sign/poster/official/moth_piping/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -36839,12 +36047,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"mqr" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/grimy, -/area/station/commons) "mqz" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -36896,19 +36098,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"mru" = ( -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/requests_console/auto_name/directional/south, -/turf/open/floor/stone, -/area/station/service/bar) "mrP" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -36928,13 +36117,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/tools) -"mrW" = ( -/obj/machinery/light/cold/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "msg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36949,6 +36131,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "msq" = ( @@ -36957,6 +36142,15 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) +"mss" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Cooling Loop Bypass" + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "msy" = ( /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay" @@ -37067,19 +36261,6 @@ /obj/machinery/holopad, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"mvj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/engineering/atmos) -"mvn" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/engineering/hallway) "mvo" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/telecomms/bus/preset_three, @@ -37110,15 +36291,6 @@ dir = 1 }, /area/station/hallway/primary/central/fore) -"mvX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "mwn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -37155,6 +36327,24 @@ /obj/effect/turf_decal/trimline/neutral/end, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"mwJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"mwK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mwN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -37167,14 +36357,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"mxc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "mxe" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/blue/corner{ @@ -37190,6 +36372,15 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/warden) +"mxp" = ( +/obj/structure/table, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "mxM" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -37211,11 +36402,6 @@ }, /turf/open/floor/iron/white, /area/station/hallway/primary/central/aft) -"mxX" = ( -/obj/structure/transit_tube/curved/flipped, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "mya" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37236,13 +36422,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"myi" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "myl" = ( /obj/machinery/shower/directional/east, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -37250,11 +36429,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"mys" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/diagonal, -/turf/open/space/basic, -/area/space/nearstation) "myt" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/item/kirbyplants/random/fullysynthetic, @@ -37338,6 +36512,16 @@ /obj/item/stock_parts/subspace/amplifier, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) +"mzs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mzx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage) "mzz" = ( /obj/structure/hedge, /obj/machinery/camera/directional/east, @@ -37372,12 +36556,6 @@ /obj/machinery/light/small/directional/east, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) -"mAK" = ( -/obj/structure/table/greyscale, -/obj/item/clothing/gloves/color/yellow, -/obj/item/wrench, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mAL" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, @@ -37408,13 +36586,6 @@ /obj/item/instrument/eguitar, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"mBq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "mBC" = ( /obj/structure/sign/poster/official/soft_cap_pop_art/directional/north, /turf/open/floor/iron/grimy, @@ -37456,8 +36627,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "mDf" = ( -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, /area/station/service/bar) "mDh" = ( /obj/structure/cable, @@ -37508,6 +36682,12 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) +"mDS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "mDW" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37518,24 +36698,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) -"mDZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/lab) -"mEb" = ( -/obj/structure/flora/bush/jungle/c/style_random, -/obj/effect/turf_decal/weather/dirt{ - dir = 6 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "mEq" = ( /obj/structure/closet/crate/wooden{ name = "Alms Box" @@ -37624,35 +36786,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"mFD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/tank_holder/extinguisher/advanced, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mFG" = ( /obj/machinery/telecomms/processor/preset_four, /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, /area/station/tcommsat/server) -"mFH" = ( -/obj/structure/table/greyscale, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/cut{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Office" - }, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_x = -6; - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mFL" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -37665,12 +36803,6 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"mFZ" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - Turbine Entrance" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mGg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37694,6 +36826,22 @@ }, /turf/open/floor/carpet, /area/station/medical/psychology) +"mGn" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/clothing/gloves/color/fyellow{ + pixel_y = 2 + }, +/obj/item/wrench, +/obj/item/cigarette/xeno{ + pixel_x = -3; + pixel_y = -9 + }, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine/atmos) "mGp" = ( /obj/structure/table/glass, /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted, @@ -37713,6 +36861,15 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"mGs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "mGM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, @@ -37744,10 +36901,29 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/virology) +"mHf" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "mHh" = ( /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) +"mHy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"mHG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "mHZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37819,9 +36995,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Public Shrine" }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, /obj/machinery/door/firedoor, /turf/open/floor/stone, /area/station/hallway/primary/port) @@ -37947,6 +37120,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"mKh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/atmos) "mKm" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line, @@ -37975,21 +37152,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mKK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"mKV" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "mKY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -38028,10 +37190,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"mLD" = ( -/obj/structure/cable, -/turf/closed/wall/r_wall, -/area/station/engineering/engine_smes) "mLH" = ( /obj/machinery/light/cold/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -38057,29 +37215,15 @@ }, /turf/open/floor/iron, /area/station/science/cytology) -"mLT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 +"mLZ" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/obj/item/pen/invisible{ - pixel_x = -2; - pixel_y = 7 +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/machinery/newscaster/directional/north, -/obj/item/storage/photo_album/library, -/obj/item/book/codex_gigas, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"mLU" = ( -/obj/machinery/vending/autodrobe, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood/parquet, -/area/station/service/greenroom) +/turf/open/floor/wood, +/area/station/engineering/main) "mMp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38115,9 +37259,6 @@ /obj/structure/sign/warning/pods/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"mMH" = ( -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mMN" = ( /obj/structure/chair/office{ dir = 8 @@ -38197,6 +37338,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"mOr" = ( +/obj/effect/spawner/random/trash/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mOx" = ( /obj/item/stack/sheet/iron/fifty, /obj/item/stack/rods/fifty, @@ -38236,12 +37382,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mPe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "mPq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38273,6 +37413,10 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mPB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mPJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -38316,10 +37460,15 @@ dir = 8 }, /area/station/command/heads_quarters/hos) -"mRA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/stairs/left, +"mRl" = ( +/turf/open/floor/engine/co2, /area/station/engineering/atmos) +"mRB" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/end, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mRD" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/maintenance, @@ -38334,32 +37483,16 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"mRY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "mSa" = ( /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"mSc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 10 +"mSl" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "mSA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -38382,23 +37515,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/grass, /area/station/service/chapel) -"mSS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "mTc" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38426,25 +37542,12 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/iron, /area/station/cargo/sorting) -"mTi" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Port"; - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "mTl" = ( /turf/closed/wall, /area/station/cargo/sorting) "mTs" = ( /turf/closed/wall/r_wall, /area/station/security/prison/work) -"mTt" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) "mTy" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/full, @@ -38466,17 +37569,6 @@ "mTB" = ( /turf/closed/wall, /area/station/command/gateway) -"mTC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "mTM" = ( /obj/structure/cable, /turf/open/floor/circuit, @@ -38519,6 +37611,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"mUe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mUg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38538,6 +37635,16 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) +"mUm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mUn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -38555,17 +37662,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/grimy, /area/station/cargo/boutique) -"mUI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - North Corridor" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "mUO" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -38576,6 +37672,13 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mUY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mVc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38586,6 +37689,7 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) "mVm" = ( @@ -38642,12 +37746,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/lower) -"mWs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) +"mWB" = ( +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, @@ -38658,8 +37759,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -38691,26 +37790,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mXm" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "CO2 to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mXt" = ( /obj/machinery/rnd/production/techfab/department/medical, /obj/effect/turf_decal/stripes/box, /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/storage) -"mXx" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2O to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mXD" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -38848,11 +37933,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mZj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mZA" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/public/glass{ @@ -38874,19 +37954,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"nam" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "nay" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ @@ -38928,21 +37995,14 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"nbj" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass"; - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "nbF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/science/robotics/augments) +"nbH" = ( +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "nbL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39029,12 +38089,32 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) +"ndm" = ( +/obj/structure/marker_beacon/fuchsia, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "ndp" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"ndJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/navigate_destination/teleporter, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ndM" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron, @@ -39063,29 +38143,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 9 }, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) -"neL" = ( -/obj/structure/closet/crate{ - name = "Materials Crate" - }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/stack/sheet/plastic/five, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/titaniumglass/fifty, -/obj/item/stack/sheet/mineral/titanium/fifty, -/obj/item/stack/rods/fifty, -/obj/machinery/light/cold/dim/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) -"neM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nfg" = ( /obj/machinery/holopad, /obj/effect/turf_decal/siding/thinplating{ @@ -39099,6 +38158,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) +"nfn" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "nfG" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -39119,36 +38190,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"ngv" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) "ngL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) -"nhe" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/landmark/navigate_destination, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nhl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39192,12 +38238,6 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) -"nhE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "nhU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39208,6 +38248,17 @@ }, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"nhW" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "nhZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39233,10 +38284,6 @@ /obj/machinery/vending/wardrobe/chem_wardrobe, /turf/open/floor/iron, /area/station/medical/chemistry) -"niv" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "niw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39333,27 +38380,25 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) -"njH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "njL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"njT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "njW" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -39383,17 +38428,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"nkp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light/broken/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"nks" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/space_catwalk) "nkw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -39432,6 +38466,11 @@ /obj/machinery/vending/wardrobe/sec_wardrobe, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nlj" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nlk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39451,25 +38490,28 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"nlt" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nlC" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/white/corner{ dir = 4 }, /area/station/science/xenobiology) -"nlI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nlQ" = ( +/obj/machinery/holopad, /obj/effect/turf_decal/siding/thinplating{ - dir = 8 + dir = 4 }, -/obj/machinery/holopad, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"nlR" = ( +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nlS" = ( /turf/open/floor/iron/white/small, /area/station/medical/virology) @@ -39496,6 +38538,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/engineering/break_room) +"nmC" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/knife/kitchen{ + pixel_y = 2 + }, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/obj/item/kitchen/rollingpin, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "nmH" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/wideplating, @@ -39530,6 +38585,22 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) +"nnp" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"nnz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "noe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -39603,15 +38674,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"noU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" - }, -/turf/open/floor/plating/rust, -/area/station/engineering/main) "noV" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/shutters{ @@ -39635,13 +38697,15 @@ /obj/effect/spawner/random/trash, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"npL" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Engine Coolant Bypass"; - dir = 1 +"npI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "npV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39656,6 +38720,21 @@ /obj/structure/sign/departments/court/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"nqa" = ( +/obj/machinery/door/airlock/grunge{ + name = "Janitorial Closet" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/service/janitor, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/janitor) "nqd" = ( /obj/machinery/shower/directional/east, /obj/effect/turf_decal/trimline/blue/end{ @@ -39668,20 +38747,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"nqi" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/corner{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nqx" = ( /obj/machinery/power/turbine/turbine_outlet{ dir = 8 @@ -39694,6 +38759,18 @@ /obj/structure/mirror/directional/north, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"nqN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nqV" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -39721,19 +38798,27 @@ /turf/open/floor/iron, /area/station/engineering/main) "nrg" = ( -/obj/structure/closet/secure_closet/hydroponics, /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 }, +/obj/structure/cable, +/obj/effect/landmark/start/botanist, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"nrn" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "nrp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/flashlight/lantern/on, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 10 }, -/turf/open/floor/stone, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, /area/station/service/chapel) "nry" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -39749,9 +38834,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"nsa" = ( -/turf/closed/wall, -/area/station/engineering/atmospherics_engine) "nsc" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -39781,9 +38863,6 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"nsy" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/hallway) "nsz" = ( /obj/effect/spawner/random/vending/snackvend, /obj/structure/cable, @@ -39793,6 +38872,19 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) +"nsD" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "nsL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red{ @@ -39947,19 +39039,21 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"nuu" = ( -/obj/machinery/incident_display/delam/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "nuC" = ( /obj/effect/turf_decal/siding, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, /area/station/science/lab) +"nuL" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "nuO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40044,6 +39138,19 @@ /obj/effect/spawner/random/trash/bin, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"nwK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nwN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -40087,16 +39194,6 @@ /obj/machinery/keycard_auth/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"nxK" = ( -/mob/living/basic/deer, -/obj/structure/flora/bush/sparsegrass, -/turf/open/floor/grass, -/area/station/service/chapel) -"nxO" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos) "nxX" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40224,15 +39321,6 @@ /area/station/security/tram) "nzK" = ( /obj/structure/cable, -/obj/item/ammo_casing/spent{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/ammo_casing/spent, -/obj/item/ammo_casing/spent{ - pixel_x = 4; - pixel_y = -2 - }, /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/trimline/neutral/end{ dir = 8 @@ -40272,32 +39360,31 @@ /obj/machinery/light/small/broken/directional/west, /turf/open/misc/sandy_dirt, /area/station/maintenance/starboard/aft) -"nAq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"nAy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nAF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) -"nBd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"nAJ" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"nAW" = ( +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/engineering/atmos/project) "nBq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40335,13 +39422,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"nBM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +"nBP" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" }, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) +/area/station/engineering/supermatter) "nCe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40356,6 +39444,18 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"nCt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "nCC" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/yellow{ @@ -40386,7 +39486,6 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "nCX" = ( -/obj/machinery/light/floor, /obj/structure/flora/bush/flowers_pp, /obj/structure/flora/bush/flowers_yw, /obj/structure/flora/bush/fullgrass, @@ -40409,17 +39508,23 @@ }, /turf/open/floor/iron, /area/station/security) +"nDj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/chapel) +"nDJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "nDQ" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"nEa" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nEh" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -40439,9 +39544,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/service/library) "nEx" = ( @@ -40469,26 +39572,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) -"nEL" = ( -/obj/structure/transit_tube/station/dispenser/reverse/flipped{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"nEN" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ +"nEG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ dir = 8 }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ +/obj/effect/turf_decal/siding/wideplating/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "nEY" = ( /obj/structure/closet/firecloset, /obj/effect/decal/cleanable/dirt, @@ -40523,6 +39619,10 @@ /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit, /area/station/tcommsat/server) +"nFv" = ( +/obj/machinery/light/no_nightlight/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nFD" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -40532,6 +39632,14 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) +"nFH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "nFI" = ( /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -40570,6 +39678,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nGf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nGi" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -40585,22 +39700,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/grass, /area/station/medical/virology) -"nGm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"nGt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/power/energy_accumulator/grounding_rod/anchored, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "nGu" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -40672,6 +39771,33 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"nHH" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"nHI" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "nHN" = ( /obj/structure/table, /obj/item/stack/pipe_cleaner_coil/random, @@ -40688,25 +39814,20 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/commons/storage/art) -"nHP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 +"nHU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/tile/brown{ +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow, /obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"nHR" = ( -/obj/machinery/atmospherics/components/tank/plasma, -/obj/machinery/camera/directional/north{ - c_tag = "Engineering Turbine" - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "nId" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) @@ -40729,13 +39850,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"nID" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "nIJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -40747,27 +39861,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/virology) -"nIK" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) -"nIL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 24; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "nIT" = ( /obj/structure/railing{ dir = 6 @@ -40835,6 +39928,15 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"nKe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nKj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40849,19 +39951,36 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nKO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +"nLk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/command/heads_quarters/rd) "nLH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) +"nLJ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nLM" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -40875,6 +39994,13 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"nMk" = ( +/obj/machinery/power/emitter/welded{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "nMn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -40896,14 +40022,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"nMQ" = ( -/obj/machinery/computer/atmos_control/oxygen_tank{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "nMV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -40912,7 +40030,6 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "nMW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ dir = 1 @@ -40975,6 +40092,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"nOD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/power/apc/auto_name/directional/west{ + areastring = "/area/station/science/ordnance/freezerchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nOH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41000,6 +40125,10 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nPl" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "nPt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41047,11 +40176,37 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"nPY" = ( +/obj/structure/table/reinforced, +/obj/structure/desk_bell{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "nQa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nQc" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nQj" = ( /obj/structure/toilet/greyscale{ dir = 8 @@ -41060,13 +40215,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"nQk" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/door/airlock/maintenance{ - name = "Transit Tube Station" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "nQo" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -41112,16 +40260,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"nQC" = ( -/obj/item/toy/plush/shark{ - name = "Sir Vesk"; - desc = "This radical looking plushie has some radical air-sufing fins. He loves to turn vents on and ride the pressure-wave. Duuuuuuuude. Way cool.." - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) "nQE" = ( /obj/structure/railing{ dir = 4 @@ -41158,6 +40296,12 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"nRa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "nRd" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -41204,10 +40348,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"nSo" = ( -/obj/machinery/igniter/incinerator_atmos, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "nSA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -41226,6 +40366,9 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) +"nST" = ( +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "nSY" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -41271,6 +40414,12 @@ }, /turf/open/floor/plating, /area/station/security/tram) +"nTz" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/machinery/chem_dispenser, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) "nTC" = ( /turf/open/floor/iron/white/small, /area/station/security/prison/safe) @@ -41283,16 +40432,26 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"nTK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"nTP" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"nUh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nUo" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -41307,17 +40466,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"nUq" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "nUx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -41325,27 +40473,6 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"nUB" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nUK" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/barricade/wooden/crude, @@ -41379,12 +40506,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"nVe" = ( -/obj/machinery/door/window/right/directional/north, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "nVg" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -41438,19 +40559,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/tcommsat/server) -"nWa" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ +"nVU" = ( +/obj/effect/turf_decal/stripes/red/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/commons/fitness/recreation/entertainment) +"nWa" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -41462,35 +40583,22 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"nWq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "nWr" = ( /obj/structure/cable, /obj/structure/hedge, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nWE" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner{ +"nWV" = ( +/obj/effect/spawner/random/entertainment/arcade{ dir = 1 }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 9 +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/structure/sign/poster/official/random/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "nXt" = ( /obj/effect/turf_decal/tile/yellow/full, /obj/structure/table/reinforced, @@ -41501,6 +40609,15 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/pharmacy) +"nXv" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nXx" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -41538,17 +40655,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) -"nYg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "nYk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -41577,33 +40683,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) -"nYD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nYH" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"nYP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "nYQ" = ( /obj/machinery/vending/wardrobe/cargo_wardrobe, /obj/machinery/camera/autoname/directional/south, @@ -41628,12 +40711,6 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"nZk" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/xenobiology) "nZq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -41653,6 +40730,14 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"nZF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nZG" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, /turf/open/floor/iron/kitchen/small, @@ -41697,21 +40782,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"oaB" = ( -/obj/machinery/holopad, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) -"oaJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "oaK" = ( /obj/structure/window/spawner/directional/south, /obj/effect/decal/cleanable/dirt, @@ -41731,15 +40801,19 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"obd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +"obb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab" }, -/obj/structure/cable, -/obj/machinery/firealarm/directional/north, -/obj/machinery/space_heater, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "obe" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment{ @@ -41747,15 +40821,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"obi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "obq" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -41796,8 +40861,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/navigate_destination/library, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -41816,11 +40879,15 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ocC" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba, -/turf/open/floor/carpet, -/area/station/commons/dorms) +"ocZ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "odh" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -41840,18 +40907,11 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"odE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/power/emitter{ - dir = 1 - }, -/obj/effect/decal/cleanable/leaper_sludge, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "odH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/stone, /area/station/service/chapel) "odP" = ( @@ -41870,11 +40930,14 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"oet" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) +"oer" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External Gas to Loop" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oev" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41914,12 +40977,10 @@ /turf/open/floor/plating, /area/station/medical/storage) "oeZ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ - dir = 8 + dir = 4 }, -/turf/open/floor/iron/grimy, +/turf/open/floor/stone, /area/station/service/bar) "off" = ( /obj/effect/turf_decal/siding/wood{ @@ -41934,11 +40995,14 @@ }, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/medical/central) +"ofx" = ( +/obj/effect/turf_decal/sand/plating, +/turf/closed/wall/r_wall, +/area/space/nearstation) "ofU" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, +/obj/machinery/holopad, +/obj/effect/landmark/start/hangover, +/turf/open/floor/stone, /area/station/service/bar) "ofZ" = ( /turf/closed/mineral/random/stationside, @@ -42025,6 +41089,13 @@ /obj/item/reagent_containers/pill/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ohf" = ( +/obj/structure/reagent_dispensers/fueltank/large, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "ohj" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/white/line{ @@ -42075,17 +41146,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) -"ohy" = ( -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "ohz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -42105,13 +41165,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"ohK" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar) "ohM" = ( /obj/structure/chair{ dir = 8 @@ -42204,6 +41257,13 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"oiZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "ojz" = ( /obj/structure/railing{ dir = 1 @@ -42231,56 +41291,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/security/lockers) -"ojK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) -"ojO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"ojW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/mass_driver, -/obj/item/stock_parts/matter_bin{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/item/stock_parts/micro_laser/high{ - pixel_x = -6; - pixel_y = -5 - }, -/obj/item/stock_parts/servo/femto{ - pixel_y = 8; - pixel_x = -11 - }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) -"okg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "okk" = ( /obj/structure/table, /obj/item/screwdriver, @@ -42290,23 +41300,22 @@ /obj/machinery/status_display/ai, /turf/closed/wall, /area/station/hallway/secondary/entry) -"okt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Control" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos) +"oks" = ( +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "okB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) +"okD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42369,22 +41378,24 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"omb" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar) -"omk" = ( -/obj/effect/turf_decal/siding/wood{ +"oma" = ( +/obj/machinery/atmospherics/components/unary/passive_vent, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"omj" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/brown{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar) +/obj/machinery/incident_display/bridge/directional/north, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) +"omq" = ( +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/library) "omW" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/white/corner, @@ -42392,39 +41403,11 @@ "ona" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"onb" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - name = "Engine Exhaust" - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"onc" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ong" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"onv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "onw" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -42482,15 +41465,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"ooe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "oom" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -42502,17 +41476,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"ooC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock{ - name = "Maintenance" +"ooo" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/central/greater) +/area/station/engineering/atmos) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -42526,37 +41496,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ooR" = ( -/mob/living/basic/goat/pete, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) -"opc" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/light/floor, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "opn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/command/teleporter) -"opo" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "opv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42595,11 +41539,9 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "opV" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, /obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar) "opW" = ( @@ -42629,6 +41571,16 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"oqq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/no_nightlight/directional/north, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "oqK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, @@ -42661,6 +41613,26 @@ "orb" = ( /turf/closed/wall, /area/station/engineering/main) +"orz" = ( +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/assembly/igniter{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = -1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "orC" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -42673,16 +41645,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"orY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "osa" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -42708,6 +41670,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"osp" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oss" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42717,20 +41686,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"osu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing/corner{ +"osw" = ( +/obj/effect/turf_decal/arrows{ dir = 4 }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "osy" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -42803,22 +41768,24 @@ dir = 1 }, /area/station/command/corporate_suite) -"oua" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/horizontal{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"ouj" = ( -/turf/closed/wall, -/area/station/engineering/engine_smes) "oul" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_2, -/obj/structure/flora/tree/jungle/style_5, /turf/open/floor/grass, /area/station/service/chapel) +"oum" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "oun" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 10 @@ -42834,6 +41801,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ouJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ouL" = ( /obj/item/clothing/head/cone{ pixel_x = 7 @@ -42854,17 +41828,6 @@ dir = 1 }, /area/station/cargo/storage) -"ouO" = ( -/obj/effect/turf_decal/weather/snow, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/weather/snow/corner, -/obj/item/food/meat/bacon, -/obj/item/food/meat/bacon, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "ouR" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -42872,42 +41835,20 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"ouS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "ouT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"ove" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/station/service/bar) "ovf" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/port) -"ovj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cytology) -"ovt" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "ovB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, @@ -42929,11 +41870,6 @@ dir = 1 }, /area/station/command/gateway) -"owd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) "owl" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -43051,20 +41987,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"oxy" = ( -/obj/effect/spawner/random/entertainment/arcade{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/eighties/red, -/area/station/hallway/primary/central/fore) -"oxK" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/cytology) "oyn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/public/glass{ @@ -43133,22 +42055,6 @@ /obj/structure/reagent_dispensers/plumbed, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"ozz" = ( -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) -"ozM" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "ozO" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -43156,6 +42062,10 @@ /obj/structure/mannequin/plastic, /turf/open/floor/carpet/blue, /area/station/cargo/boutique) +"ozQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "ozV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -43196,12 +42106,6 @@ /obj/structure/alien/weeds/node, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"oBk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4, -/turf/open/space/basic, -/area/space/nearstation) "oBv" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -43226,6 +42130,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"oBF" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"oBP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/project) "oBT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43256,6 +42173,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"oCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oCg" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/medical_all, @@ -43309,37 +42231,27 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"oDa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "oDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"oDE" = ( -/obj/structure/lattice, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - North Exterior" - }, -/turf/open/space/basic, -/area/space/nearstation) +"oDS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "oDX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ dir = 4 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/grimy, +/turf/open/floor/stone, /area/station/service/bar) "oDY" = ( /obj/effect/turf_decal/stripes/corner, @@ -43355,13 +42267,6 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/security/tram) -"oEb" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/reagent_containers/cup/beaker/oldstation{ - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "oEk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43388,8 +42293,7 @@ dir = 1 }, /obj/machinery/firealarm/directional/north, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "oEB" = ( @@ -43476,11 +42380,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_half, /area/station/cargo/storage) -"oGn" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/layer_manifold/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "oGo" = ( /obj/structure/table/glass, /obj/item/stock_parts/power_store/cell/high{ @@ -43493,15 +42392,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"oGt" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/landmark/start/hangover, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oGL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43536,6 +42426,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/stairs, /area/station/maintenance/port/greater) +"oHp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "oHw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43562,31 +42459,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"oHJ" = ( -/obj/structure/table/greyscale, -/obj/item/pen{ - pixel_x = 13; - pixel_y = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker; - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = -2 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"oHO" = ( -/obj/structure/chair/plastic{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "oIf" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/modular_computer/preset/engineering{ @@ -43625,7 +42497,7 @@ /area/station/maintenance/department/medical/central) "oIL" = ( /obj/effect/turf_decal/siding/wood/corner{ - dir = 8 + dir = 4 }, /turf/open/floor/stone, /area/station/service/chapel) @@ -43662,6 +42534,10 @@ /obj/machinery/smartfridge, /turf/open/floor/plating, /area/station/service/hydroponics) +"oJm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oJn" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -43740,6 +42616,16 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) +"oJO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/bar, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "oJP" = ( /obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_left, @@ -43786,6 +42672,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"oLc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "oLg" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -43814,23 +42706,15 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"oLN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/tank_dispenser, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) +"oLV" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "oMy" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) -"oMF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "oMI" = ( /obj/effect/decal/cleanable/dirt, /mob/living/basic/slime, @@ -43865,22 +42749,6 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"oNF" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "oNH" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -43897,6 +42765,13 @@ dir = 8 }, /area/station/science/research) +"oNW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "oNX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43942,6 +42817,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"oOs" = ( +/obj/structure/closet/crate/solarpanel_small, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "oOv" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -43961,10 +42840,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "oOC" = ( +/obj/structure/flora/bush/flowers_br/style_random, /obj/effect/turf_decal/weather/dirt{ - dir = 1 + dir = 5 }, -/obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, /area/station/service/chapel) "oOK" = ( @@ -44005,16 +42884,20 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"oPg" = ( -/obj/machinery/air_sensor/mix_tank, -/turf/open/floor/engine/airless, -/area/station/engineering/atmos) "oPh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "oPi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44031,6 +42914,9 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"oPj" = ( +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "oPo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44088,19 +42974,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/science/cytology) -"oQo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oQr" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor"; @@ -44116,19 +42989,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/cargo/storage) -"oQs" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "oQF" = ( /turf/closed/wall/r_wall, /area/station/security/execution/transfer) @@ -44139,6 +42999,13 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"oQK" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "oRj" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -44152,18 +43019,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/mineral/random/stationside, /area/station/ai_monitored/aisat/exterior) -"oRn" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oRp" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/carpet, @@ -44188,8 +43043,9 @@ dir = 8 }, /obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, /obj/item/radio/intercom/directional/south, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/service/greenroom) "oRw" = ( @@ -44239,6 +43095,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) +"oRW" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/main) "oRZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -44272,24 +43135,18 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"oSw" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "oSx" = ( /obj/effect/turf_decal/siding/red, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) -"oSF" = ( +"oTf" = ( /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plating, +/obj/structure/cable, +/turf/open/floor/engine, /area/station/engineering/supermatter/room) "oTg" = ( /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -44327,6 +43184,21 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"oTM" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) +"oTN" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "oTT" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -44339,16 +43211,19 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"oTY" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ +"oTZ" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"oUb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/stone, +/area/station/service/chapel) "oUd" = ( /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) @@ -44359,25 +43234,11 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"oUq" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"oUz" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/obj/structure/sign/warning/electric_shock/directional/west, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) +/area/station/hallway/primary/central/fore) "oUB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44411,14 +43272,28 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/security/evidence) "oVl" = ( -/obj/machinery/vending/wardrobe/bar_wardrobe, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, +/obj/structure/sign/picture_frame/portrait/bar{ + pixel_y = 32 + }, +/obj/structure/table/wood, +/obj/item/roulette_wheel_beacon, +/obj/item/holosign_creator/robot_seat/bar{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/machinery/light/small/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 9 + dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/stone, /area/station/service/bar/backroom) +"oVm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oVt" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -44428,6 +43303,19 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"oVE" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "oVF" = ( /mob/living/basic/mining/lobstrosity, /turf/open/misc/asteroid/airless, @@ -44494,18 +43382,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"oWE" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/sign/warning/engine_safety/directional/east, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"oWN" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/end, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oXa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44559,6 +43435,12 @@ dir = 8 }, /area/station/engineering/main) +"oYF" = ( +/obj/structure/reflector/box/anchored{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oYL" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -44567,14 +43449,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"oYN" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Filter" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "oYS" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/station_alert{ @@ -44604,10 +43478,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, -/obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/central/greater) "oZz" = ( @@ -44632,14 +43506,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/dorms) -"oZQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "oZY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44667,19 +43533,17 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"paJ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"paW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 8 +"paT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "paX" = ( /obj/structure/chair/bronze{ dir = 8 @@ -44700,23 +43564,6 @@ }, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"pbj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "pbk" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /turf/open/floor/iron, @@ -44753,6 +43600,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "pbE" = ( @@ -44770,27 +43618,19 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"pbK" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/obj/structure/flora/bush/jungle/b/style_2, -/obj/machinery/light/small/directional/north, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/grass, -/area/station/service/chapel) -"pbT" = ( -/obj/effect/turf_decal/stripes/corner{ +"pbO" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/hallway/primary/central/fore) "pca" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -44808,12 +43648,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pcm" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/vending/wardrobe/jani_wardrobe, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/small, -/area/station/commons) "pcv" = ( /obj/machinery/door/airlock/command{ name = "Head of Security's Bedroom" @@ -44823,6 +43657,16 @@ dir = 8 }, /area/station/command/heads_quarters/hos) +"pcE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "pcK" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/blue{ @@ -44852,14 +43696,6 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"pdh" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "pdl" = ( /obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ @@ -44892,6 +43728,10 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/science/cytology) +"pdA" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pdR" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -44951,21 +43791,12 @@ /turf/open/space/basic, /area/space/nearstation) "peU" = ( -/obj/effect/turf_decal/weather/dirt, /obj/structure/flora/rock/pile/jungle/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, /turf/open/floor/grass, /area/station/service/chapel) -"peW" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 5 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics Nitrous Chamber"; - dir = 9; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "pfd" = ( /obj/effect/turf_decal/stripes/white/corner{ dir = 1 @@ -44987,15 +43818,6 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"pft" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/engineering/hallway) "pfu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -45028,13 +43850,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pfx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "pfC" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 5 @@ -45046,24 +43861,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) -"pfD" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pfT" = ( /obj/structure/training_machine, /turf/open/floor/iron/smooth_large, @@ -45098,15 +43895,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"pgr" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "pgy" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -45116,11 +43904,6 @@ /obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) -"pgU" = ( -/obj/structure/steam_vent, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -45169,10 +43952,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/fore) "phG" = ( -/obj/structure/chair/wood{ +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/turf/open/floor/iron/grimy, +/turf/open/floor/stone, /area/station/service/bar) "phY" = ( /obj/structure/railing{ @@ -45191,6 +43975,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"pic" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "pie" = ( /obj/effect/spawner/random/decoration/showcase, /obj/structure/window/spawner/directional/south, @@ -45225,6 +44016,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"pit" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "piG" = ( /obj/effect/turf_decal/siding/green{ dir = 8 @@ -45232,6 +44027,12 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"piJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "piL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -45273,7 +44074,6 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "pjA" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -45311,12 +44111,17 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"pkd" = ( -/obj/machinery/door/window/right/directional/south, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +"pjX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "Secure Storage top"; + name = "Secure engineering storage"; + req_access = list("engine_equip") + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "pke" = ( /obj/machinery/door/airlock/centcom{ name = "Disposals Access:" @@ -45336,11 +44141,27 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"pkt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "pkB" = ( /obj/item/kirbyplants/random, /obj/item/weldingtool, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"pkQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "pkR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45364,14 +44185,16 @@ /turf/open/floor/wood/tile, /area/station/service/lawoffice) "pkU" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/general, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Service Hallway" +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -17; + pixel_y = 2 }, -/turf/open/floor/iron/textured_half, -/area/station/hallway/secondary/service) +/turf/open/floor/grass, +/area/station/service/hydroponics) "plf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45430,11 +44253,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"pmA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "pmE" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45486,6 +44304,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics) +"pnH" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "pnK" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/weather/dirt{ @@ -45495,6 +44317,10 @@ /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/service/chapel) +"pnO" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "pnQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -45515,17 +44341,6 @@ }, /turf/open/floor/iron, /area/station/science/cytology) -"pnW" = ( -/obj/machinery/computer/slot_machine{ - pixel_y = 2 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/stone, -/area/station/service/bar) "pnZ" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/firealarm/directional/west, @@ -45540,6 +44355,13 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"pot" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/premium{ + pixel_y = 5 + }, +/turf/open/floor/stone, +/area/station/service/abandoned_gambling_den) "pox" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45604,14 +44426,6 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"poV" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/camera/directional/west{ - dir = 10; - c_tag = "Atmospherics - Control" - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "ppk" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45639,16 +44453,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) -"ppr" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/reflector/single{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "pps" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/window/spawner/directional/north, @@ -45694,25 +44498,16 @@ "pqm" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage/tcomms) -"pqo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/incident_display/delam/directional/north, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ +"pqr" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ dir = 1 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 +/obj/machinery/camera/directional/west{ + c_tag = "atmospherics - storage" }, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pqv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -45722,13 +44517,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"pqH" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/glasses/meson, -/obj/item/radio/intercom/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "pqK" = ( /obj/structure/cable, /obj/machinery/door/window/left/directional/south, @@ -45777,33 +44565,13 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"prA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/navigate_destination/teleporter, -/obj/structure/disposalpipe/segment{ +"prP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"prI" = ( -/turf/closed/wall, -/area/station/engineering/hallway) -"prV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "prW" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -45818,22 +44586,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/teleporter) -"psk" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/multitool{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/item/cigarette{ - pixel_x = 5; - pixel_y = 2 - }, -/turf/open/floor/iron/dark, -/area/station/security/lockers) "psn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45846,19 +44598,6 @@ dir = 1 }, /area/station/science/auxlab/firing_range) -"pss" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "psz" = ( /obj/machinery/door/window/left/directional/west{ name = "Fitness Ring" @@ -45915,14 +44654,6 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"ptf" = ( -/obj/machinery/status_display/ai/directional/west, -/obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "ptj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45952,12 +44683,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/stone, /area/station/command/corporate_suite) -"ptz" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "ptC" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -45972,19 +44697,15 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"ptT" = ( -/obj/effect/turf_decal/siding/thinplating_new/light, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +"ptX" = ( /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 10 }, -/obj/machinery/light/small/directional/south, -/obj/machinery/requests_console/auto_name/directional/south, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "pus" = ( /obj/effect/turf_decal/box/red/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -45999,21 +44720,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"puI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "North Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "pvi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46027,39 +44733,12 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"pvB" = ( -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "pvC" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/wood, /area/station/service/chapel/office) -"pvE" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"pvP" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/thinplating_new/corner, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pvY" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -46078,25 +44757,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pwv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall, -/area/station/engineering/atmos) "pwA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/white/side, /area/station/science/research) -"pwD" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "pwJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46111,13 +44777,14 @@ /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) "pwO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 }, -/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/engineering/atmos) "pxj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46138,6 +44805,9 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"pxz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/disposal/incinerator) "pxA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46166,16 +44836,10 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"pyl" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/item/clothing/head/cone{ - pixel_y = -13 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"pys" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "pyt" = ( /obj/machinery/light/floor, /turf/open/floor/grass, @@ -46204,10 +44868,6 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) -"pzi" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -46236,18 +44896,6 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"pzW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/light/floor, -/turf/open/floor/stone, -/area/station/service/bar) -"pAa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/barricade, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "pAl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46375,26 +45023,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"pCo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"pCn" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/project) "pCv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46417,24 +45048,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"pCP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"pCQ" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "pCU" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -46476,19 +45089,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"pDH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "pDK" = ( /obj/effect/decal/cleanable/generic, /obj/effect/spawner/random/structure/tank_holder, @@ -46518,16 +45118,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"pEa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/fireaxecabinet/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "pEo" = ( /obj/item/radio/intercom/directional/west, /obj/structure/disposalpipe/segment, @@ -46536,6 +45126,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"pEp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Unfiltered" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pEq" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ @@ -46604,6 +45202,23 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"pET" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"pEU" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen) "pFk" = ( /obj/structure/broken_flooring/singular/directional/east, /obj/effect/decal/cleanable/dirt, @@ -46642,27 +45257,6 @@ /obj/machinery/door/window/brigdoor/right/directional/west, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"pFS" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"pGi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "pGp" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -46673,23 +45267,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"pGr" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) -"pGt" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Waste" - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "pGD" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -46718,7 +45295,7 @@ "pGS" = ( /obj/machinery/status_display/evac/directional/north, /obj/machinery/camera/directional/north, -/turf/open/misc/dirt/jungle, +/turf/open/misc/dirt/station, /area/station/service/chapel) "pGU" = ( /obj/effect/turf_decal/trimline/white/line{ @@ -46750,14 +45327,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) -"pHl" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/machinery/chem_dispenser, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/medical/chemistry) "pHn" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/east, @@ -46796,9 +45365,7 @@ /obj/effect/turf_decal/weather/dirt{ dir = 6 }, -/mob/living/basic/frog, /obj/structure/flora/bush/flowers_br/style_3, -/obj/structure/flora/tree/jungle/small, /turf/open/floor/grass, /area/station/service/chapel) "pHC" = ( @@ -46910,12 +45477,6 @@ /obj/structure/bodycontainer/morgue, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"pIB" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "pIC" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -46931,7 +45492,9 @@ /turf/open/floor/plating, /area/station/command/bridge) "pJc" = ( -/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar) "pJj" = ( @@ -46996,21 +45559,6 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"pJT" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) -"pKg" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "pKi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -47033,6 +45581,12 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"pKx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "pKR" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 @@ -47061,16 +45615,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"pLg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"pKW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Gun Lab" +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"pLf" = ( +/obj/machinery/griddle, +/obj/effect/turf_decal/siding{ + dir = 10 }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/auxlab/firing_range) +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "pLj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47130,6 +45687,21 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"pMq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "pMs" = ( /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47139,26 +45711,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"pMD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"pML" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/obj/structure/railing/corner{ +"pMM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/engine, +/area/station/engineering/supermatter) "pMS" = ( /obj/structure/table, /obj/machinery/light/small/directional/south, @@ -47344,17 +45902,42 @@ /obj/item/airlock_painter, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) -"pPH" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" +"pPp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"pPx" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "pPK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"pPO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) +"pPU" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "pPZ" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -47389,6 +45972,11 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"pQP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/bluespace_sender, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "pQY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -47447,6 +46035,11 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"pRR" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "pSc" = ( /obj/item/bikehorn/rubberducky{ pixel_x = 6; @@ -47486,11 +46079,14 @@ /turf/open/floor/plating, /area/station/science/ordnance/testlab) "pSI" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/destructible/cult/item_dispenser/archives/library, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/grimy, -/area/station/service/library) +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "pSN" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/holopad, @@ -47505,10 +46101,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"pSQ" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/engineering/supermatter/room) "pST" = ( /obj/structure/table, /obj/item/plant_analyzer, @@ -47531,13 +46123,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/holodeck/rec_center) -"pTp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood, -/area/station/engineering/atmos) "pTq" = ( /obj/machinery/door/airlock/maintenance{ name = "Crematorium Maintenance" @@ -47553,15 +46138,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) -"pTt" = ( -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering{ - name = "Suit Lockers" - }, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "pTz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47584,13 +46160,6 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"pUe" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "pUs" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, @@ -47616,6 +46185,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"pUA" = ( +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pUC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/doppler_array{ @@ -47624,19 +46197,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"pUK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Turbine" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "pUL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/reinforced/plastitaniumglass, @@ -47647,10 +46207,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"pUR" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +"pUM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"pUQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pUS" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -47685,6 +46250,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) "pVK" = ( @@ -47822,11 +46388,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"pXc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pXh" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -47851,15 +46412,13 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"pXu" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +"pXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "pXz" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/machinery/firealarm/directional/south, @@ -47905,13 +46464,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"pXU" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "pYi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47935,20 +46487,24 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"pYw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pYx" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, /turf/open/floor/engine, /area/station/science/explab) -"pYP" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "pYY" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -47961,6 +46517,12 @@ dir = 4 }, /area/station/science/lower) +"pZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pZu" = ( /obj/structure/hedge, /turf/open/floor/plating, @@ -47987,22 +46549,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/cargo/storage) -"pZJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/button/door/directional/north{ - id = "Xenolab"; - name = "Test Chamber Blast Doors"; - pixel_x = 26; - pixel_y = -2; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/xenobiology) "pZK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48014,18 +46560,59 @@ /obj/item/shard/titanium, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"qan" = ( +/obj/structure/cable/layer3, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/brigdoor/left/directional/north{ + atom_integrity = 300; + name = "AI Core Chamber Access"; + req_access = list("ai_upload") + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) +"qav" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Unfiltered & Air to Mix"; + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qaF" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qaV" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +"qaU" = ( +/obj/effect/turf_decal/arrows/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"qaX" = ( +/obj/structure/table, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5 + }, +/obj/item/electronics/airalarm{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/sign/poster/official/build/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qbj" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -48052,13 +46639,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"qbv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qby" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -48103,15 +46683,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"qbR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "qcf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48132,11 +46703,6 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/station/maintenance/central/greater) -"qcC" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "qcF" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48167,19 +46733,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"qdJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/sign/warning/radiation/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "qdM" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -48225,6 +46778,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"qdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter/monitored/distro_loop, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "qdZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -48241,10 +46801,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/security/prison/workout) -"qeq" = ( -/obj/structure/fluff/broken_canister_frame, -/turf/open/misc/asteroid, -/area/station/maintenance/department/engine/atmos) "qeP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48271,18 +46827,6 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"qfn" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 9 - }, -/obj/machinery/air_sensor/plasma_tank, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 9; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "qfo" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/departments/lawyer/directional/east, @@ -48313,6 +46857,13 @@ /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, /turf/open/floor/iron/dark/textured_half, /area/station/service/lawoffice) +"qfK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Waste" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qfV" = ( /obj/machinery/vending/tool, /obj/structure/sign/poster/official/random/directional/south, @@ -48398,21 +46949,16 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"qhs" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"qht" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" }, -/obj/structure/chair/wood{ +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) +/turf/open/floor/iron, +/area/station/engineering/atmos) "qhD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48432,6 +46978,16 @@ /obj/effect/turf_decal/trimline/white/mid_joiner, /turf/open/floor/wood, /area/station/commons/fitness/recreation) +"qhR" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/booze{ + pixel_y = 10 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "qhV" = ( /obj/structure/table, /obj/machinery/fax{ @@ -48453,15 +47009,7 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"qid" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "qie" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -48490,14 +47038,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"qiy" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "qiz" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48514,8 +47054,10 @@ /obj/structure/cable, /obj/effect/spawner/random/structure/steam_vent, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) "qiL" = ( @@ -48557,12 +47099,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"qjq" = ( -/obj/machinery/door/window/left/directional/north, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/effect/turf_decal/stripes/white/full, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "qjt" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line, @@ -48583,15 +47119,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/meeting_room) -"qjx" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "qjy" = ( /obj/structure/hedge, /turf/open/floor/iron/smooth, @@ -48627,6 +47154,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"qkm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"qko" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "qkp" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -48635,13 +47176,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"qkI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) +"qkq" = ( +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "qkK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -48666,13 +47205,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"qlk" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/space/basic, -/area/space/nearstation) "qlr" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, @@ -48714,14 +47246,12 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qmo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 +"qme" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmv" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -48733,12 +47263,26 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/cargo/boutique) +"qmD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix Outlet Pump" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qmM" = ( /obj/structure/sign/painting/library{ pixel_y = 32 }, /turf/open/floor/iron/smooth, /area/station/service/library) +"qmT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48787,18 +47331,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"qnP" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow, -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/weather/snow/corner, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -48808,13 +47340,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/plating, /area/station/medical/morgue) -"qol" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/atmos) "qop" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -48850,6 +47375,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/white/small, /area/station/service/janitor) +"qpp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "qpu" = ( /obj/effect/turf_decal/siding/brown{ dir = 9 @@ -48880,13 +47415,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qqr" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "O2 to pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "qqC" = ( /obj/structure/chair/comfy/carp{ dir = 1 @@ -48904,53 +47432,10 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"qqJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/smooth_corner{ - dir = 1 - }, -/area/station/engineering/supermatter/room) -"qqO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) "qrb" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"qrc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner, -/obj/structure/reflector/box{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "qrg" = ( /obj/structure/cable, /obj/structure/displaycase/captain{ @@ -48968,16 +47453,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"qsa" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering - Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "qsg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal, @@ -48994,6 +47469,17 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"qsr" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank/large, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - storage" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "qsR" = ( /obj/structure/table/reinforced, /obj/effect/mapping_helpers/broken_floor, @@ -49010,12 +47496,14 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "qsY" = ( +/obj/structure/chair/stool/directional/west, /obj/effect/turf_decal/siding/wood{ - dir = 10 + dir = 8 }, -/obj/machinery/light/floor, -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/tile, /area/station/service/bar) "qtd" = ( /turf/open/floor/wood/tile, @@ -49029,17 +47517,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/cargo/sorting) -"qtv" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "qtE" = ( /obj/structure/bed{ dir = 4 @@ -49060,26 +47537,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"qtP" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - Central" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qtQ" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -49134,23 +47591,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) -"quP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/black, -/obj/item/electronics/airalarm{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/machinery/light/cold/dim/directional/west, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "quU" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain) @@ -49189,17 +47629,6 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"qwc" = ( -/obj/structure/tank_holder/emergency_oxygen, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) -"qwo" = ( -/obj/structure/lattice, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - South Exterior" - }, -/turf/open/space/basic, -/area/space/nearstation) "qwq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/computer/prisoner/management{ @@ -49228,6 +47657,12 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"qwA" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "qwC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -49237,9 +47672,16 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/security) -"qwK" = ( -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) +"qwF" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower"; + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qwU" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/table/glass, @@ -49270,13 +47712,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"qxz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qxB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49291,16 +47726,6 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/engineering/break_room) -"qxG" = ( -/obj/structure/table, -/obj/item/storage/bag/tray, -/obj/item/knife/kitchen{ - pixel_y = 2 - }, -/obj/effect/spawner/random/food_or_drink/cake_ingredients, -/obj/item/kitchen/rollingpin, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49324,31 +47749,13 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/science/research) -"qyb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 10 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ - dir = 4 - }, -/obj/machinery/light_switch/directional/south, -/obj/effect/spawner/random/entertainment/lighter{ - pixel_x = -7 - }, -/obj/item/flashlight{ - pixel_y = 8; - pixel_x = 3 - }, -/obj/item/flashlight{ - pixel_y = 3; - pixel_x = 10 +"qyr" = ( +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/main) "qyx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair{ @@ -49449,16 +47856,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"qzD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Break Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "qzL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49556,13 +47953,6 @@ }, /turf/open/floor/engine/n2o, /area/station/ai_monitored/turret_protected/ai) -"qAR" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "qBc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -49577,17 +47967,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"qBd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light/small/directional/north, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "qBi" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -49601,13 +47980,6 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"qBn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "qBz" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/mannequin/plastic, @@ -49624,6 +47996,19 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"qBK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"qBM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "qBN" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -49690,10 +48075,11 @@ /turf/open/floor/iron/large, /area/station/command/heads_quarters/hop) "qCK" = ( +/obj/effect/landmark/start/botanist, /obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 5 + dir = 1 }, -/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "qCT" = ( @@ -49756,56 +48142,19 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"qDq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"qDv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 8 - }, -/turf/open/floor/iron/smooth_corner, -/area/station/engineering/supermatter/room) "qDx" = ( /obj/structure/toilet, /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qDA" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/main) "qDC" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, /turf/open/floor/wood/parquet, /area/station/service/library) "qDJ" = ( @@ -49828,9 +48177,22 @@ /turf/open/floor/wood/parquet, /area/station/medical/psychology) "qDL" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qDN" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/status_display/evac/directional/west, @@ -49855,16 +48217,6 @@ dir = 8 }, /area/station/science/lobby) -"qEk" = ( -/obj/structure/table/reinforced, -/obj/item/folder/blue{ - pixel_y = 2 - }, -/obj/item/pen, -/obj/machinery/airalarm/directional/south, -/obj/machinery/status_display/evac/directional/east, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "qEm" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -49872,6 +48224,13 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"qEy" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "qEz" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Holding Cell"; @@ -49883,11 +48242,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) -"qED" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "qEO" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/status_display/evac/directional/east, @@ -49933,6 +48287,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "qFh" = ( @@ -49952,16 +48307,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qFw" = ( -/obj/structure/fluff/broken_canister_frame, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "qGc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -49991,10 +48336,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) -"qGk" = ( -/obj/structure/chair/stool/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "qGu" = ( /obj/effect/turf_decal/siding/dark_red, /obj/item/radio/intercom/directional/south, @@ -50058,17 +48399,23 @@ /turf/open/floor/iron/white/side, /area/station/science/lower) "qIb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"qIe" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, /obj/structure/cable, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/commons/fitness/recreation/entertainment) "qIf" = ( /turf/closed/wall, /area/station/medical/cryo) @@ -50132,39 +48479,26 @@ }, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) +"qJz" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/salad{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "qJH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"qJN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 8 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 5 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 2 - }, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_y = 4 - }, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_y = 4 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -12; - pixel_y = 10 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -15; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"qJL" = ( +/obj/machinery/space_heater, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qKe" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -50187,12 +48521,27 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"qKA" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green{ + dir = 4 + }, +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "qKD" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 6 }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"qKH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) "qKI" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/small, @@ -50279,6 +48628,10 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"qMj" = ( +/obj/effect/turf_decal/bot/right, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "qMp" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -50286,26 +48639,16 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) -"qMu" = ( -/obj/effect/turf_decal/stripes/line{ +"qMw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 1 - }, /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) -"qME" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qMG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, @@ -50343,12 +48686,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"qNN" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qNO" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/central) @@ -50368,6 +48705,12 @@ }, /turf/open/floor/plating, /area/station/commons/storage/tools) +"qOr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "qOG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -50406,6 +48749,11 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"qOQ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "qPc" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -50413,13 +48761,10 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qPg" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"qPk" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) "qPJ" = ( /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, @@ -50427,13 +48772,6 @@ "qPN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) -"qPO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 6 - }, -/obj/machinery/meter/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "qQi" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/yellow{ @@ -50507,6 +48845,11 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) +"qRb" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qRh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -50544,13 +48887,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron, /area/station/security/prison/rec) -"qRE" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 4 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "qRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -50593,6 +48929,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"qSk" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qSC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -50696,14 +49045,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"qUd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "qUe" = ( /obj/structure/cable, /obj/machinery/door/airlock/glass, @@ -50755,6 +49096,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"qUJ" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant24, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "qUL" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -50764,12 +49112,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"qUN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/iron/stairs/medium{ - dir = 1 +"qUR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/area/station/engineering/atmos) +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qUS" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -50795,6 +49145,13 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"qVm" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "qVn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50927,17 +49284,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) -"qWV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "qXb" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -50964,16 +49310,6 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/plating, /area/station/command/heads_quarters/hop) -"qXd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/closet/emcloset, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "qXe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51016,10 +49352,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"qXr" = ( -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/service/chapel) "qXB" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -51054,6 +49386,7 @@ dir = 1 }, /obj/effect/landmark/observer_start, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "qYh" = ( @@ -51073,12 +49406,23 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/small, /area/station/security/tram) -"qYp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 +"qYr" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qYv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -51180,13 +49524,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, /area/station/medical/medbay/lobby) -"qZE" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/textured_half, -/area/station/maintenance/department/engine/atmos) "qZG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/corner/directional/south, @@ -51225,13 +49562,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"rao" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "rax" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 8 @@ -51256,11 +49586,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"raP" = ( -/obj/item/kirbyplants/random, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "raR" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -51284,26 +49609,14 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"rbg" = ( -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) -"rbl" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light/cold/dim/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"rbp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" +"rbj" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating/rust, -/area/station/engineering/main) +/obj/machinery/disposal/bin, +/turf/open/floor/wood/parquet, +/area/station/service/library) "rbs" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -51324,6 +49637,14 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"rbI" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) "rbO" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -51368,6 +49689,12 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"rci" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rcl" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, @@ -51386,12 +49713,13 @@ name = "Public Shrine" }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood/end{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/stone, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, /area/station/hallway/primary/central/fore) "rcQ" = ( /obj/item/kirbyplants/random, @@ -51406,6 +49734,12 @@ }, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) +"rdt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rdw" = ( /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) @@ -51429,6 +49763,19 @@ }, /turf/open/floor/engine, /area/station/science/cytology) +"rdV" = ( +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "rdW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51504,19 +49851,6 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"reL" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/requests_console/directional/west{ - department = "Atmospherics"; - name = "Atmospherics Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "reM" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/escape) @@ -51575,20 +49909,29 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/glass, /area/station/command/heads_quarters/rd) -"rfZ" = ( +"rfT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"rfW" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, /obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) -"rgg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/service/bar, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"rfZ" = ( /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "rgA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -51617,24 +49960,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"rgY" = ( -/obj/effect/landmark/start/assistant, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) -"rhg" = ( -/obj/machinery/air_sensor/engine_chamber, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "rhj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51642,17 +49967,39 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"rhu" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 5 +"rhm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 9; - network = list("ss13","engineering") +/obj/structure/table, +/obj/item/cigarette, +/obj/item/toy/toy_dagger, +/obj/item/clothing/head/collectable/paper, +/obj/item/toy/figure/roboticist{ + pixel_x = 6; + pixel_y = 6 }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) +/obj/item/toy/figure/syndie{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/toy/figure/md{ + pixel_x = 10 + }, +/obj/item/toy/figure/hop{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/toy/figure/ian{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/toy/figure/lawyer{ + pixel_x = -10 + }, +/obj/item/toy/figure/detective, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rhy" = ( /obj/structure/chair{ dir = 1 @@ -51695,7 +50042,8 @@ /area/station/service/chapel/funeral) "rik" = ( /obj/structure/flora/grass/jungle/b/style_random, -/turf/open/misc/dirt/jungle, +/obj/machinery/camera/directional/north, +/turf/open/misc/dirt/station, /area/station/service/chapel) "riq" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ @@ -51746,14 +50094,6 @@ dir = 1 }, /area/station/maintenance/department/electrical) -"rjr" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter) "rjv" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -51763,24 +50103,17 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) -"rjz" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 +"rjw" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air to Distro" }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ dir = 4 }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/aft) -"rjE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "rjN" = ( /obj/structure/cable, /obj/structure/chair{ @@ -51788,15 +50121,22 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"rkk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"rko" = ( +/obj/structure/sign/directions/evac/directional/west, +/obj/structure/sign/directions/science/directional/west{ + dir = 4; + pixel_y = -8 }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 +/obj/structure/sign/directions/security/directional/west{ + pixel_y = 8 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "rkI" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -51807,13 +50147,13 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/medical/morgue) -"rkS" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 8 +"rkM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 }, -/obj/machinery/air_sensor/nitrous_tank, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "rlb" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51840,29 +50180,6 @@ dir = 1 }, /area/station/commons/dorms) -"rlj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) -"rlk" = ( -/obj/machinery/light/broken/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/corner, -/obj/structure/sign/warning/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "rlq" = ( /obj/structure/bed{ dir = 4 @@ -51892,16 +50209,6 @@ /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"rlZ" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/freezer, -/area/station/command/heads_quarters/captain/private) "rma" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -51916,33 +50223,12 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"rmD" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Locker Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/engine_smes) "rmM" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/edge{ dir = 8 }, /area/station/engineering/main) -"rmV" = ( -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/machinery/light_switch/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "rmX" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -51992,24 +50278,6 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"roc" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) -"roe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/sign/warning/radiation/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "roi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -52058,6 +50326,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) "rpi" = ( @@ -52094,20 +50363,12 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) -"rpE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"rpF" = ( -/obj/structure/flora/tree/jungle/small/style_4, -/obj/effect/turf_decal/weather/dirt, -/turf/open/floor/grass, -/area/station/service/chapel) +"rpQ" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "rpV" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -52149,33 +50410,14 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "rqF" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/bush/large/style_3, -/turf/open/floor/grass, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/misc/dirt/station, /area/station/service/chapel) "rqR" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rqV" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "rrb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, @@ -52205,15 +50447,15 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/science/robotics/augments) -"rrG" = ( -/obj/effect/turf_decal/stripes/line{ +"rry" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/smooth_edge{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "rrQ" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/half/contrasted, @@ -52324,9 +50566,23 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) +"rtI" = ( +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/science/xenobiology) "rtQ" = ( /turf/closed/wall/r_wall, /area/station/security/tram) +"rtX" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "rtZ" = ( /obj/structure/sign/directions/dorms{ dir = 1 @@ -52361,6 +50617,15 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"ruh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rui" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52383,32 +50648,26 @@ "ruD" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"ruR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ruS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/mapping_helpers/mail_sorting/service/kitchen, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) "ruY" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"rvf" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rvp" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/hallway/abandoned_command) @@ -52442,6 +50701,16 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"rvI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rvX" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/south{ @@ -52468,26 +50737,6 @@ dir = 6 }, /area/station/science/research) -"rwk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"rwl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "rwo" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/camera/directional/west, @@ -52542,13 +50791,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"rxs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rxu" = ( /obj/structure/table, /obj/machinery/airalarm/directional/south, @@ -52563,6 +50805,18 @@ /obj/item/razor, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) +"rxD" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) +"rxJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rxP" = ( /obj/structure/table, /obj/item/assembly/signaler{ @@ -52609,6 +50863,18 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"rxZ" = ( +/obj/item/book/manual/chef_recipes, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/holosign_creator/robot_seat/restaurant, +/obj/structure/table, +/obj/effect/turf_decal/siding{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "rya" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -52630,6 +50896,12 @@ dir = 1 }, /area/station/science/research) +"ryr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ryt" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -52662,6 +50934,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"rzb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rzd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52674,25 +50955,15 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"rzy" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9"; - pixel_y = -15 +"rzm" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination B" }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) -"rzH" = ( -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock/freezer{ - name = "Freezer" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "rzJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -52761,18 +51032,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"rAH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/status_display/evac/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "rAR" = ( /obj/structure/cable, /obj/machinery/door/airlock/security/glass{ @@ -52808,20 +51067,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"rBr" = ( -/obj/machinery/door/airlock/grunge{ - name = "Janitorial Closet" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/commons) "rBy" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, @@ -52882,6 +51127,12 @@ dir = 1 }, /area/station/security/execution/transfer) +"rCk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "rCv" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -52891,21 +51142,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"rCU" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/sink/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) -"rCX" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "rDc" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/siding/yellow{ @@ -52962,6 +51198,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rDU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "rDV" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) @@ -52993,17 +51234,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"rEH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos) "rEJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/directional/east, @@ -53012,6 +51242,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rEW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "rEY" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/pdapainter{ @@ -53197,6 +51436,14 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"rHl" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "rHp" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/landmark/event_spawn, @@ -53266,10 +51513,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"rIH" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "rIJ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/gravity_generator) +"rIW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "rIY" = ( /turf/closed/wall/r_wall, /area/station/construction/mining/aux_base) @@ -53303,23 +51559,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"rKo" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -53448,17 +51687,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"rMs" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "rMt" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/rock/pile/style_random, @@ -53508,6 +51736,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"rNG" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "rNI" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -53567,6 +51800,11 @@ "rPf" = ( /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"rPg" = ( +/obj/machinery/air_sensor/plasma_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "rPm" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -53655,21 +51893,13 @@ /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"rPX" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/stone, -/area/station/service/bar) "rQi" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) -"rQm" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"rQw" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "rQA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53691,29 +51921,13 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, /turf/open/floor/iron/dark/small, /area/station/medical/pharmacy) -"rQH" = ( -/obj/structure/rack, -/obj/item/clothing/neck/petcollar, -/obj/item/flashlight/flare/candle{ - pixel_x = 10 - }, -/obj/item/flashlight/flare/candle{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/screwdriver{ - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/maintenance/department/engine/atmos) "rQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/machinery/light/cold/directional/west, +/obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "rQS" = ( @@ -53834,6 +52048,10 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"rTn" = ( +/obj/machinery/light/small/directional/north, +/turf/open/misc/dirt/station, +/area/station/service/chapel) "rTq" = ( /obj/machinery/photocopier, /obj/effect/decal/cleanable/dirt, @@ -53894,15 +52112,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"rUa" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos) "rUb" = ( /obj/structure/hedge, /obj/machinery/status_display/evac/directional/east, @@ -53922,22 +52131,10 @@ "rUd" = ( /turf/closed/wall, /area/station/security/prison) -"rUg" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/science/cytology) "rUq" = ( /obj/item/assembly/mousetrap/armed, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"rUs" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination B" - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "rUt" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -53949,25 +52146,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"rUD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "rUI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54005,14 +52183,23 @@ /turf/open/floor/iron/dark, /area/station/security/prison/safe) "rVt" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 }, -/obj/structure/chair/wood{ +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/wood/tile, -/area/station/service/bar) +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/obj/effect/spawner/random/food_or_drink/condiment, +/turf/open/floor/plating, +/area/station/service/kitchen) "rVy" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -54022,15 +52209,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"rVA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rVH" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/table/glass, @@ -54050,6 +52228,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"rVI" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rVQ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/spawner/directional/west, @@ -54074,6 +52258,17 @@ dir = 4 }, /area/station/science/lobby) +"rWr" = ( +/obj/structure/table, +/obj/item/stock_parts/matter_bin{ + pixel_x = 6; + pixel_y = 15 + }, +/obj/item/stock_parts/matter_bin{ + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/lab) "rWs" = ( /obj/effect/turf_decal/siding/brown{ dir = 5 @@ -54136,22 +52331,18 @@ dir = 1 }, /area/station/cargo/bitrunning/den) -"rWQ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "rWU" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"rXm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rXv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -54162,9 +52353,8 @@ /area/station/maintenance/port/greater) "rXy" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) "rXM" = ( @@ -54174,14 +52364,6 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"rXO" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rXW" = ( /obj/structure/flora/bush/flowers_yw, /obj/machinery/door/window/left/directional/west{ @@ -54235,18 +52417,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/service/barber) +"rYD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "rYG" = ( /obj/structure/cable, /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/security/prison/workout) -"rYJ" = ( -/obj/machinery/skill_station, -/obj/structure/sign/painting/library{ - pixel_x = 30 - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) "rYL" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54282,14 +52461,13 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/aft) -"rZj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"rZo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rZq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/status_display/ai/directional/west, @@ -54333,11 +52511,26 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"rZJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rZM" = ( /obj/structure/table/wood, /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) +"saq" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Toxins" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "sar" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -54351,18 +52544,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/carpet/blue, /area/station/cargo/boutique) -"sav" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "saz" = ( /obj/machinery/status_display/ai/directional/west, /obj/effect/turf_decal/tile/neutral{ @@ -54380,18 +52561,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/robotics/augments) -"sbf" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "sbq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -54407,15 +52576,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"sbG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Freezer Room" - }, -/turf/open/floor/iron/textured_half, -/area/station/engineering/supermatter/room) "sbN" = ( /obj/machinery/rnd/server, /turf/open/floor/circuit, @@ -54492,13 +52652,22 @@ /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"scR" = ( -/obj/effect/turf_decal/siding/wood{ +"scP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ dir = 8 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood/tile, -/area/station/service/bar) +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) +"scU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "scY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54512,38 +52681,27 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"sdZ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/engineering/atmos) "sea" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"sed" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"sem" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, +"seq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, -/area/station/maintenance/central/greater) +/area/station/maintenance/disposal/incinerator) "ser" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54579,33 +52737,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/space/basic, /area/space/nearstation) -"sfb" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/flora/bush/jungle/a/style_random, -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/window/spawner/directional/east, -/obj/machinery/light/floor, -/obj/structure/window/spawner/directional/north, -/turf/open/floor/grass, -/area/station/service/hydroponics) -"sfd" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 10 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "sfk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"sfl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "sfq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54619,6 +52755,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"sfy" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"sfB" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sfF" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -54640,15 +52796,6 @@ dir = 8 }, /area/station/engineering/main) -"sfU" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/autoname/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, -/area/station/service/bar) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, @@ -54724,14 +52871,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"shK" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/spawner/random/vending/snackvend, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "shL" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -54755,19 +52894,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"sio" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "sip" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/item/robot_suit, @@ -54808,18 +52934,32 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sjy" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency{ - pixel_x = -2; - pixel_y = -3 +"sjw" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"sjG" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"sjK" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/item/cigarette/cigar, /obj/effect/mapping_helpers/broken_floor, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) +/obj/effect/spawner/random/trash, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "sjL" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -54829,14 +52969,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"sjZ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"sjY" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "skc" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -54865,6 +53003,14 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/prison) +"skp" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/machinery/chem_dispenser, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/medical/chemistry) "skN" = ( /obj/structure/table/wood, /obj/machinery/camera/directional/south{ @@ -54927,14 +53073,6 @@ "slw" = ( /turf/closed/wall, /area/station/cargo/drone_bay) -"slC" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/spider/stickyweb, -/obj/item/hfr_box/corner, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "slG" = ( /obj/docking_port/stationary{ dir = 2; @@ -54981,20 +53119,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/security/detectives_office) -"smd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_cw{ - dir = 6 - }, -/obj/effect/landmark/navigate_destination/incinerator, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "smf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55026,25 +53150,13 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"smJ" = ( -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"sne" = ( +/obj/machinery/griddle, +/obj/effect/turf_decal/siding{ + dir = 6 }, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "snj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -55058,15 +53170,6 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"snm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/end{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "snn" = ( /obj/machinery/rnd/experimentor, /turf/open/floor/engine, @@ -55101,15 +53204,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"snX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/reflector/single/anchored{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "snZ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) @@ -55128,28 +53222,6 @@ dir = 1 }, /area/station/hallway/secondary/dock) -"son" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"soo" = ( -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "sor" = ( /obj/machinery/computer/exoscanner_control{ dir = 1 @@ -55169,6 +53241,9 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -55179,18 +53254,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"soB" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) -"soC" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "soD" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 8 @@ -55206,14 +53269,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"soU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "soV" = ( /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"spa" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "spg" = ( /obj/effect/mapping_helpers/airlock/access/any/security/general, /obj/machinery/door/airlock/security{ @@ -55255,6 +53320,10 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"spH" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/small, +/area/station/service/bar) "spK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55278,10 +53347,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sqg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "sqh" = ( /obj/item/kirbyplants/random, /obj/machinery/light/cold/directional/west, @@ -55327,14 +53392,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"sqB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/left{ @@ -55359,18 +53416,36 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"srg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "srn" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) -"sry" = ( -/obj/effect/turf_decal/weather/dirt{ +"srw" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/atmospherics_engine) +"srx" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/bot{ dir = 1 }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) +"sry" = ( /obj/structure/flora/bush/jungle/c/style_3{ pixel_x = 6; pixel_y = -6 }, +/obj/structure/flora/tree/jungle/small, /turf/open/floor/grass, /area/station/service/chapel) "srA" = ( @@ -55415,12 +53490,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"ssj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -55445,17 +53514,14 @@ "ssz" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/science/xenobiology) -"ssP" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) -"ssR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"ssY" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 }, -/obj/structure/chair/stool/directional/west, -/turf/open/floor/stone, -/area/station/service/bar) +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "sta" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/corner{ @@ -55483,13 +53549,6 @@ dir = 1 }, /area/station/maintenance/department/science/xenobiology) -"stm" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "stH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/half, @@ -55566,6 +53625,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"svd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "svh" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -55590,18 +53655,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"svr" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "svs" = ( /turf/closed/wall, /area/station/hallway/secondary/dock) @@ -55624,25 +53677,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/science/xenobiology) -"svB" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) "svD" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/flora/bush/flowers_yw, /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/science/genetics) -"svE" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/service/bar) "svG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, @@ -55721,6 +53761,7 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) "swF" = ( @@ -55742,13 +53783,17 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"swK" = ( +/obj/structure/sign/poster/official/moth_piping/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "swM" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/obj/structure/flora/bush/jungle/a/style_random{ - pixel_y = -5 - }, +/obj/machinery/camera/directional/north, /turf/open/floor/grass, /area/station/service/chapel) "swO" = ( @@ -55792,20 +53837,13 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/qm) "swW" = ( +/obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/restaurant_portal/bar, -/turf/open/floor/stone, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/wood/tile, /area/station/service/bar) -"sxl" = ( -/obj/machinery/oven/range, -/obj/machinery/airalarm/directional/north, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "sxm" = ( /turf/closed/wall, /area/station/tcommsat/server) @@ -55834,13 +53872,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sxD" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "sxF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55851,6 +53882,11 @@ dir = 8 }, /area/station/science/research) +"sxH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -55871,13 +53907,6 @@ }, /turf/open/space/basic, /area/space) -"syc" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "sye" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/window/reinforced/spawner/directional/east, @@ -55944,45 +53973,22 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"sAb" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, -/turf/open/space/basic, -/area/space/nearstation) -"sAM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/south, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"sAW" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 +"szg" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"szC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/service/chapel) "sBf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -56000,6 +54006,14 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"sBq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/l3closet/janitor, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/shoes/galoshes, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "sBL" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -56020,6 +54034,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sBV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sCc" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -56092,6 +54112,16 @@ }, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation) +"sCC" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sCH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, @@ -56105,40 +54135,9 @@ /obj/effect/turf_decal/siding/purple, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"sDh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Engine Bay East" - }, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "sDj" = ( /turf/closed/wall/r_wall, /area/station/science/cytology) -"sDl" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"sDo" = ( -/obj/effect/decal/cleanable/molten_object, -/obj/item/storage/box/gloves{ - pixel_y = -7; - pixel_x = -15 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "sDp" = ( /obj/structure/cable, /obj/structure/table, @@ -56193,12 +54192,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"sEj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "sEn" = ( /obj/item/clothing/head/cone, /obj/item/clothing/head/cone{ @@ -56238,7 +54231,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/prison) "sFs" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -56260,8 +54252,10 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "sGk" = ( -/obj/structure/flora/bush/jungle/c/style_random, -/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/flowers_yw, /turf/open/floor/grass, /area/station/service/chapel) "sGp" = ( @@ -56312,6 +54306,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sHg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "sHk" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/table, @@ -56324,6 +54324,16 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) +"sHI" = ( +/obj/machinery/computer/atmos_control/air_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sHM" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -56369,11 +54379,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"sID" = ( -/obj/effect/turf_decal/arrows/white, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +"sIB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sIO" = ( /obj/structure/grille/broken, /obj/item/shard/titanium, @@ -56387,6 +54396,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"sJg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "sJi" = ( /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, @@ -56424,6 +54441,13 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"sJL" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "sJN" = ( /obj/effect/turf_decal/siding, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56442,6 +54466,9 @@ desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; name = "BrewMaster 2199" }, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, /turf/open/floor/iron, /area/station/service/hydroponics) "sKk" = ( @@ -56449,6 +54476,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"sKm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "sKq" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -56493,25 +54531,6 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"sLu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/weldingtool/mini/empty{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/item/storage/box/masks{ - pixel_x = 10; - pixel_y = 13 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -4; - pixel_y = 7 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "sLB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -56573,12 +54592,11 @@ }, /area/station/science/research) "sMj" = ( -/obj/machinery/light/floor, -/obj/effect/turf_decal/siding/wood/corner{ +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/stone, +/turf/open/floor/wood, /area/station/service/chapel) "sMq" = ( /obj/machinery/light/warm/directional/west, @@ -56598,6 +54616,23 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) +"sMB" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/structure/rack, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "sMD" = ( /turf/closed/wall, /area/station/science/server) @@ -56633,17 +54668,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"sNc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sNg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -56669,15 +54693,17 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sNA" = ( -/obj/effect/spawner/xmastree, -/turf/open/misc/dirt/jungle, -/area/station/service/chapel) "sNW" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"sOi" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "sOj" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -56785,17 +54811,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"sQa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "sQb" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -56817,21 +54832,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"sQt" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/reflector/single{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "sQv" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -56841,6 +54841,17 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"sQy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/chapel) "sQI" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/modular_computer/preset/id, @@ -56873,6 +54884,22 @@ }, /turf/open/floor/iron/dark/textured_corner, /area/station/command/heads_quarters/hop) +"sQP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "sQS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56914,6 +54941,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"sRF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "sRL" = ( /turf/closed/wall, /area/station/service/janitor) @@ -56941,6 +54976,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"sRW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sSj" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -56979,20 +55018,7 @@ "sSB" = ( /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"sSM" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "sSN" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 8 - }, /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, /area/station/service/chapel) @@ -57042,6 +55068,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "sTi" = ( @@ -57061,6 +55088,14 @@ }, /turf/open/space/basic, /area/space/nearstation) +"sTJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "sTK" = ( /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit, @@ -57075,13 +55110,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/medical/coldroom) -"sTW" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "sUe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -57092,12 +55120,11 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"sUk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Fuel Pipe to Incinerator" +"sUr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/station/engineering/atmos) "sUy" = ( /turf/closed/wall/r_wall, @@ -57125,6 +55152,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"sUM" = ( +/obj/machinery/power/emitter/welded, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sUN" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -57185,9 +55217,23 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sVG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "sVN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) +"sVO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "sWc" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/chem_master, @@ -57212,10 +55258,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/greater) -"sWE" = ( -/obj/machinery/light/broken/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "sWQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57252,6 +55294,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"sXu" = ( +/obj/structure/cable/layer3, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, +/turf/open/floor/iron/stairs, +/area/station/ai_monitored/turret_protected/ai) "sXw" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/circuit, @@ -57262,10 +55313,6 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) -"sXB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "sXD" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/power/apc/auto_name/directional/east, @@ -57308,6 +55355,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"sXY" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/supermatter/room) "sXZ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -57377,16 +55427,25 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"sZo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"sYS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/obj/effect/spawner/random/food_or_drink/donuts, +/turf/open/floor/plating, +/area/station/service/kitchen) +"sZo" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 10 }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/light/small/directional/south, -/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "sZx" = ( @@ -57402,6 +55461,15 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"sZA" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/flowers_pp/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "sZH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57422,6 +55490,18 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/robotics/lab) +"sZP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tab" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, @@ -57467,22 +55547,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) -"taK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/meter, -/turf/open/floor/iron/smooth_corner{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "taL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57493,6 +55557,13 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"taT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "taZ" = ( /obj/structure/flora/bush/large/style_random{ pixel_y = -3 @@ -57554,22 +55625,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/lab) -"tbC" = ( -/obj/structure/sign/directions/evac/directional/west, -/obj/structure/sign/directions/science/directional/west{ - dir = 4; - pixel_y = -8 - }, -/obj/structure/sign/directions/security/directional/west{ - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "tbD" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -57594,12 +55649,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"tbX" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, -/turf/open/space/basic, -/area/space/nearstation) "tca" = ( /turf/open/floor/carpet/donk, /area/station/command/heads_quarters/qm) @@ -57608,13 +55657,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tcA" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "tcC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57623,17 +55665,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/security/processing) -"tcZ" = ( -/obj/effect/turf_decal/siding/red{ - dir = 6 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) +"tdb" = ( +/turf/open/floor/wood, +/area/station/engineering/main) "tdh" = ( /obj/structure/chair/sofa/corp/right{ dir = 4 @@ -57641,6 +55675,10 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/wood/large, /area/station/command/corporate_suite) +"tdm" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "tdu" = ( /obj/structure/lattice, /obj/structure/railing{ @@ -57730,12 +55768,29 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"teo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tes" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 5 + dir = 9 }, -/obj/machinery/light/floor, -/turf/open/floor/stone, +/turf/open/floor/wood/tile, /area/station/service/bar) "tev" = ( /obj/effect/turf_decal/weather/dirt, @@ -57782,6 +55837,13 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"teV" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tfc" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/effect/decal/cleanable/dirt, @@ -57804,14 +55866,6 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"tfj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/server) "tfy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red{ @@ -57819,22 +55873,19 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"tfB" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/table/wood, -/obj/machinery/cell_charger{ - pixel_y = 5 +"tfD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/obj/item/stock_parts/power_store/cell/crap{ - pixel_y = 5 +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/item/cigarette/pipe/cobpipe{ - pixel_x = 1; - pixel_y = -2 +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/corporate_showroom) +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tfE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -57893,14 +55944,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tgD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "tgJ" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -57925,57 +55968,23 @@ dir = 1 }, /area/station/science/research) -"thg" = ( -/obj/machinery/shieldgen, -/obj/item/clothing/gloves/color/black{ - pixel_y = -3; - pixel_x = -2 - }, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/clothing/mask/gas{ - pixel_y = 5 - }, -/obj/item/clothing/head/cone{ - pixel_x = 1; - pixel_y = 15 +"thw" = ( +/obj/machinery/atmospherics/components/binary/pump/layer4{ + dir = 8; + name = "mix to engine" }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/turf/open/floor/iron, +/area/station/engineering/atmos) "thx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"thI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/obj/machinery/meter, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "thM" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/secure_closet/miner, /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"tic" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "tii" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58029,29 +56038,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/lab) -"tiS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"tiU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "tiW" = ( /obj/structure/chair{ pixel_y = -2 @@ -58103,26 +56089,10 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"tjH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/airalarm/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "tjT" = ( -/obj/structure/sink/kitchen/directional/south, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, +/obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/floor, -/obj/structure/disposalpipe/segment{ - dir = 10 + dir = 5 }, /turf/open/floor/stone, /area/station/service/bar) @@ -58167,6 +56137,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"tkU" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "tlh" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/warning/cold_temp/directional/north, @@ -58185,10 +56162,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tlC" = ( -/obj/structure/cable, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/electrical) "tlI" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/rock/pile/jungle/style_random, @@ -58227,27 +56200,34 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "tmD" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/window/spawner/directional/east, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"tmK" = ( +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) -"tmL" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/curved/flipped{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "tmM" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/stairs/left{ dir = 8 }, /area/station/commons/fitness/locker_room) +"tmO" = ( +/obj/machinery/computer/atmos_control/mix_tank{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tmQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58273,10 +56253,18 @@ "tnb" = ( /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"tnj" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/bar) +"tnh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "tns" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -58328,27 +56316,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"tnH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"tnK" = ( -/obj/structure/table/reinforced, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 5 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "tnZ" = ( /obj/structure/bookcase/random, /obj/structure/sign/poster/official/random/directional/west, @@ -58439,13 +56406,6 @@ }, /turf/open/floor/plating/airless, /area/station/hallway/secondary/dock) -"toK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) "toT" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -58460,6 +56420,11 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"toX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tpk" = ( /obj/machinery/vending/wardrobe/law_wardrobe, /obj/effect/turf_decal/siding/wood{ @@ -58518,11 +56483,15 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"tpW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "tqh" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 8 @@ -58596,16 +56565,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"trA" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "trB" = ( /turf/open/floor/glass, /area/station/hallway/primary/central/aft) @@ -58616,20 +56575,27 @@ /obj/structure/sign/warning/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"trX" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - CO2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"trY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/computer/atmos_control/plasma_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tsb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, /obj/structure/sign/departments/aiupload/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"tsl" = ( -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "tst" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -58662,30 +56628,22 @@ "tsF" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/central/fore) -"tsR" = ( -/obj/machinery/electrolyzer, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "ttb" = ( /obj/structure/flora/grass/jungle/b/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"ttg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tts" = ( -/obj/machinery/light/floor, /obj/structure/altar_of_gods, /obj/item/book/bible, /obj/effect/landmark/start/hangover, -/obj/item/flashlight/lantern{ - pixel_y = 5 +/obj/item/flashlight/lantern/on, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/turf/open/floor/wood/tile, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, /area/station/service/chapel) "ttD" = ( /obj/effect/turf_decal/stripes/red/line{ @@ -58693,6 +56651,22 @@ }, /turf/open/floor/engine, /area/station/science/cytology) +"ttL" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) +"ttV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/barsign{ + chosen_sign = "thecavern"; + icon_state = "thecavern"; + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ttX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -58703,6 +56677,12 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"tua" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tug" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -58717,6 +56697,11 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"tuu" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "tux" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58796,6 +56781,15 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) +"tvW" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood/tile, +/area/station/service/bar) "tvZ" = ( /obj/effect/spawner/random/trash, /obj/structure/cable, @@ -58846,6 +56840,10 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/small, /area/station/security/tram) +"twA" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "twE" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -58888,6 +56886,10 @@ dir = 8 }, /obj/machinery/newscaster/directional/west, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = -8 + }, /turf/open/floor/grass, /area/station/service/chapel) "twQ" = ( @@ -58902,13 +56904,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"txd" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 8 - }, -/obj/machinery/air_sensor/carbon_tank, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "txh" = ( /turf/closed/wall/r_wall, /area/station/command/corporate_suite) @@ -58926,18 +56921,6 @@ "txN" = ( /turf/closed/wall, /area/station/security/prison/workout) -"txS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "txV" = ( /obj/machinery/button/door/directional/east{ id = "AuxToilet3"; @@ -58955,6 +56938,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"tyc" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - O2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "tyh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58985,28 +56975,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"tyu" = ( -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) -"tyz" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/turf_decal/siding/wood, -/obj/effect/landmark/start/hangover, -/turf/open/floor/stone, -/area/station/service/bar) "tyA" = ( /obj/machinery/vending/modularpc, /obj/structure/sign/departments/science/alt/directional/east, @@ -59023,19 +56991,6 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/birdshot/prison, /turf/open/floor/tram, /area/station/security/tram) -"tzh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "tzo" = ( /obj/structure/alien/egg/burst, /obj/structure/alien/weeds, @@ -59118,6 +57073,16 @@ }, /turf/open/floor/iron, /area/station/engineering/hallway) +"tAp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tAq" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -59141,15 +57106,17 @@ }, /turf/open/floor/iron, /area/station/security) -"tAu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 +"tAw" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tAx" = ( /obj/effect/turf_decal/trimline/blue/corner, /obj/structure/table/glass, @@ -59169,19 +57136,6 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) -"tAF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "tAH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -59249,17 +57203,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"tCc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "tCh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/red, @@ -59322,23 +57265,21 @@ /obj/machinery/shower/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"tDl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tDn" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/prison) +"tDu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "tDz" = ( /obj/structure/window/spawner/directional/west, /obj/structure/chair/sofa/corp/left{ @@ -59359,6 +57300,15 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"tDF" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59397,13 +57347,24 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) -"tEL" = ( +"tEC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/lab) +"tEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "tFs" = ( @@ -59418,22 +57379,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"tFB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"tFE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/neutral/corner, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "tFH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59456,6 +57401,10 @@ /obj/machinery/chem_master, /turf/open/floor/iron, /area/station/medical/chemistry) +"tGp" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "tGq" = ( /turf/closed/wall, /area/station/service/kitchen/coldroom) @@ -59476,6 +57425,10 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"tGF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "tGI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59526,14 +57479,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"tHY" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "tIa" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -59577,6 +57522,9 @@ }, /turf/open/floor/wood, /area/station/engineering/break_room) +"tIR" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter) "tJe" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -59615,6 +57563,18 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) +"tJF" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/cigarette/cigar, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) @@ -59637,6 +57597,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"tKn" = ( +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) +"tKD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tKG" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/broken_floor, @@ -59660,6 +57631,17 @@ /obj/machinery/power/smes, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) +"tKS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tLc" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/service_all, @@ -59682,6 +57664,19 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lab) +"tLp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tLt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59700,16 +57695,6 @@ dir = 1 }, /area/station/command/bridge) -"tMm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/meter, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "tMs" = ( /obj/structure/cable, /obj/machinery/telecomms/server/presets/service, @@ -59718,13 +57703,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"tMJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "tMS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59746,6 +57724,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tNm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tNn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -59778,6 +57761,16 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/engine, /area/station/science/xenobiology) +"tNy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "tNz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59805,26 +57798,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"tNH" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/red/insulated, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson{ - pixel_y = -1; - pixel_x = -14 - }, -/obj/item/clothing/glasses/meson{ - pixel_y = 3; - pixel_x = -14 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "tNR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59887,12 +57860,12 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"tOC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/hallway/primary/central/aft) +"tOJ" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 4 + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "tOO" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -20; @@ -59981,13 +57954,14 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/machinery/light/small/directional/north, /obj/structure/sign/painting/library{ pixel_y = 32 }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "tPZ" = ( @@ -60021,14 +57995,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"tQC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/seed_extractor, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/hydroponics) "tQQ" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -60037,15 +58003,18 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"tQZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"tQR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/fire/directional/east, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tRc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60065,14 +58034,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/security/courtroom) -"tRj" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "tRw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -60097,24 +58058,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"tSg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light_switch/directional/east, -/obj/item/clothing/head/cone{ - pixel_x = -7; - pixel_y = 11 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"tSi" = ( -/obj/machinery/light/cold/directional/west, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "tSp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60158,25 +58101,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"tSN" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) -"tSV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 5 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/smooth_corner{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "tTg" = ( /obj/structure/table, /obj/item/trash/cheesie{ @@ -60207,6 +58131,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "tTx" = ( @@ -60223,12 +58148,6 @@ /obj/machinery/light/very_dim/directional/east, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"tTK" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "tTT" = ( /turf/open/floor/iron/white/corner{ dir = 1 @@ -60293,6 +58212,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) "tUo" = ( @@ -60324,12 +58247,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"tUI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "tUZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -60349,10 +58266,14 @@ /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) "tVp" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/stone, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/chem_dispenser/drinks/beer, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "tVt" = ( /obj/effect/spawner/structure/window/reinforced, @@ -60366,13 +58287,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"tVN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/obj/machinery/meter, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "tVR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -60428,6 +58342,14 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"tWT" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/structure/sign/poster/official/tactical_game_cards/directional/west, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "tXl" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/table/bronze, @@ -60440,6 +58362,17 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/grass, /area/station/service/chapel) +"tXF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tXG" = ( /obj/structure/chair{ dir = 8 @@ -60463,29 +58396,11 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"tXS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/west, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "tYj" = ( /obj/item/exodrone, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"tYn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tYq" = ( /turf/closed/wall, /area/station/security/execution/transfer) @@ -60570,6 +58485,18 @@ }, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"tZE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "tZI" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60592,6 +58519,15 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/engineering/main) +"uaa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "uab" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60604,14 +58540,6 @@ /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/virology) -"uah" = ( -/obj/item/mop, -/obj/item/reagent_containers/cup/bucket/wooden{ - pixel_x = 9; - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "uax" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60632,14 +58560,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"uaK" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "uaT" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -60681,22 +58601,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"ubh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/lead_pipe, -/obj/item/pipe_dispenser, -/obj/item/stack/pipe_cleaner_coil, -/obj/item/pipe, -/obj/item/pipe, -/obj/item/pipe, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "ubl" = ( /obj/structure/easel, /obj/item/canvas/twentythree_twentythree, @@ -60704,11 +58608,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/commons/storage/art) -"ubs" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/space/basic, -/area/space/nearstation) "uby" = ( /turf/closed/wall, /area/station/security/prison/garden) @@ -60751,6 +58650,20 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"ucm" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -60782,6 +58695,16 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"ucS" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4; + initialize_directions = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60802,16 +58725,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"udf" = ( -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/siding/thinplating/light/end{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "udv" = ( /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/circuit, @@ -60852,6 +58765,12 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/brig/entrance) +"udH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "udK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60870,12 +58789,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"udP" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/south, +"udO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"udW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/departments/botany/alt1/directional/north, /turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) +/area/station/hallway/primary/central/aft) "uek" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -60935,6 +58862,13 @@ }, /turf/open/floor/iron/textured_large, /area/station/command/heads_quarters/hop) +"ueP" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Air" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "ueX" = ( /turf/closed/wall/rust, /area/station/maintenance/port/fore) @@ -60944,6 +58878,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half, /area/station/hallway/primary/central/fore) +"ufe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "uff" = ( /obj/machinery/holopad, /turf/open/floor/wood/large, @@ -60980,15 +58922,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ufR" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/door/airlock/engineering/glass{ - name = "Freezer Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "ugb" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "outerbrig"; @@ -61082,18 +59015,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"ugX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "uhe" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/conveyor{ @@ -61105,12 +59026,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"uhh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/stairs/left{ - dir = 1 - }, -/area/station/engineering/atmos) "uhj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61177,14 +59092,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"uic" = ( -/obj/machinery/computer/atmos_alert{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "uid" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61247,15 +59154,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ujk" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "ujq" = ( /obj/structure/disposalpipe/segment, /obj/structure/closet/emcloset, @@ -61267,6 +59165,13 @@ /obj/item/stack/sheet/cardboard, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"uju" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ujA" = ( /turf/closed/wall/r_wall, /area/station/security/warden) @@ -61317,6 +59222,10 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"ukf" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uki" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -61357,6 +59266,10 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"ukP" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ukQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61373,6 +59286,12 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"ukY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ulb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -61383,13 +59302,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"ulf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ull" = ( /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, @@ -61409,14 +59321,21 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"ulC" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ulE" = ( -/obj/effect/spawner/random/trash, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/sorting/mail{ dir = 4 }, +/obj/effect/mapping_helpers/mail_sorting/service/kitchen, /turf/open/floor/plating, /area/station/maintenance/central/greater) "ulK" = ( @@ -61440,19 +59359,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"umn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "South Ports to Wastes" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "umr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -61496,13 +59402,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"unG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "unK" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -61556,14 +59455,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"upf" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light/cold/dim/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "upg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -61635,6 +59526,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"uqg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Waste" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "uql" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -61650,19 +59551,6 @@ "uqw" = ( /turf/closed/wall/r_wall, /area/station/commons/fitness/recreation) -"uqA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Outlet Pump" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "uqE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61679,13 +59567,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"uqG" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "uqH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61718,12 +59599,15 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"ura" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/light/small/directional/east, -/obj/effect/landmark/start/janitor, -/turf/open/floor/iron/grimy, -/area/station/commons) +"uqV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "urd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61741,6 +59625,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "urg" = ( @@ -61763,6 +59648,12 @@ dir = 8 }, /area/station/engineering/main) +"urh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "urk" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -61836,11 +59727,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"urE" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light/cold/dim/directional/west, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "urF" = ( /obj/machinery/computer/cargo{ dir = 1 @@ -61863,6 +59749,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/execution/transfer) +"urP" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "urQ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -61880,16 +59770,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/command/heads_quarters/qm) -"usA" = ( -/obj/machinery/door/window/left/directional/south{ - name = "Bio-Generator"; - req_access = list("hydroponics") - }, -/obj/machinery/biogenerator, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/service/hydroponics) "usF" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/easel, @@ -61914,16 +59794,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"utf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "utm" = ( /turf/closed/wall/r_wall, /area/station/science/auxlab/firing_range) @@ -61932,13 +59802,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"utv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "utD" = ( /obj/machinery/light_switch/directional/west, /obj/effect/turf_decal/stripes/corner{ @@ -61995,16 +59858,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uus" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Lockers" - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "uuz" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -62041,6 +59894,20 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"uuY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "uvb" = ( /obj/structure/dresser, /turf/open/floor/wood, @@ -62054,32 +59921,13 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"uvo" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Mix Chamber" - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) -"uvs" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/eighties, -/area/station/hallway/primary/central/fore) "uvx" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/cable, +/obj/machinery/door/airlock{ + name = "Maintenance" }, /turf/open/floor/plating, /area/station/maintenance/central/greater) @@ -62090,20 +59938,6 @@ "uvA" = ( /turf/closed/wall/r_wall, /area/station/command/gateway) -"uvB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uvG" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/spawner/random/entertainment/arcade, @@ -62125,23 +59959,6 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uwX" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/storage/wallet{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -2 - }, -/obj/item/lighter{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "uxd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62166,6 +59983,12 @@ /obj/structure/trap/stun, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"uxY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/bamboo, +/obj/structure/cable, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "uya" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -62177,58 +60000,29 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"uyB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/atmos) "uyH" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/small, /area/station/security/warden) -"uyS" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Engine" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"uyV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "uzj" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/prison/garden) +"uzm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel) "uzo" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/aft) -"uzI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "uzJ" = ( /turf/open/floor/iron, /area/station/cargo/storage) @@ -62280,6 +60074,7 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "uAK" = ( @@ -62290,12 +60085,19 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) -"uAT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 +"uAM" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -62345,6 +60147,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/engineering/storage/tech) +"uBE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uBI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -62369,14 +60176,16 @@ /turf/open/floor/iron, /area/station/engineering/lobby) "uBN" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar/backroom) +"uBP" = ( +/obj/effect/turf_decal/bot/left, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uBQ" = ( /obj/structure/table/bronze, /obj/machinery/microwave{ @@ -62389,27 +60198,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ - dir = 4; - piping_layer = 2 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "uCe" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -62421,11 +60209,11 @@ "uCo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, /obj/structure/extinguisher_cabinet/directional/north, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) "uCp" = ( @@ -62433,20 +60221,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCB" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 6 - }, -/obj/structure/flora/bush/sparsegrass, -/turf/open/floor/grass, -/area/station/service/chapel) -"uCE" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 5 - }, -/obj/structure/railing, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "uCH" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/stripes/line{ @@ -62456,16 +60230,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"uCL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uDg" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -62500,6 +60264,21 @@ dir = 8 }, /area/station/commons/fitness/locker_room) +"uDB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "uDE" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/flowers_yw/style_random, @@ -62547,16 +60326,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/stone, /area/station/command/corporate_suite) -"uEw" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "uEC" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/box/red/corners{ @@ -62567,6 +60336,13 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"uEH" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "uEI" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -62600,12 +60376,29 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"uEZ" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "uFc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"uFe" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 4; + pixel_x = -15 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uFk" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/east, @@ -62647,17 +60440,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security/lockers) -"uFy" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "uFA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62674,15 +60456,17 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"uFT" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos/office) +"uFS" = ( +/obj/machinery/igniter/incinerator_atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"uFZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "uGj" = ( /obj/effect/turf_decal/tile/green/half/contrasted, /obj/structure/table/glass, @@ -62693,10 +60477,6 @@ /obj/effect/mapping_helpers/requests_console/ore_update, /turf/open/floor/iron/white, /area/station/medical/virology) -"uGy" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "uGA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62718,24 +60498,11 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"uGB" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) -"uGD" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/bookcase/random/adult, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library) +"uGF" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "uGH" = ( /obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, @@ -62774,13 +60541,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/security/brig) -"uGS" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - PROJECT" - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "uGT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62843,15 +60603,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"uHq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) "uHv" = ( /obj/structure/rack, /obj/item/pipe_dispenser, @@ -62903,6 +60654,13 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) +"uIu" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "uIv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62950,11 +60708,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"uJd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uJi" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -62968,10 +60721,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"uJC" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/engineering/atmos) "uJD" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -62986,19 +60735,6 @@ /obj/machinery/shieldgen, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) -"uJU" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "uKh" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/bot, @@ -63050,19 +60786,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uKO" = ( -/obj/structure/table/greyscale, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/item/stack/sheet/iron/fifty{ - pixel_y = 10; - pixel_x = 2 - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "uKP" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -63074,6 +60797,17 @@ "uLj" = ( /turf/closed/wall, /area/station/commons/toilet/auxiliary) +"uLk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating/rust, +/area/station/engineering/main) "uLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63118,13 +60852,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/secondary/service) -"uMh" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "uMl" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -63149,9 +60876,21 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/diagonal, /area/station/maintenance/department/science/xenobiology) +"uMF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Filter" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "uMH" = ( /turf/open/floor/iron/white/side, /area/station/science/research) +"uMJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "uMN" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/hedge, @@ -63171,18 +60910,6 @@ "uMU" = ( /turf/closed/wall, /area/station/science/robotics/mechbay) -"uMV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner, -/obj/structure/cable, -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "uNa" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -63199,13 +60926,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"uNk" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "uNz" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -63214,11 +60934,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"uNO" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "uNR" = ( /obj/structure/cable, /obj/structure/chair{ @@ -63246,6 +60961,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) +"uOt" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "uOw" = ( /turf/open/floor/iron, /area/station/maintenance/department/medical/central) @@ -63255,34 +60979,16 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"uOz" = ( -/obj/structure/flora/rock/pile/jungle/style_4, -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "uOH" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"uOL" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/hfr_box/body/fuel_input, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "uOP" = ( /obj/structure/cable, /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"uPf" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "uPr" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/bot, @@ -63314,11 +61020,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"uPN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall, -/area/station/engineering/supermatter/room) "uPW" = ( /obj/structure/flora/bush/flowers_pp/style_2, /obj/structure/flora/bush/large/style_3, @@ -63357,6 +61058,9 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"uQo" = ( +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "uQu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/status_display/door_timer{ @@ -63370,6 +61074,12 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"uQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uQK" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -63380,11 +61090,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"uQT" = ( +/obj/machinery/air_sensor/carbon_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "uQY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "uRe" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/red{ @@ -63426,23 +61145,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"uRO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "uRR" = ( /obj/structure/table, /obj/item/plant_analyzer, @@ -63463,13 +61165,11 @@ "uSa" = ( /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"uSb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/grimy, -/area/station/service/library) +"uSc" = ( +/obj/machinery/air_sensor/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uSh" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -63576,6 +61276,15 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/escape) +"uTN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2O" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uTO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -63620,35 +61329,47 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"uUp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "uUA" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"uUG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"uUB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 8 }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/turf/open/floor/stone, +/area/station/service/bar) +"uUS" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) +"uUU" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uVo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "uVD" = ( @@ -63656,6 +61377,13 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) +"uVH" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai) "uVO" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -63752,18 +61480,6 @@ "uXC" = ( /turf/closed/wall, /area/station/science/lower) -"uXI" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) -"uXS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/holopad, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "uXU" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -63811,6 +61527,14 @@ /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating, /area/station/security/brig/entrance) +"uYM" = ( +/obj/machinery/deepfryer, +/obj/structure/sign/poster/official/random/directional/north, +/obj/effect/turf_decal/siding/end{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "uYO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63863,6 +61587,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"uZY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "vaf" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/status_display/ai/directional/south, @@ -63925,14 +61659,13 @@ "vbK" = ( /turf/closed/wall, /area/station/science/research) -"vbL" = ( +"vbM" = ( /obj/structure/lattice/catwalk, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 }, /turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/space/nearstation) "vbO" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -63997,11 +61730,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vcR" = ( -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/engineering/atmos) "vcW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64031,26 +61759,6 @@ /obj/structure/railing/corner, /turf/open/space/basic, /area/space/nearstation) -"vdi" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "vdj" = ( /obj/effect/turf_decal/tile/blue, /obj/structure/filingcabinet/chestdrawer{ @@ -64101,13 +61809,6 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"vdB" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "vdH" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue{ @@ -64122,13 +61823,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"vdS" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/glasses/meson, -/obj/item/radio/intercom/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "vdX" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -64174,18 +61868,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vey" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "veA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/machinery/door/poddoor/shutters/preopen{ @@ -64204,6 +61886,14 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"veR" = ( +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vfc" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -64233,25 +61923,31 @@ /turf/open/floor/iron/dark, /area/station/science/lab) "vfo" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 10 +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "vfD" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/structure/reagent_dispensers/fueltank, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"vfG" = ( -/obj/structure/hedge, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"vfI" = ( +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/machinery/light_switch/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/effect/turf_decal/siding/end, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "vfK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -64265,17 +61961,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"vfM" = ( -/obj/machinery/door/airlock/multi_tile/public{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/bar) "vfN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64300,6 +61985,19 @@ /obj/item/toy/crayon/purple, /turf/open/floor/iron/white, /area/station/science/research) +"vgf" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vgh" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -64357,6 +62055,17 @@ /obj/structure/barricade/wooden, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"vgS" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/desk_bell{ + pixel_x = 4; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "vgY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -64418,6 +62127,7 @@ "vip" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "vir" = ( @@ -64425,11 +62135,6 @@ dir = 8 }, /area/station/science/research) -"viw" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "viy" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64495,15 +62200,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"vja" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/kirbyplants/random, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "vjb" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -64524,39 +62220,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) -"vjK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"vjZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "vkh" = ( /turf/closed/wall, /area/station/service/bar) -"vkn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Research and Development Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "vkr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64600,7 +62266,9 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "vkI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/open/floor/wood/tile, /area/station/service/bar) "vkJ" = ( @@ -64689,13 +62357,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"vlC" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/grille/broken, -/obj/item/stack/rods/two, -/obj/effect/decal/cleanable/molten_object, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "vlV" = ( /turf/closed/wall, /area/station/maintenance/aft) @@ -64815,6 +62476,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"vni" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vnj" = ( /obj/structure/table, /obj/item/clothing/under/rank/prisoner/skirt{ @@ -64840,21 +62512,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"vnp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "vnq" = ( /obj/structure/cable, /obj/structure/bed/medical/anchored{ @@ -64868,10 +62525,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"vnr" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/station/service/chapel/office) "vnu" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -64882,16 +62535,6 @@ /obj/machinery/door/airlock/glass, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vnz" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "vnC" = ( /obj/structure/closet{ name = "Evidence Closet 2" @@ -64924,6 +62567,11 @@ "vnI" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/engine) +"vnL" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space/basic, +/area/space/nearstation) "vnN" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -64935,6 +62583,13 @@ /obj/machinery/medical_kiosk, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"vnZ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) "voe" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -64979,13 +62634,6 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, /area/station/command/teleporter) -"voO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "vpb" = ( /obj/machinery/door/airlock/hatch{ name = "Tool Supply Corridor" @@ -64993,15 +62641,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/office) -"vpg" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "vpk" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -65015,6 +62654,15 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron, /area/station/security/prison/work) +"vpz" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "vpF" = ( /obj/structure/table, /obj/item/dyespray, @@ -65040,20 +62688,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet, /area/station/commons/dorms) -"vpS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold/supply/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "vpT" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -65128,17 +62762,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) -"vqY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "vrf" = ( /obj/structure/hedge, /obj/machinery/light/small/directional/north, @@ -65177,15 +62800,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"vrK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "vrO" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ @@ -65227,6 +62841,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vsf" = ( +/obj/structure/closet/crate{ + name = "Materials Crate" + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/cold/dim/directional/west, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "vsi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -65248,6 +62873,16 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"vsJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vsQ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -65270,16 +62905,6 @@ /obj/machinery/light/floor, /turf/open/floor/wood/parquet, /area/station/service/library) -"vtw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "vtA" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -65314,19 +62939,21 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"vud" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "vuj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/fuel_pellet, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"vuk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "vum" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/north, @@ -65335,6 +62962,16 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"vun" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/requests_console/auto_name/directional/west, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/stone, +/area/station/service/bar) "vuq" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -65365,6 +63002,18 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"vuD" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vuH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/west, @@ -65401,6 +63050,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/paramedic) +"vuV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro to Waste" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "vva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ @@ -65434,25 +63091,21 @@ /obj/machinery/door/airlock/public/glass{ name = "Aft Corridor" }, +/obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) -"vvg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Port Filter" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "vvs" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"vvw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vvz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -65574,6 +63227,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/security/office) +"vwW" = ( +/obj/machinery/chem_master/condimaster, +/obj/effect/turf_decal/siding/end{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "vwZ" = ( /obj/structure/chair/sofa/bench{ dir = 4 @@ -65609,17 +63269,21 @@ "vxt" = ( /turf/closed/wall, /area/station/maintenance/department/engine) +"vxA" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "vxM" = ( /turf/open/floor/iron, /area/station/commons/storage/art) -"vxR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vxX" = ( /obj/effect/spawner/random/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65657,18 +63321,11 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"vyM" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "vyP" = ( -/obj/machinery/vending/wardrobe/hydro_wardrobe, /obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 5 + dir = 1 }, +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "vyR" = ( @@ -65745,6 +63402,14 @@ }, /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) +"vzN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "vzV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65772,21 +63437,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"vAb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/structure/cable, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/clothing/head/cone{ - pixel_x = 11; - pixel_y = -9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vAl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table/wood, @@ -65885,6 +63535,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/research) +"vCi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/corner, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "vCl" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -65899,6 +63559,15 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"vCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "vCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/stone, @@ -65938,13 +63607,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"vDg" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "vDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65960,14 +63622,22 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vDD" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +"vDG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vDQ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/lockers) +"vDS" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "vDV" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) @@ -65986,6 +63656,13 @@ /obj/machinery/duct, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"vEk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "vEn" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66016,20 +63693,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"vEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "vEP" = ( /turf/closed/wall/r_wall, /area/station/security/brig) -"vEQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/east, -/obj/item/radio/intercom/directional/east, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "vET" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -66043,33 +63718,6 @@ "vEW" = ( /turf/closed/wall/r_wall, /area/station/security/prison/shower) -"vEZ" = ( -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"vFf" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/meter, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "vFh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/blobstart, @@ -66150,17 +63798,14 @@ /obj/item/storage/lockbox/loyalty, /turf/open/floor/iron, /area/station/security/tram) -"vFW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 1 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "vGe" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /obj/effect/landmark/start/clown, /turf/open/floor/iron/smooth, /area/station/service/greenroom) @@ -66184,6 +63829,16 @@ dir = 10 }, /area/station/hallway/secondary/construction) +"vGS" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vGU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -66231,6 +63886,15 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) +"vHU" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/maintenance/department/engine/atmos) "vHV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66238,27 +63902,22 @@ }, /turf/open/floor/wood, /area/station/service/chapel/office) +"vHX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "vId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/lower) -"vIp" = ( -/obj/structure/table, -/obj/item/folder/yellow{ - pixel_x = 4 - }, -/obj/item/stack/sheet/mineral/plasma/thirty, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/phone{ - pixel_x = -6; - pixel_y = 7 - }, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "vIt" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -66268,6 +63927,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"vIz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "vIC" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -66277,9 +63941,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vIF" = ( -/turf/closed/wall, -/area/station/engineering/atmos/pumproom) "vIJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -66312,12 +63973,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vJe" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "vJn" = ( /obj/structure/closet/crate/coffin, /obj/structure/window/spawner/directional/west, @@ -66431,13 +64086,6 @@ /obj/effect/landmark/start/chief_engineer, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) -"vKs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vKG" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -66529,6 +64177,18 @@ /obj/item/gavelhammer, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"vLH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vLP" = ( /turf/closed/wall/rust, /area/station/command/heads_quarters/qm) @@ -66547,15 +64207,10 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) -"vMo" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/tank{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) +"vLX" = ( +/obj/effect/turf_decal/box/white, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "vMr" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/alien/weeds, @@ -66587,6 +64242,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"vMI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "vMJ" = ( /obj/structure/disposalpipe/sorting/mail, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66621,11 +64282,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"vNn" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "vNq" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -66657,6 +64313,28 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) +"vNM" = ( +/obj/machinery/door/airlock{ + name = "Hydroponics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/hydroponics) +"vNO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vOf" = ( /obj/structure/cable, /obj/structure/chair{ @@ -66666,6 +64344,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/science/lower) +"vOg" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "vOm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -66717,16 +64399,6 @@ /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"vPt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons) "vPw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66757,35 +64429,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vPW" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 9; - pixel_x = 4 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) -"vPY" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vQk" = ( /obj/effect/spawner/random/structure/crate, /obj/machinery/computer/security/telescreen/entertainment/directional/east, @@ -66807,6 +64450,13 @@ /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) +"vQu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "vQv" = ( /obj/structure/window/spawner/directional/west, /obj/structure/flora/bush/large/style_random, @@ -66856,20 +64506,9 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vRH" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "vSg" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"vSh" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "vSi" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/end, @@ -66886,8 +64525,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSt" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vSw" = ( /obj/effect/landmark/start/hangover, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "vSx" = ( @@ -66898,6 +64545,13 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"vSI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/service/bar) "vSL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -67042,16 +64696,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vUh" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible/layer1{ - dir = 4; - name = "Plasma to Pure"; - color = "#BF40BF"; - piping_layer = 3; - icon_state = "pump_map-3" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -67092,6 +64736,24 @@ }, /turf/open/floor/iron/white/small, /area/station/security/prison/safe) +"vUS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel) +"vUV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/chapel) "vVo" = ( /obj/machinery/light/cold/directional/south, /obj/structure/table/reinforced, @@ -67253,7 +64915,11 @@ "vXd" = ( /obj/item/flashlight/lantern/on, /obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, /area/station/service/chapel) "vXi" = ( /obj/structure/table, @@ -67386,13 +65052,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"vYW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/wood, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "vZb" = ( /obj/structure/cable, /obj/structure/table, @@ -67401,10 +65060,24 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"vZd" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/processing) +"vZu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/mapping_helpers/apc/cell_10k, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "vZD" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red/fourcorners, @@ -67423,18 +65096,6 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"vZM" = ( -/obj/item/clothing/head/cone{ - pixel_x = -17; - pixel_y = -7 - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/glass/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) "vZW" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -67469,13 +65130,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"way" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "waD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -67551,14 +65205,6 @@ dir = 1 }, /area/station/science/lower) -"wby" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "wbH" = ( /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, @@ -67615,6 +65261,11 @@ /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, /area/station/cargo/sorting) +"wcF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wcG" = ( /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 @@ -67649,6 +65300,20 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"wcY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "engsm"; + name = "Radiation Shutters Control"; + req_access = list("engineering") + }, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wdd" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67674,11 +65339,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"wdJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/turf/open/space/basic, -/area/space/nearstation) "wdS" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 4 @@ -67699,6 +65359,18 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"wed" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "wen" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -67714,15 +65386,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/small, /area/station/engineering/lobby) -"weU" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) +"weY" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wfa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -67749,40 +65416,24 @@ "wfr" = ( /turf/closed/wall/r_wall, /area/station/medical/pharmacy) -"wfD" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"wfE" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/vending/tool, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"wfB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "wfG" = ( /obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wgl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"wgj" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wgn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -67868,6 +65519,24 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"whm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Fuel Pipe" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"whn" = ( +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Emitters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "whu" = ( /obj/structure/cable, /obj/machinery/blackbox_recorder, @@ -67903,6 +65572,12 @@ }, /turf/open/floor/plating, /area/station/science/ordnance) +"whK" = ( +/obj/structure/closet/radiation, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "whL" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -67921,6 +65596,14 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"whZ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "win" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67951,10 +65634,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/space/nearstation) -"wiR" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/engineering/engine_smes) "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) @@ -67968,21 +65647,23 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"wjw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "wjG" = ( /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"wjT" = ( -/obj/machinery/barsign{ - chosen_sign = "thecavern"; - icon_state = "thecavern"; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ +"wjR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +/area/station/engineering/atmos) "wjZ" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -68003,13 +65684,16 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) -"wku" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 +"wkj" = ( +/obj/structure/table, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - HFR" }, -/obj/machinery/light/floor, -/turf/open/floor/grass, -/area/station/service/chapel) +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -68034,14 +65718,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"wkU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) "wla" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68053,39 +65729,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"wlS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"wlU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Release" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"wmd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 10 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "wme" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/aft) +"wmq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wmu" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -68134,6 +65786,10 @@ /obj/machinery/holopad, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"wmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wmS" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/red/corner{ @@ -68162,6 +65818,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "wnd" = ( @@ -68203,9 +65860,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wnI" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "wnR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68233,11 +65887,17 @@ /turf/open/floor/plating, /area/station/tcommsat/server) "woz" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, /obj/effect/turf_decal/siding/thinplating{ - dir = 5 + dir = 4 }, /obj/structure/cable, -/turf/open/floor/eighties, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) "woD" = ( /obj/effect/turf_decal/siding/wood{ @@ -68259,6 +65919,20 @@ /obj/item/wrench, /turf/open/floor/catwalk_floor, /area/station/science/xenobiology) +"woK" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "woP" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -68301,17 +65975,6 @@ "wpO" = ( /turf/closed/wall/r_wall, /area/station/security/processing) -"wpY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "wqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68328,6 +65991,10 @@ "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) +"wqz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wqD" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -68353,9 +66020,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"wqP" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/department/electrical) "wqW" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 @@ -68375,6 +66039,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison/workout) +"wrj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wrk" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -68415,6 +66089,7 @@ /obj/effect/turf_decal/trimline/neutral/end{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "wrO" = ( @@ -68574,8 +66249,12 @@ /turf/open/floor/iron/smooth, /area/station/service/greenroom) "wtw" = ( -/obj/structure/chair/stool/bar/directional/west, -/turf/open/floor/wood/large, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "wtx" = ( /obj/structure/cannon{ @@ -68597,6 +66276,20 @@ /obj/machinery/light/small/red/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"wtJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wtT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68605,12 +66298,6 @@ dir = 4 }, /area/station/science/lobby) -"wtV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/chapel) "wtX" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/customs/auxiliary) @@ -68646,6 +66333,15 @@ dir = 8 }, /area/station/science/lobby) +"wup" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wuq" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/rnd_secure_all, @@ -68680,11 +66376,11 @@ /turf/closed/wall, /area/station/command/heads_quarters/qm) "wuY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ - dir = 8 + dir = 4 }, -/turf/open/floor/iron/grimy, +/obj/machinery/light/floor, +/turf/open/floor/stone, /area/station/service/bar) "wvk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68717,12 +66413,12 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"wvT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +"wvZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "wwk" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -68738,6 +66434,18 @@ dir = 1 }, /area/station/security/execution/transfer) +"wwv" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wwz" = ( /obj/structure/cable, /obj/machinery/computer/mech_bay_power_console{ @@ -68777,20 +66485,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wwX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "wwY" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/decal/cleanable/dirt, @@ -68805,14 +66499,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "wxu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -68864,12 +66550,28 @@ dir = 1 }, /area/station/science/xenobiology) +"wya" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/chem_dispenser, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) "wyb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_red, /turf/open/floor/iron, /area/station/security/prison) +"wyg" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "wyj" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -68921,26 +66623,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/office) -"wyU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 +"wyM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 }, -/obj/machinery/light/cold/directional/north, -/obj/machinery/meter, -/turf/open/floor/iron/dark, +/turf/open/floor/engine/air, /area/station/engineering/atmos) -"wyZ" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"wzj" = ( -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wzo" = ( /obj/machinery/light/small/directional/north, /obj/effect/landmark/start/cargo_technician, @@ -68949,13 +66637,6 @@ "wzv" = ( /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"wzB" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "wzF" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -68981,8 +66662,9 @@ /turf/open/floor/carpet/lone, /area/station/service/chapel/office) "wAa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/open/floor/wood/tile, /area/station/service/bar) "wAb" = ( @@ -69013,13 +66695,6 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office) -"wAM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "wAS" = ( /obj/structure/table/wood, /obj/item/hand_labeler, @@ -69073,6 +66748,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wBy" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wBI" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -69172,6 +66854,13 @@ "wCY" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) +"wDn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "wDo" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -69183,13 +66872,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"wDF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "wDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69197,19 +66879,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"wEc" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/twenty, -/obj/item/stack/sheet/mineral/plasma/five, -/obj/item/stack/sheet/mineral/titanium, -/obj/item/stack/sheet/mineral/uranium/five, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "wEf" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -69260,12 +66929,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wEU" = ( -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "wEW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /obj/structure/barricade/wooden/crude, @@ -69303,6 +66966,12 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"wFK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wFQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -69321,19 +66990,14 @@ /obj/structure/flora/bush/jungle/c/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"wFZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wGh" = ( /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"wGo" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/status_display/evac/directional/south, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "wGq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69350,6 +67014,12 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/security/courtroom) +"wGx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69376,6 +67046,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"wGT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGU" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/ai_all, @@ -69386,23 +67065,6 @@ /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wHH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"wHL" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/transit_tube/station/dispenser/reverse/flipped{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "wHN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69413,7 +67075,8 @@ /area/station/medical/medbay/central) "wHO" = ( /obj/structure/sign/poster/official/random/directional/north, -/obj/structure/closet/crate/wooden/toy, +/obj/machinery/vending/autodrobe, +/obj/machinery/light/small/directional/east, /turf/open/floor/wood/parquet, /area/station/service/greenroom) "wHP" = ( @@ -69450,40 +67113,21 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) -"wIu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/book/manual/wiki/engineering_construction{ - pixel_y = 3; - pixel_x = -6 +"wIG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "wIY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/lab) -"wJa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/power/emitter{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "wJd" = ( /turf/closed/wall, /area/station/hallway/secondary/construction) @@ -69492,14 +67136,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wJn" = ( -/obj/machinery/holopad, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "wJo" = ( /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/department/science/xenobiology) +"wJv" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_y = 10 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/service/bar) "wJx" = ( /turf/closed/wall/r_wall, /area/station/security/courtroom) @@ -69518,16 +67168,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/hallway/secondary/entry) -"wJJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wJK" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -69544,10 +67184,9 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "wJT" = ( -/obj/structure/flora/tree/jungle/small/style_4, -/obj/structure/flora/grass/jungle/b/style_random{ - pixel_y = -3; - pixel_x = 3 +/obj/structure/flora/bush/flowers_pp/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 }, /turf/open/floor/grass, /area/station/service/chapel) @@ -69609,15 +67248,6 @@ /obj/structure/bookcase/random, /turf/open/floor/wood/parquet, /area/station/service/library) -"wKy" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "wKz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69630,21 +67260,9 @@ /turf/open/floor/wood, /area/station/maintenance/starboard/greater) "wKH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/stone, +/obj/effect/spawner/random/maintenance, +/obj/structure/rack, +/turf/open/floor/plating, /area/station/service/bar) "wKO" = ( /obj/structure/disposalpipe/segment, @@ -69658,15 +67276,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wKT" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/brown{ - dir = 1 - }, -/obj/machinery/incident_display/dual/directional/north, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "wLd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -69684,6 +67293,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"wLw" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wLM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -69696,12 +67312,11 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "wLU" = ( -/obj/machinery/door/airlock{ - name = "Hydroponics Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wLZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, @@ -69811,17 +67426,18 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"wNi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ +"wNs" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/hallway/primary/central/fore) "wNv" = ( /obj/effect/landmark/navigate_destination/bridge, /turf/open/floor/iron/smooth_half, @@ -69834,16 +67450,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"wNA" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "wND" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner, /obj/effect/decal/cleanable/dirt, @@ -69951,13 +67557,15 @@ /turf/open/floor/plating, /area/station/science/genetics) "wOt" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/stone, +/obj/machinery/firealarm/directional/east, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/tile, /area/station/service/bar) "wOz" = ( /obj/effect/landmark/generic_maintenance_landmark, @@ -70026,14 +67634,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"wPt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "wPu" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -70066,6 +67666,16 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"wPO" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "O2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green{ + dir = 4 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wPP" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -70100,15 +67710,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"wQa" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/light/dim/directional/north, -/obj/structure/sign/warning/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "wQc" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood, @@ -70141,6 +67742,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"wQw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "wQx" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -70220,6 +67827,14 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) +"wRy" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "wRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -70478,30 +68093,26 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/ordnance/testlab) -"wVh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "wVI" = ( /obj/machinery/biogenerator, /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"wWb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/structure/railing{ - dir = 1 +"wVN" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/obj/machinery/meter, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/obj/effect/mapping_helpers/airlock/access/any/service/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"wWm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wWs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70516,14 +68127,6 @@ dir = 1 }, /area/station/hallway/secondary/construction) -"wWC" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/start/librarian, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/library) "wWD" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/landmark/start/hangover, @@ -70534,14 +68137,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wWP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wWR" = ( /obj/structure/table, /obj/item/clothing/gloves/color/orange, @@ -70612,18 +68207,25 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) +"wXt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/stone, +/area/station/service/chapel) "wXC" = ( /obj/effect/turf_decal/siding/red{ dir = 5 }, /turf/open/floor/iron/small, /area/station/security/brig) -"wXV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 +"wXL" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Cold Loop to Gas" }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wYa" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -70683,18 +68285,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/exit/departure_lounge) -"wZk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/table/rolling, -/obj/item/mod/module/thermal_regulator, -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"wZl" = ( -/turf/closed/wall, -/area/station/commons) "wZp" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -70710,6 +68300,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"wZs" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "wZx" = ( /obj/machinery/door/airlock/vault{ name = "Vault" @@ -70730,6 +68327,14 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"wZD" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = 3 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "wZF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -70751,10 +68356,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xae" = ( -/obj/structure/grille, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/atmos) "xam" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70802,14 +68403,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xaK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "xaN" = ( /turf/closed/wall, /area/station/maintenance/starboard/central) @@ -70859,6 +68452,14 @@ "xbl" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"xbo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xbs" = ( /obj/machinery/light_switch/directional/north, /obj/effect/decal/cleanable/dirt, @@ -70913,6 +68514,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"xcz" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/window/spawner/directional/east, +/obj/machinery/light/floor, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/service/hydroponics) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -70927,13 +68537,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall, /area/station/hallway/primary/central/aft) -"xcS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"xcW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 }, -/obj/machinery/portable_atmospherics/canister/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xda" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -70948,14 +68557,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"xdl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/random/trash, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "xdo" = ( /obj/machinery/firealarm/directional/north, /obj/item/kirbyplants/random/fullysynthetic, @@ -70991,19 +68592,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xdJ" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "xdR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -71016,21 +68604,20 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) +"xdV" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/engine, +/area/station/science/xenobiology) "xed" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"xef" = ( -/obj/item/stack/rods/two, -/obj/item/book/manual/wiki/atmospherics{ - pixel_x = 5; - pixel_y = 5; - desc = "Glass shards are embedded in the cover. Hopefully you'll learn sometthing from this." - }, -/turf/open/floor/engine, -/area/station/engineering/atmos) "xeo" = ( /obj/structure/window/spawner/directional/south, /obj/structure/lattice, @@ -71142,16 +68729,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xff" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/server) "xfm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71231,6 +68808,10 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"xgd" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "xgg" = ( /obj/structure/chair{ pixel_y = -2 @@ -71285,11 +68866,21 @@ name = "Public Shrine" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured_half{ + dir = 8 }, -/turf/open/floor/stone, /area/station/hallway/primary/central/fore) +"xht" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -71327,13 +68918,6 @@ "xia" = ( /turf/closed/wall, /area/station/science/cubicle) -"xih" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "xik" = ( /turf/closed/wall, /area/station/security/prison/rec) @@ -71415,15 +68999,6 @@ dir = 5 }, /area/station/science/lower) -"xjc" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 4 - }, -/obj/structure/transit_tube/curved{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "xjg" = ( /turf/open/floor/iron/dark, /area/station/security/interrogation) @@ -71459,18 +69034,22 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) +"xjQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "xjT" = ( /obj/machinery/door/airlock/external{ name = "Construction Zone" }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"xjU" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "xjX" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -71511,14 +69090,6 @@ "xkt" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"xkv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/closet/l3closet/janitor, -/obj/item/clothing/gloves/color/orange, -/obj/item/clothing/shoes/galoshes, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/small, -/area/station/commons) "xkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71541,6 +69112,9 @@ /obj/machinery/power/shieldwallgen, /turf/open/floor/iron/smooth_large, /area/station/command/teleporter) +"xkV" = ( +/turf/open/floor/stone, +/area/station/service/bar) "xkX" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71584,6 +69158,18 @@ /obj/structure/cable/multilayer, /turf/open/floor/plating, /area/station/science/xenobiology) +"xlP" = ( +/turf/open/floor/engine, +/area/station/science/xenobiology) +"xlU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "xlZ" = ( /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) @@ -71598,10 +69184,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"xme" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/engine, -/area/station/engineering/atmos) "xmg" = ( /obj/structure/broken_flooring/singular/directional/south, /obj/machinery/light/small/directional/east, @@ -71639,13 +69221,9 @@ "xnb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/effect/turf_decal/siding/thinplating_new/light, +/obj/machinery/requests_console/auto_name/directional/south, +/obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "xng" = ( @@ -71673,13 +69251,10 @@ dir = 8 }, /obj/machinery/airalarm/directional/south, +/obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"xnA" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "xnB" = ( /obj/effect/turf_decal/stripes/white/corner, /obj/effect/turf_decal/stripes/white/line, @@ -71739,13 +69314,6 @@ "xol" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"xoz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xoJ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/tank_holder/extinguisher, @@ -71758,25 +69326,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) -"xoV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 9 - }, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark/end{ - dir = 4 - }, -/obj/item/geiger_counter{ - pixel_x = 7; - pixel_y = 14 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "xoW" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -71791,9 +69340,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"xpf" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/maintenance/disposal/incinerator) "xpl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -71929,6 +69475,11 @@ "xqC" = ( /turf/closed/wall, /area/station/maintenance/hallway/abandoned_command) +"xqL" = ( +/obj/structure/cable, +/obj/machinery/power/emitter/welded, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "xqN" = ( /turf/closed/wall, /area/station/medical/chemistry) @@ -71952,27 +69503,17 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xri" = ( -/obj/effect/turf_decal/stripes/corner{ +"xre" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) -"xrm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/north, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "xru" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/airalarm/directional/east, @@ -72027,6 +69568,15 @@ dir = 4 }, /area/station/command/heads_quarters/ce) +"xrX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "xrZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -72102,6 +69652,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/processing) +"xsI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/janitor, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "xsJ" = ( /obj/effect/turf_decal/siding{ dir = 4 @@ -72188,13 +69744,13 @@ /turf/open/floor/iron/checker, /area/station/security/breakroom) "xtD" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/stone, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood/tile, /area/station/service/bar) "xtI" = ( /turf/closed/wall/r_wall, @@ -72221,15 +69777,6 @@ "xtW" = ( /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"xug" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/structure/sign/warning/cold_temp/directional/east, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "xuh" = ( /obj/structure/chair/pew/left, /obj/item/bouquet/sunflower, @@ -72287,12 +69834,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"xuN" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/machinery/chem_dispenser, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, -/area/station/medical/pharmacy) "xuO" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -72316,10 +69857,6 @@ dir = 1 }, /area/station/science/research) -"xuX" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "xva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72328,16 +69865,6 @@ dir = 1 }, /area/station/science/research) -"xvb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/fuel_pool, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "xvf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72400,6 +69927,12 @@ "xvT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) +"xvU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "xvV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -72420,6 +69953,13 @@ /obj/machinery/shower/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"xwj" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/security/courtroom) "xwk" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/airalarm/directional/north, @@ -72590,16 +70130,13 @@ /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) "xym" = ( -/obj/machinery/door/airlock{ - name = "Maintenance" +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 }, -/obj/effect/mapping_helpers/airlock/access/any/service/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "xyt" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw, @@ -72660,11 +70197,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) -"xzm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall, -/area/station/engineering/atmos) "xzo" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -72707,20 +70239,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"xAh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "xAm" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -72733,6 +70251,13 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"xAx" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "xAA" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 @@ -72773,28 +70298,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"xAW" = ( -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"xBa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "South Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "xBd" = ( /obj/effect/turf_decal/plaque{ icon_state = "L7"; @@ -72848,11 +70351,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"xBH" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xBV" = ( /obj/effect/spawner/random/structure/chair_flipped, /turf/open/floor/plating, @@ -72883,18 +70381,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xCR" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xCS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72956,16 +70442,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xDW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/mechbay) "xEd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72978,8 +70454,8 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/central) "xEl" = ( -/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/wood, /area/station/service/chapel/office) "xEm" = ( @@ -73019,6 +70495,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xEx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "xEM" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/large/style_random{ @@ -73074,20 +70556,20 @@ "xFe" = ( /turf/closed/wall, /area/station/security/lockers) -"xFj" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ +"xFf" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 8 +/obj/machinery/button/door/directional/west{ + id = "Secure Storage below"; + name = "Secure engineering storage"; + pixel_y = 24; + req_access = list("engine_equip") }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 +/turf/open/floor/iron/corner{ + dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/station/engineering/main) "xFw" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench{ @@ -73254,21 +70736,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"xHT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +"xIf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"xHV" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "xIj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73283,13 +70758,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) -"xIr" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/holopad, -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "xIu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -73353,6 +70821,25 @@ "xJB" = ( /turf/closed/wall, /area/station/security/courtroom) +"xJT" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 12 + }, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/machinery/light/no_nightlight/directional/east, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "xJZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73366,6 +70853,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) +"xKe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xKg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -73405,15 +70900,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/processing) -"xKz" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/north, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xKG" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) @@ -73426,9 +70912,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"xKS" = ( -/turf/closed/wall, -/area/station/engineering/atmos/space_catwalk) "xKX" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -73471,13 +70954,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xLp" = ( -/obj/machinery/computer/atmos_control/air_tank{ - dir = 1 - }, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "xLy" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt/dust, @@ -73487,6 +70963,26 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xLF" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Engine Coolant Bypass"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - distro" + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xLY" = ( /obj/item/reagent_containers/cup/glass/bottle/beer{ pixel_y = 11 @@ -73581,35 +71077,14 @@ "xMY" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) -"xNe" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) "xNh" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron, /area/station/security/lockers) -"xNp" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xNw" = ( /turf/closed/wall, /area/station/science/breakroom) -"xNA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar) "xND" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/south, @@ -73617,32 +71092,15 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) -"xNE" = ( -/obj/structure/steam_vent, -/obj/structure/closet/crate, -/obj/structure/spider/stickyweb, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/body/moderator_input, -/obj/item/grenade/chem_grenade/cleaner, -/obj/structure/sign/poster/official/random/directional/north, -/obj/item/pipe_dispenser, -/obj/item/clothing/gloves/color/red/insulated, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) -"xNV" = ( -/obj/structure/disposalpipe/segment{ +"xNX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Gun Lab" +/obj/structure/railing/corner{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/auxlab/firing_range) +/turf/open/floor/iron, +/area/station/engineering/atmos) "xOm" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/shutters{ @@ -73679,28 +71137,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half, /area/station/security/breakroom) -"xOJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 10 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) -"xOO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 10 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"xOR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ - dir = 8 - }, -/turf/open/floor/engine/airless, -/area/station/engineering/atmos) "xOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -73738,6 +71174,20 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/prison/rec) +"xPp" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/tree/jungle/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) +"xPq" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "xPs" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -73758,6 +71208,24 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"xPH" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"xPJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "xPN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73806,17 +71274,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xQr" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) -"xQt" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "xQv" = ( /obj/structure/cable, /obj/structure/closet/secure_closet/hop, @@ -73847,36 +71304,12 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/command/heads_quarters/captain/private) -"xQE" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/stone, -/area/station/service/bar) -"xQG" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xQI" = ( /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "xQJ" = ( /turf/closed/wall, /area/station/service/abandoned_gambling_den/gaming) -"xQS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "xQW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73886,25 +71319,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/diagonal, /area/station/science/auxlab/firing_range) -"xQZ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"xRa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "xRd" = ( /obj/machinery/holopad, /obj/machinery/button/door/directional/north{ @@ -73947,11 +71361,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"xRv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent/layer2, -/turf/open/space/basic, -/area/space/nearstation) "xRA" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -74019,14 +71428,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"xSi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "xSt" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -74093,6 +71494,13 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xTr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xTB" = ( /obj/structure/chair/sofa/left{ dir = 4 @@ -74111,12 +71519,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"xTM" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "xTO" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -74134,14 +71536,6 @@ dir = 9 }, /area/station/science/xenobiology) -"xTT" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "xTV" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -74197,6 +71591,12 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xUK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xUL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74276,16 +71676,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"xVB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xVG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74454,9 +71844,9 @@ /area/station/maintenance/starboard/aft) "xXD" = ( /obj/effect/turf_decal/siding/thinplating_new/light, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "xXG" = ( @@ -74525,17 +71915,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"xYm" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "xYu" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -74574,18 +71953,6 @@ "xYO" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/bridge) -"xYX" = ( -/obj/effect/turf_decal/siding/red{ - dir = 8 - }, -/obj/machinery/air_sensor/nitrogen_tank, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) -"xZb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "xZd" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, @@ -74593,8 +71960,8 @@ /area/station/maintenance/port/greater) "xZe" = ( /obj/effect/landmark/start/chaplain, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 }, /turf/open/floor/stone, /area/station/service/chapel) @@ -74667,10 +72034,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"yac" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/iron/stairs/medium, -/area/station/engineering/atmos) "yag" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -74688,19 +72051,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron, /area/station/security/tram) -"yaq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "yaB" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -74725,6 +72075,10 @@ "yaL" = ( /turf/closed/wall, /area/station/commons/vacant_room/commissary) +"yaT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "yaU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -74757,6 +72111,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/interrogation) +"ybp" = ( +/obj/machinery/air_sensor/oxygen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "ybs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -74764,16 +72123,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"ybC" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Break Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/hallway) "ybD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74813,7 +72162,7 @@ dir = 6 }, /obj/structure/flora/grass/jungle, -/turf/open/floor/grass, +/turf/open/misc/dirt/station, /area/station/service/chapel) "ycd" = ( /obj/effect/spawner/structure/window/reinforced, @@ -74871,12 +72220,24 @@ /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "ycS" = ( +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/open/floor/wood/tile, /area/station/service/bar) -"ycW" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) +"ycX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ydf" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -74886,23 +72247,6 @@ }, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"ydi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "South Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "ydj" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -74923,46 +72267,27 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ydH" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/machinery/plumbing/input{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/cytology) -"ydI" = ( -/obj/machinery/light/cold/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "ydL" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"ydV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "yea" = ( /turf/closed/wall, /area/station/service/chapel/office) "yeh" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) +"yei" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Transit Tube Station" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "yel" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -74989,6 +72314,29 @@ /obj/structure/sign/warning/test_chamber/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"yew" = ( +/obj/effect/turf_decal/box/white{ + color = "#9FED58" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"yey" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 10 + }, +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/fireaxecabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "yeD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -75092,17 +72440,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"yfP" = ( -/obj/machinery/modular_computer/preset/civilian{ - dir = 4 - }, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai) "yfQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"yfX" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "yfY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75113,6 +72460,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) +"ygf" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Test Chamber"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ygu" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) @@ -75193,25 +72547,18 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"yhS" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "yhW" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"yhY" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 6 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") +"yhX" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/service/chapel) "yig" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/east, @@ -75225,13 +72572,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) -"yii" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - name = "North Ports to Wastes" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "yij" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -75318,6 +72658,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"yiZ" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "yjc" = ( /obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/delivery/white, @@ -75327,16 +72676,6 @@ "yjd" = ( /turf/open/floor/iron/dark, /area/station/security/lockers) -"yji" = ( -/obj/item/book/manual/chef_recipes, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/holosign_creator/robot_seat/restaurant, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table, -/turf/open/floor/iron/kitchen/small, -/area/station/service/kitchen) "yjt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75347,19 +72686,6 @@ "yjE" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) -"yjN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "yjP" = ( /obj/structure/flora/tree/jungle/style_2, /turf/open/floor/grass, @@ -75407,6 +72733,13 @@ }, /turf/open/floor/stone, /area/station/command/corporate_suite) +"ykk" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ykn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75468,13 +72801,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"ylK" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "ylR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75498,13 +72824,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"ymj" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) (1,1,1) = {" dDB @@ -78846,143 +76165,143 @@ dDB dDB dDB dDB -"} -(14,1,1) = {" -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -aJq -aJq -aJq -tYT -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -xZx -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -bjQ -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB +"} +(14,1,1) = {" +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +aJq +aJq +aJq +tYT +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -79152,10 +76471,8 @@ dDB dDB dDB dDB -xZx dDB dDB -blb dDB dDB dDB @@ -79173,10 +76490,12 @@ dDB dDB dDB dDB -blb dDB dDB -bjQ +dDB +dDB +dDB +dDB dDB dDB dDB @@ -79409,31 +76728,31 @@ dDB dDB dDB dDB -blb dDB dDB -blb dDB dDB dDB dDB dDB dDB -xxo dDB +vdg +wdB +sxv dDB +vdg +wdB +sxv dDB -xxo dDB dDB dDB dDB dDB dDB -blb dDB dDB -blb dDB dDB dDB @@ -79666,31 +76985,31 @@ dDB dDB dDB dDB -blb -dDB -dDB -blb -dDB dDB dDB dDB dDB dDB -blb +bjQ dDB dDB dDB -blb +qyN +xZx +rpi +rpi +rpi +xZx +wgv dDB dDB dDB +bjQ dDB dDB dDB -blb dDB dDB -blb dDB dDB dDB @@ -79923,13 +77242,8 @@ dDB dDB dDB dDB -blb -dDB -dDB -jrj -dDB -dDB dDB +bjQ dDB dDB dDB @@ -79937,17 +77251,22 @@ blb dDB dDB dDB -blb -dDB +rMm +uPX +pSs +rpi +rMm +uPX +pSs dDB dDB dDB +blb dDB dDB -jrj dDB dDB -blb +bjQ dDB dDB dDB @@ -80180,30 +77499,30 @@ dDB dDB dDB dDB +dDB blb -fNQ -xQZ -wlU dDB dDB dDB +blb +dDB +dDB dDB dDB dDB -xck blb -jFk +rpi blb -xck dDB dDB dDB dDB dDB +blb +dDB +dDB +dDB dDB -lTC -xQZ -khr blb dDB dDB @@ -80433,49 +77752,35 @@ dDB dDB dDB dDB -chj -chj -chj -chj -blb -aky -blb -wpY -dDB +tYT dDB dDB dDB dDB +blb dDB -xck -kFH -iRp -kFH -xck dDB dDB +blb dDB dDB dDB dDB -wpY blb -aky -blb -chj -chj -chj -chj -dDB -dDB +hYC +uQY +hYC +tYT dDB -xxo dDB dDB dDB +blb +tYT dDB dDB dDB +blb dDB dDB dDB @@ -80645,8 +77950,6 @@ dDB dDB dDB dDB -"} -(21,1,1) = {" dDB dDB dDB @@ -80661,6 +77964,8 @@ dDB dDB dDB dDB +"} +(21,1,1) = {" dDB dDB dDB @@ -80679,73 +77984,60 @@ dDB dDB dDB dDB -gcs dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -qfn -gbE -kYo -eAI -eVk -blb -ekf dDB dDB dDB dDB dDB -dDB -xck -uic -fMP -bbF -xck -dDB -dDB +gcs dDB dDB dDB dDB -ekf +vnZ +sxH +sxH +sxH +sxH +kdv +kdv +sxH +sxH +sxH +sxH +ipq +aFH blb -kHQ -oBk -oGn -hXB -kRu -chj blb blb -blb -svB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB dDB dDB dDB dDB +blb +hYC +mKh +hYC +aJq +tYT dDB dDB dDB +blb +aJq +liQ +blb +blb +blb dDB dDB dDB @@ -80902,8 +78194,6 @@ dDB dDB dDB dDB -"} -(22,1,1) = {" dDB dDB dDB @@ -80931,60 +78221,25 @@ dDB dDB dDB dDB +"} +(22,1,1) = {" dDB dDB dDB dDB dDB -kaP dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -ijn -rCX -dzA -lsK -diL -lsK -xFj -blb -blb -blb -xck -xck -xck -xck -wyZ -pvE -aKU -xck -xck -xck -xck -blb -blb -blb -ekf -blb -mSS -sfl -oGn -keS -ozz -chj dDB dDB dDB -kaP -blb dDB dDB dDB @@ -81000,15 +78255,50 @@ dDB dDB dDB dDB +kaP dDB dDB dDB dDB +wZs dDB dDB +aJq +aJq +liQ +liQ +liQ +blb +blb +blb +ybO +evQ +cwf +cwf +ybO +aJq dDB dDB +blb +cwf +ybO +ilT +ybO +cwf +aJq +tYT dDB +blb +ybO +cwf +cwf +cwf +cwf +ybO +blb +blb +blb +bjQ dDB dDB dDB @@ -81159,8 +78449,6 @@ dDB dDB dDB dDB -"} -(23,1,1) = {" dDB dDB dDB @@ -81190,59 +78478,32 @@ dDB dDB dDB dDB +"} +(23,1,1) = {" dDB dDB dDB -svB dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -chj -chj -chj -blb -iwi -blb -xAh dDB dDB dDB dDB -kFH -aKo -poV -clX -qtv -hsy -reL -xLp -kFH dDB dDB dDB dDB -ekf -blb -uRO -blb -chj -chj -chj -chj dDB dDB dDB -kaP dDB -xxo dDB dDB dDB @@ -81250,8 +78511,48 @@ dDB dDB dDB dDB +vnZ +rpQ +sxH +sxH +sxH +sxH +qKH dDB -aan +aJq +aJq +pCn +pCn +oBP +oBP +oBP +oBP +pCn +ybO +thw +wup +atZ +dhG +hfm +hfm +bta +bta +bhE +cXg +aao +aao +bhE +sBV +sBV +sBV +bta +dhG +blt +nGf +dxv +pjk +cwf +tYT dDB dDB dDB @@ -81269,6 +78570,7 @@ dDB dDB dDB dDB +aan dDB dDB dDB @@ -81416,8 +78718,6 @@ dDB dDB dDB dDB -"} -(24,1,1) = {" dDB dDB dDB @@ -81435,6 +78735,8 @@ dDB dDB dDB dDB +"} +(24,1,1) = {" dDB dDB dDB @@ -81445,17 +78747,14 @@ dDB dDB dDB dDB -aan dDB dDB dDB dDB -kaP dDB dDB dDB dDB -blb dDB dDB dDB @@ -81465,30 +78764,52 @@ dDB dDB dDB dDB +aan dDB -iwi -blb -xAh dDB dDB +gGy +kaP dDB dDB -kFH -fiq -xHV -duY -cVY -wKy -pXu -kRW -kFH dDB dDB +blb dDB dDB -ekf blb -uRO +pCn +afm +afa +afa +afa +afa +aNO +cwf +mzs +cZj +gJw +ybO +ybO +ybO +ybO +ybO +cwf +lRy +lRy +lRy +cwf +ybO +ybO +ybO +ybO +ybO +qwF +fAD +sjY +pjk +cwf +tYT dDB dDB dDB @@ -81497,9 +78818,7 @@ dDB dDB dDB dDB -kaP dDB -svB dDB dDB dDB @@ -81706,57 +79025,57 @@ dDB dDB dDB dDB -dDB +gGy kaP -dDB +tYT dDB dDB dDB gcs tYT dDB -dDB -dDB -chj -chj -chj -chj -chj blb -iwi -blb -xAh -dDB -dDB -dDB +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +sjY +fAD +rZJ +oDS +lSy +dEy +mRl +ybO +sdZ +lRy +lRy +lRy +cax +ybO +kNx +jya +gUM +oDS +jTD +fAD +urh +pZp +ybO +tYT +tYT dDB -kFH -ehw -gBG -hir -weU -iCp -aXy -nMQ -kFH dDB dDB dDB dDB -ekf -blb -uRO -blb -chj -chj -chj -chj -chj dDB dDB -xxo dDB -kaP dDB dDB dDB @@ -81963,57 +79282,57 @@ dDB dDB dDB dDB -dDB +gGy gcs -dDB -dDB +tYT +tYT dDB aJq aJq tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +jWm +ybO +cbh +gNg +uQT +nrn +frn +lRy +lRy +lRy +bdU +nrn +ybp +qBK +jMp +cor +wPO +wLw +udH +gbh +ybO +tYT +tYT +tYT dDB dDB dDB -chj -jbo -rkS -hIU -kYo -ubs -tDl -blb -xAh -blb -blb -oDE -xck -xck -xck -xck -kph -nQC -uFT -xck -xck -xck -xck -qwo -blb -blb -ekf -blb -uCa -tbX -oGn -hFR -xYX -cPv -chj dDB dDB dDB dDB -kaP dDB dDB dDB @@ -82220,57 +79539,57 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq tYT tYT +tYT +tYT +tYT aJq -aJq -aJq -dDB -dDB -dDB -chj -rhu -soB -syc -dzA -lsK -bWg -lsK -wgl -dDB -dDB -dDB +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +rDU +hYC +bLp +wGx +qht +nrn +lCT +trX +hKf +ybO +pwO +lRy +lRy +lRy +vGS +ybO +kNx +tyc +dJn +nrn +jMQ +wmL +civ +gbh +cwf +tYT dDB -blb -xck -oLN -uMh -pwD -pyl -ojW -xck -blb dDB dDB dDB dDB -gcR -lsK -nUB -lsK -dzA -cpC -ltz -tcZ -chj dDB dDB dDB dDB -kaP dDB dDB dDB @@ -82477,57 +79796,57 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq aJq tYT +aJq +tYT tYT aJq aJq +pCn +bDQ +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +mUY +ybO +ybO +ukP +ybO +ybO +fwr +lRy +lRy +lRy +pYw +ybO +ybO +ukP +ybO +ybO +ivs +fAD +civ +gbh +cwf tYT dDB dDB -chj -chj -chj -chj -chj -blb -kHI -blb -xAh -dDB dDB dDB dDB -blb -xck -toK -cTS -raP -aOS -akS -xck -blb dDB dDB dDB dDB -xAh -blb -sAW -blb -chj -chj -chj -chj -chj -dDB -dDB -xxo -dDB -svB dDB dDB dDB @@ -82734,46 +80053,58 @@ dDB dDB dDB dDB -dDB -aJq +gGy aJq aJq aJq tYT aJq -aJq +tYT +tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +krb +gbh +fAD +gAQ +cwf +dEw +dEw +dEw +cwf +xPq +lRy +lRy +lRy +qRb +cwf +dEw +dEw +dEw +cwf +gXT +fAD +civ +gbh +cwf aJq dDB dDB dDB -vmL -blb dDB dDB dDB -kHI -blb -xAh dDB dDB -blb -xck -xck -xck -gnd -jWk -gnd -cxQ -gnd -xck -xck -xck -blb dDB dDB -xAh -blb -sAW dDB dDB dDB @@ -82782,9 +80113,7 @@ dDB dDB dDB dDB -kaP dDB -kaP dDB dDB dDB @@ -82948,6 +80277,23 @@ dDB dDB dDB dDB +"} +(30,1,1) = {" +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -82958,14 +80304,58 @@ dDB dDB dDB dDB -"} -(30,1,1) = {" dDB dDB dDB dDB dDB dDB +gGy +dDB +aJq +tYT +tYT +tYT +tYT +tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +lRy +lRy +lRy +klg +lRy +lRy +lRy +klg +hLx +fAD +civ +gbh +ybO +aJq +aJq +dDB +dDB +dDB dDB dDB dDB @@ -82992,77 +80382,6 @@ dDB dDB dDB dDB -aJq -aJq -aJq -aJq -aJq -tYT -aJq -aJq -tYT -dDB -chj -chj -chj -chj -chj -blb -kgG -ttg -gEy -dmb -dmb -cnU -ilb -nks -cbJ -xKS -ptz -cBR -udP -xKS -cbJ -nks -tYn -bsn -yaq -yaq -nWE -ttg -fRm -blb -chj -chj -chj -chj -chj -dDB -dDB -kaP -dDB -xxo -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB dDB dDB dDB @@ -83248,56 +80567,56 @@ dDB dDB dDB dDB +gGy +dDB dDB tYT +tYT +tOJ +gKs +sjw +gKs aJq +oBP +mHG +ucS +gxo +lmJ +lmJ +toX +hYC +jhF +fAD +gAQ +cwf +cnC +cnC +cnC +cwf +xPq +lRy +lRy +lRy +qRb +cwf +cnC +cnC +cnC +cwf +gXT +fAD +civ +fOK +ybO aJq aJq aJq -aJq -aJq -aJq -tYT -tYT -chj -izm -txd -pKg -kYo -wdJ -tiS -myi -dHU -rQm -rQm -cJb -qPg -puI -qkI -gIz -gNS -xIr -sDl -xBa -utv -ydi -nEa -fiI -blb -blb -ccu -bTJ -pCo -sAb -oGn -ckI -exr -sfd -chj dDB dDB -svB -blb +dDB +dDB +dDB +dDB dDB dDB dDB @@ -83505,55 +80824,55 @@ dDB dDB dDB dDB +gGy +dDB dDB dDB tYT +sIB +gKs +xPH +gKs aJq -aJq -aJq -aJq -aJq -aJq -aJq -blb -chj -peW -aqn -sxD -dzA -lsK -qDq -hZb -nEN -fFe -fFe -cgh -rwl -nks -epr -xKS -fcI -dvv -cBV -xKS -epr -nks -vbL -vvg -fFe -fFe -cmu -mSc -dXa -lsK -dzA -mKV -pUe -yhY -chj +pCn +kCq +vEL +xvU +lmJ +lmJ +yaT +cwf +gbh +fAD +lvy +ybO +ybO +ukP +ybO +ybO +iZs +lRy +lRy +lRy +enF +ybO +ybO +ukP +ybO +ybO +rvI +fAD +civ +gbh +cwf +tYT +tYT +dDB +dDB +dDB +dDB dDB dDB -kaP dDB dDB dDB @@ -83762,55 +81081,55 @@ dDB dDB dDB dDB -dDB -dDB +gGy +wBo +tdm +wBo +wBo +evj +wBo +lst +wBo +giq +pCn +nAW +gnB +bDg +uOt +lmJ +yaT +cwf +gbh +fAD +tua +oDS +hzO +iFB +oPj +ybO +dEc +lRy +lRy +lRy +yiZ +ybO +nbH +rIH +ouS +oDS +fIP +fAD +civ +gbh +cwf +tYT tYT -aJq -aJq -aJq -aJq -aJq -aJq -aJq -blb -chj -chj -chj -chj -chj -blb -nYD -blb -aky -blb dDB dDB -ybO -ybO -ybO -hYC -okt -hYC -rEH -hYC -ybO -ybO -ybO dDB dDB -blb -aky -blb -vdi -blb -chj -chj -chj -chj -chj dDB dDB -xxo dDB dDB dDB @@ -84019,58 +81338,58 @@ dDB dDB dDB dDB -dDB -dDB -tYT -tYT -aJq -aJq -aJq -aJq -aJq -aJq -tYT +gGy +wBo +nqx +wBo +qko +mjc +hMX +ful +aem +gbf +pCn +ucm +pkt +mGs +uOt +lmJ +yaT +cwf +gbh +fAD +jWm +ybO +kVB +dzH +rPg +nrn +trY +lRy +lRy +lRy +azW +nrn +eok +gip +avP +cor +nnp +wLw +rVI +gbh +cwf tYT -blb -vmL -blb -dDB -dDB -rUD -orY -pML -dDB -dDB -dDB tYT -kFS -hYC -wfE -gNI -lBw -coO -ftc -hYC -kFS tYT dDB dDB dDB -jhz -xQZ -kpe -dDB -dDB -dDB dDB dDB dDB dDB dDB -blb -dDB -dDB -dDB dDB dDB dDB @@ -84275,56 +81594,56 @@ dDB dDB dDB dDB -dDB -dDB -tYT -tYT -aJq -aJq -aJq -aJq -aJq -aJq -tYT -tYT -dDB -blb +vnZ +evw +giq +lVW +eEn +cCP +wWm +mPB +pit +wWm +pnO +pCn +teV +dix +fEs +hXv +eMa +ykk +hYC +egC +nlt +ckR +nrn +ktJ +saq +ukY +ybO +sfy +lRy +lRy +lRy +uUU +ybO +nbH +aal +fos +nrn +wGT +wmL +civ +tKD +ybO tYT tYT -dDB -dDB -jul -oTY -qME -dDB -dDB tYT tYT -kFS -hYC -xKz -aAb -svr -coO -gSh -hYC -kFS tYT tYT dDB dDB -hsL -pJT -rqV -dDB -dDB -dDB -aJq -aJq -aJq -tYT -aJq -blb dDB dDB dDB @@ -84532,50 +81851,50 @@ dDB dDB dDB dDB -dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -tYT -vmL +gGy wBo -giq wBo -giq +sRf wBo -vmL -hZf -kwH -nID -vmL +hFO +wBo +mPB +wWm +nlR +gQy ybO -tYT -aJq -kFS hYC hYC -pEa -iCL -pTp +cwf +mgF +cwf hYC hYC -kFS -aJq -tYT +bLp +fAD +cGG ybO -vmL -hZf -kwH -lLE -dqV ybO -aJq +ukP +ybO +ybO +mxp +nUh +bud +lRy +jtG +ybO +ybO +ukP +ybO +ybO +xNX +fAD +civ +ruh +ybO +tYT +tYT aJq aJq aJq @@ -84748,90 +82067,90 @@ dDB dDB dDB dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -"} -(37,1,1) = {" -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -tYT -tYT -tYT -fPb -hSG -drw -gvB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +"} +(37,1,1) = {" +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +gGy wBo +fgX +uFS +wBo +eKd +wBo +aeH +dOP +pit +dHx ybO -brC -brC -brC -ybO -ybO -aJq -aJq -kFS -hYC -gJs -uaK -sSM -mvj -sAM -hYC -kFS -aJq -aJq -ybO -ybO -brC -brC -brC -pfx +eUY +pjk +pjk +fRM +pjk +pjk +nFv +gbh +fAD +gAQ +cwf +dEw +dEw +dEw +cwf +xPq +lRy +bud +lRy +qRb +cwf +dEw +dEw +dEw +cwf +amb +fAD +civ +gbh ybO +tYT aJq aJq aJq @@ -85046,55 +82365,55 @@ dDB dDB dDB dDB -dDB -tYT -aJq -aJq +gGy +cMG +bTI +jnI +gya +qBM +ael +wcF +eqr +mUe +vvw +cwf +pjk +rdt +pjk +fRM +pjk +pjk +pjk +qfK +fAD +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +uju +osp +lRy +klg +lRy +lRy +lRy +klg +gjU +eyY +civ +gbh +ybO +ybO +bNq aJq aJq aJq aJq aJq -tYT -blb -vmL -wBo -mnx -ylK -aRS -gKs -hXt -mXm -mXx -vUh -bJN -hYC -pwv -pwv -xzm -xzm -glJ -ooe -bdb -mxc -sNc -xzm -xzm -pwv -pwv -hYC -jrb -dZX -bDO -qqr -bkI -ybO -gBh -gBh -gBh -gBh -aJq -aJq aJq dDB dDB @@ -85303,53 +82622,53 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq +gGy +wBo +wBo +wBo +wBo +hTz +vOg +iaB +jHM +jdR +kKX +fDf +cjD +gMV +whm +iDP +pUQ +pZp +pjk +gbh +fAD +gAQ +cwf +cnC +cnC +cnC +cwf +xPq +lRy +uju +lRy +qRb +cwf +cnC +cnC +cnC +cwf +amb +fAD +civ +urh +pUQ +pZp +bNq aJq aJq aJq -tYT -tYT -vmL -xRv -roc -qUd -jwC -vDD -gKs -ydI -ijP -ivT -gCP -sWE -hYC -gjP -quP -lrL -hYC -hYC -pDH -cwf -fXe -hYC -hYC -lMg -tSi -vnz -hYC -dYY -ijP -ulf -gCP -nkp -kvb -gBh -gBh -gBh -gBh aJq aJq tYT @@ -85559,55 +82878,55 @@ dDB dDB dDB dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq +vnZ +evw blb -vmL -aJq -vmL -wBo -nHR -fYo -jVI -bBd -sUk -apd -fJt -chb -hqm -uhh -gCR -lOk -cVS -kDY -kyg -xSi -tic -neM -bRc -kDY -cVS -bSm -qxz -mRA -hvZ -xHT -fJt -vPY -wPt -bNq -cmf +blb +blb +blb +blb +giq +pit +nlR +seq +hNq +cwf +sUr +oVm +fjf +fjf +qmD +bPU +kbL +dkv +fAD +jXH +ybO +ybO +ukP +ybO +ybO +wtJ +lRy +uju +lRy +hQG +ybO +ybO +ukP +ybO +ybO +tAp +jUy +eOY +aiI +rfT +iPd +ecq fYU -gBh -knv -knv +aJq +gcs +gcs vmL dDB dDB @@ -85816,51 +83135,51 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq pWm pWm -bvt -bvt -bvt -aJq -aJq -tYT -xpf -nqx -fPb -uNO -klL -vtw -gKs -mFZ -exE +pWm +pWm +wBo +jGu +wWm +wWm +mHy +ybO +jTW +hLx +pjk +pjk +pjk +wBy +kEW +wBy +fAD +vZd +oDS +iEo +ejO +kvz +ybO +sfB +lRy +uju +lRy +avd +ybO +uQo +rYD +lJq +brG +uBE +wLw +mgR pjk -wWP -dlk -qUN -paW -eOh -paW -nxO -pXc -nlI -iTZ -xTM -pXc -nxO -paW -qbv -paW -yac -tHY -efl -xoz -gro -mnA +jIA +kRi bNq -qeq xLy cvJ ueX @@ -86069,55 +83388,55 @@ dDB dDB dDB dDB -aGa dDB dDB dDB dDB +gGy aJq tYT -hjj -itv -wHL +kGn +wzv +byt lOM -bvt -aJq -pnl -vmL -xpf -lVW -cdW -smd -jdU -ihj -gKs -pIB -wNi -tFB -mKK -tnH -vcR -fxV -wJn -pGt -uJC -rbg -qYp -tzh -rao -rbg -uJC -qNN -eOP -qNN -fFu -oDa -umn -bPU -wlS -akU -bNq -vlC +wBo +cTY +veR +pit +ggz +ybO +ajg +hLx +pjk +oVm +fjf +sRW +fjf +itr +hWa +wFK +ybO +qOr +kFK +uSc +nrn +mjt +lRy +uju +lRy +sHI +nrn +jNu +uGF +wyM +cor +bfU +wLw +weY +udH +jIA +gbh +taT nHd lyR qDJ @@ -86326,55 +83645,55 @@ dDB dDB dDB dDB -blb dDB dDB -eNm -bTd -qlk -hRF +dDB +dDB +pic +aFH +vmL kGn pFK cXu kYI -pWm -pWm -pnl -fuC -xpf -sRf -fPb -tQZ -jNL -fEr -pUK -vjK -rVA -bPU -yii -kXf -hvo -kQr -bNg -kQr -pPH -cTu -pvP -nhe -nqi -aEy -uyB -wAM -eEX -kQr -etX -wXV -xHT -lGq -sqB -fJP -eDe -viw +wBo +wBo +wBo +ulC +hNq +ybO +pjk +lmo +tmO +qav +epm +gNa +pEp +fPK +dJB +asf +nrn +dKY +uTN +kvz +ybO +wwv +lRy +uju +lRy +nQc +ybO +uQo +ueP +vpz +nrn +bqc +soU +fwV +wjR +jIA +htg +bNq aIk eiU slY @@ -86407,7 +83726,7 @@ mnZ kdH nJU kEA -smJ +kQe ouR oRr kdH @@ -86583,12 +83902,12 @@ dDB dDB dDB dDB -blb dDB -mys -blb dDB dDB +dDB +dDB +wZs tYT pWm pWm @@ -86597,41 +83916,41 @@ pWm pWm pRw pnl -nSo -cPB -mPe -wBo -gKs -fpF -gKs -gKs -aOb -utf -jfk -mFD -mrW -hYC -wVh -hFK -ubh -hYC -fuB -soo -qFw -sbf -pfD -hYC -uUp -nIL -lNC -hYC -wyU -rkk -blZ -rxs -upf -bNq -gBh +pxz +yei +ybO +ybO +qKA +cnC +qKA +jZl +jZl +ttL +nwK +ttL +jZl +jZl +jZl +jZl +jZl +jZl +qPk +qPk +eEj +qPk +qPk +cGV +cGV +cGV +cGV +cGV +kUN +kjW +kjW +fcE +ceN +cDV +kUN ybs knv knv @@ -86840,59 +84159,59 @@ dDB dDB dDB dDB -blb -mys -blb dDB dDB dDB dDB +dDB +wZs +dDB vmL pWm jUx jUx wzv jUx -pnl -xuX -bOb -uzI -hpi -dwP -jNr -tsR -gKs -obd -exA -vAb -tSg -nYP -xae -qol -mTt -qol -xae -qwc -ikf -fLj -rUa -csB -xae -uXI -iaW -vZM -xae -wvT -jBW -okg -vKs -ffE -bNq -gBh +wzv +wzv +fjh +dfd +ybO +jbE +ukP +ooo +jZl +wmq +wmq +wmq +wmq +vMI +pKW +kiP +wmq +dYv +jZl +feu +nfn +dAu +bGX +jhj +cGV +tkU +ocZ +pqr +tkU +kUN +cSc +tKn +eWr +xcW +prP +kUN ybs knv -gBh -gBh +aJq +aJq aJq tYT dDB @@ -87096,13 +84415,13 @@ dDB dDB dDB dDB -dDB -tmL -blb -blb -blb -cLg -blb +ndm +vnZ +ipq +ipq +ipq +lDo +qKH blb blb tGK @@ -87110,46 +84429,46 @@ pWm pWm pWm aap -pnl -pnl -wqP -pnl -pnl -iXx -pnl -wqP -pnl -bBy -nsa -cgz -nsa -bBy -xae -xOR -oPg -aiL -xae -csB -opc -xRa -ozM -spa -xae -gPf -xef -xme -xae -vIF -bYY -nBM -bpv -vIF -bNq -cmf +wzv +wzv +fjh +wzv +ybO +dpH +kNv +gAy +jZl +bKK +pET +pET +lRK +pET +pET +tfD +gyj +gyj +cRo +tnh +vHX +fIe +kHp +cCV +gBK +jSm +nEG +scP +bYV +teo +nqN +hBi +bzF +gzM +svd +kUN liX jqd lxP -gBh +aJq aJq aJq dDB @@ -87187,7 +84506,7 @@ fLF ahr nFX nFX -ozn +cdC pSP mhk mhk @@ -87354,7 +84673,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -87367,46 +84686,46 @@ aWx oFc qcF jUx -fbs -gKF -uPf pWm -dzD -pAa pWm -pRw -pnl -xNE -soC -mom -cWQ -pgU -xae -xae -xae -xae -xae -pYP -dyt -qtP -vEZ -gIr -xae -xae -xae -xae -xae -eWj -jMy -uvo -dJU -cla -qyb -bNq +uEH +dfd +ybO +ybO +ybO +ybO +jZl +bEG +rCk +uQI +oBF +uQI +xEx +uEZ +jDi +dYv +jZl +mbP +din +pMq +iHE +lps +cGV +pUA +bPk +mSl +qJL +kUN +rkM +isC +bPd +vDG +rry +kUN olj cmf gBh -gBh +aJq aJq aJq dDB @@ -87611,7 +84930,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -87624,46 +84943,46 @@ qQF lgr fFO wzv -pWm -pWm +wzv +wzv yil -dbo yil +wfB kNn yil kNn -pnl -rlk -wby -juF -chf -lSF -nsa -lpT -uOL -iME -nsy -beg -adV -beg -jIa -beg -beg -dIZ -lRz -xQS -fKA -fKA -oUq -sav -gIM -amH -hSj -bNq +jZl +oqq +tmK +qMj +eLF +uBP +gGO +uEZ +jDi +nXv +ttL +pnH +dPW +cAv +iCx +pQP +mzx +dcK +cwj +izF +pdA +kjW +fap +uqg +cjS +gqS +kmL +eKU olj gBh gBh -gBh +aJq gcs blb blb @@ -87868,7 +85187,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -87889,34 +85208,34 @@ pWm pWm mMF mDb -pnl -cSP -kgW -uJU -hNU -mBq -bBy -yhS -gCp -uah -beg -glO -lda -ybC -uGB -vja -ssP -ioN -qPO -oYN -dNM -lPw -wDF -qid -bkO -nHP -xoV -bNq +srw +tXF +qaU +yew +ukf +vLX +fvv +uEZ +jDi +gxA +ttL +fkr +dPW +vCp +moN +kWY +mzx +dcK +cwj +izF +twA +kjW +xcW +hMQ +tNm +nWa +iua +kUN bJK dez gBh @@ -87965,7 +85284,7 @@ cXb sry uoR neF -hHy +hed hAB jCm iSD @@ -88124,13 +85443,13 @@ dDB dDB dDB dDB -dDB -bre -blb -blb -blb -cLg -blb +ndm +aKm +ipq +ipq +ipq +lDo +aFH blb blb pWm @@ -88146,35 +85465,35 @@ bvt bvt bXb yil -dfz -ymj -wzB -xvb -pbT -nBd -kLv -nBd -ibB -ibB -beg -fKR -owd -dYw -oQs -wGo -gKz -sio -hqr -uqG -iql -wmd -iSE -lJF -sTW -mTC -bNq -bNq -cmf +fTJ +qpp +tmK +uBP +dBT +qMj +gGO +uEZ +jDi +jBg +ttL +glo +dPW +vCp +moN +kWY +mzx +dcK +cwj +izF +eyW +kjW +fap +kti +iwR +oQK +dFG +kUN +cvJ olj knv aJq @@ -88219,7 +85538,7 @@ iHT pRc mhk pbw -rpF +qzP neF hmC xZe @@ -88382,12 +85701,12 @@ dDB dDB dDB dDB -oua -dDB -dDB +blb dDB dDB +wCc dDB +wZs dDB dDB tYT @@ -88403,35 +85722,35 @@ bvt bvt vcm oii -pnl -uGS -aIE -dOY -wZk -bWk -bBy -sdF -eAC -aHb -beg -xQt -xih -fLy -kNG -jzJ -sqg -gub -uyS -iKK -uqA -vMo -vdB -kDj -thI -hnG -cmf -gBh -knv +jZl +sZP +wvZ +mDS +uFe +mDS +hal +uEZ +jDi +jHJ +ttL +fkr +aJP +dFA +cOI +uIu +mzx +dcK +cwj +izF +ohf +kjW +xcW +lkN +rjw +vSt +kOH +kUN +cvJ aIk knv aJq @@ -88477,10 +85796,10 @@ kwy mhk bBh qzP -tBk -keL +krF +sOi tts -tBk +dRn keL iSD rnr @@ -88639,12 +85958,12 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +wCc dDB +wZs dDB dDB tYT @@ -88660,35 +85979,35 @@ bvt bvt bvt oii -pnl -opo -sID -dxr -dpk -xdl -nsa -niv -jRR -niv -beg -qXd -pft -kwr -ydV -shK -pzi -vpS -iqY -vnp -vIF -jrS -qAR -eIv -eKU -bNq -bNq -gBh -knv +jZl +gmv +jrD +jrD +jrD +jrD +ggJ +ibP +lxm +wgj +ttL +foh +exF +yey +aZp +ioQ +mzx +qaX +xJT +sMB +gbT +kjW +qdU +vuV +xLS +lfq +cHt +kUN +xxt liX knv aJq @@ -88736,11 +86055,11 @@ fme flw apq bJx -hHy +miF sMj vqF iyR -xYD +kiY tev wBm wXk @@ -88896,12 +86215,12 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +blb dDB +wZs dDB dDB tYT @@ -88917,36 +86236,36 @@ bvt bvt bvt yil -pnl -wQa -tgD -vyM -hmB -slC -pnl -wqP -pnl -pnl -beg -prI -cVM -mvn -jwM -prI -beg -bNq -bNq -bNq -bNq -bNq -bNq -bNq -bNq -gBh -gBh -gBh +jZl +wFZ +oLc +jDi +jDi +jDi +jZl +srw +jZl +jZl +jZl +xck +cag +xck +bJH +xck +cGV +cGV +cGV +lwK +cGV +kUN +hhr +kUN +gUQ +kUN +kUN +kUN knv -aIk +tZE knv aJq hwJ @@ -88992,11 +86311,11 @@ iLH oyz tmi klN -tBk +nDj miF -keL +oiZ lvJ -ahl +xYD gRm rmk wBm @@ -89153,12 +86472,12 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +blb dDB +wZs dDB dDB dDB @@ -89174,36 +86493,36 @@ bvt bvt pWm oii -pnl -bFr -aFU -mgz -vSh -bbp -pnl +jZl +jDi +jDi +jDi +jDi +jDi +jZl oCE oCE lYH fGU bYl -onv -gcM +ksM +cKy tAm iQr kfv vgp -jhk +hrx hrx hrx lLe -mid +emg knv -rQH +hFd wdo tkN gBh -knv -ovt +cvJ +ybs knv knv knv @@ -89249,9 +86568,9 @@ mhk jSJ tOd qzP -tBk +nDj miF -keL +oiZ xPs qOb iQp @@ -89410,12 +86729,12 @@ dDB dDB dDB dDB -cBX -dDB -dDB +blb dDB dDB +wCc dDB +wZs dDB dDB tYT @@ -89431,13 +86750,13 @@ bvt bvt pWm yil -pnl jZl -iXn -lix -aaA +urP +kLr +wkj +tuu +kHd jZl -pnl oCE pWm pWm @@ -89452,7 +86771,7 @@ bNq bNq knv knv -hgV +lZr wDM uaZ fTf @@ -89472,7 +86791,7 @@ dDB dDB dDB slY -iVW +rhm cis slY slY @@ -89508,7 +86827,7 @@ ugI rYs dPx nqY -keL +oiZ iSD fGW bIJ @@ -89516,14 +86835,14 @@ cdB wAW rpB jzr -rpE -tAF -vnr -caD -buc -alg -qwK -xjU +qMw +iEi +dTQ +cVO +uxY +czu +dny +doi fEC kJJ qVP @@ -89667,14 +86986,14 @@ dDB dDB dDB dDB -eNn -blb -blb -blb -blb -blb -blb blb +dDB +dDB +wCc +dDB +wZs +dDB +bSo aJq aJq aJq @@ -89689,11 +87008,11 @@ bvt pWm qjp kNn -pnl -pnl -pnl -wqP -pnl +jZl +jZl +jZl +srw +jZl tOc oCE pWm @@ -89762,25 +87081,25 @@ mze mhk feL peU -iSD -dPx +cxz +vUS miF -keL -iSD +lFm +szC iSD iSD iSD wBm wXk pEO -xOS +nRa rQC von pvC aLS wzS wzS -tAu +pPx fEC rui qVP @@ -89923,28 +87242,28 @@ dDB dDB dDB dDB -dDB -eNn -kAG -kQo -kQo -kQo -wJa +aGa blb -vmL +blb +blb +wCc +blb +wZs +blb +ofx aJq aJq aJq bvt -pWm -pWm -pWm -bvt -bvt -bvt -pnl -pnl -wqP +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +sXY kNn oCE vxX @@ -90019,18 +87338,18 @@ mze mhk fgT ycb -aWr -dPx -miF +nDj +jlC +wha oIL -hHy +lFm kzV -hHy +uaa eYB mIE wXk glM -oMF +ldl yea vrf von @@ -90181,29 +87500,29 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -vrK blb +dDB +dDB +wCc +dDB +wZs +dDB vmL aJq ayK urz -pSQ -pSQ -mfU -wiR -wiR -wiR -mLD -tlC -mfU -pnl -pUR -jUx +urz +urz +sUM +gPv +oTZ +whn +avT +cYt +nMk +ayK +wIG +ayK pnl pnl pnl @@ -90275,11 +87594,11 @@ mhk gLV mhk bTo -sNA iSD -dPx -miF -miF +nDj +vUV +hmH +tBk miF miF miF @@ -90287,7 +87606,7 @@ juP wAW lqq ckP -cQI +xht yea yea vJn @@ -90438,31 +87757,31 @@ dDB dDB dDB dDB -eNn -ojK -sQa -lxO -sQa -osu -vuk +blb +dDB +dDB +blb +dDB +wZs +dDB ayK ayK ayK -lhZ -kXj -xYG -wiR -ouj -pCQ -oUz -cMZ -pnl -tlC -pnl -xaK -pnl -pnl -neL +gxd +oks +dlj +cYt +kMe +kMe +kMe +kMe +oJm +jeF +vZu +jeF +mWB +rDV +vsf fHD agR dgV @@ -90474,13 +87793,13 @@ uOk nmH sHO ojz -sLu -urE -ess -mFH -vfG -oSw -jyl +hlC +srx +oOs +ehd +djX +jmN +qUJ bNq pkB sCm @@ -90533,19 +87852,19 @@ xsD srn xxj cSb -iSD -dPx -miF +nDj +dkh +hHy fMX -wha -wha -wha -mkz -hla +cxz +cZs +cZs +eYB +mIE wXk uQK -iXZ -vpg +mwK +kyE yea vJA vKa @@ -90695,49 +88014,49 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -luC -lOC +wCc +dDB +dDB +rpi +rpi +vbM +rpi jkV cYt gyt -gQK -tjH -xYG -dEA -kWK -bhb -hEt -qMu -ouj -tXS -uus -wNA -ceA -rDV +cYt +cYt +cYt +cYt +kMe +kMe +kMe +kMe +kMe +lWV +mWB +iSt +iSt +ltU ugF eTj -gtU +hDu uJH tHa -noU -bxu +jeV +xFf xta cbj bKl cqM dgm -wIu -oHO -sDo -fhX -lsd -jJu -kya +kEo +hkd +hkd +hkd +hkd +eue +dfT bNq muy hAN @@ -90779,7 +88098,7 @@ yjc vLP oyZ lIq -uwX +lYt mhk xYJ lwC @@ -90789,12 +88108,12 @@ mhk fpN mhk kZj -kzz -iSD +xyt +apq nrp -miF -keL -iSD +wXt +fYe +uzm iSD iyR rya @@ -90952,55 +88271,55 @@ dDB dDB dDB dDB -eNn -sQt -sQa -sQa -sQa -uMV -qmo +wCc +dDB +dDB +blb +dDB +wZs +dDB ayK ayK ayK -kpq -qsa -uPN -vIp -iAS -vEQ -jph -kTu -bnq -tRj -pgr -cUa -hyx -cDE -fCW +evW +mWB +mWB +cYt +kMe +kMe +kMe +kMe +nDJ +lWV +mWB +wjw +kMe +tDu +ccA oPa sXE qKx xed -rbp +uLk vrh eat oYv jJg bsG wqW -jad -hUh -hUh -uXS -nTK -uGy -mMH -qZE +cQV +tdb +tdb +tdb +tdb +qyr +mLZ +vHU lER hRO knv rKZ -cGG +mGn lvK jiC vdw @@ -91045,15 +88364,15 @@ mhk ozt mrn vRn -wku +ani bKv jCm dPx miF -keL -iSD +yhX iSD -uOz +iyR +lkJ qzP wAW yiY @@ -91209,49 +88528,49 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -lUu -blb +wCc +dDB +dDB +wCc +dDB +wZs +dDB aJq ayK -aKb -uUG -aEq -xYG -ouj -ouj -ouj -iyl -fZL -ouj -gxK -aWG -trA -wEc -rDV +oks +gxd +gxd +mWB +xqL +kMe +kMe +oYF +kMe +kMe +cYt +mWB +sHg +pjX +ffL tmk wzF gom gzs ilz -noU +jeV hFA gkW rmM btV lMl ayR -erJ -vDg -euP -all -eWf -eIx -oHJ +kEo +aQX +aQX +aQX +aQX +oRW +qsr bNq wxG uIX @@ -91303,11 +88622,11 @@ sNW jQv mhk oOC -qXr +xYD dhu kZI miF -keL +yhX jCm hOO lzG @@ -91466,29 +88785,29 @@ dDB dDB dDB dDB -eNn -rMs -qrc -uFy -uFy -kVK -blb +wCc +dDB +dDB +wCc +dDB +wZs +dDB aJq ayK -xYG -pTt -xYG -xYG -ccL -unG -ouj -rmD -eZt -ouj -xYG -ufR -xYG -xYG +ayK +ayK +lQU +ruR +lQU +ayK +lQU +lQU +lQU +ayK +lQU +ruR +lQU +ayK rDV mOx dwC @@ -91502,13 +88821,13 @@ nra hGp sHO drI -cRq -rbl -tcA -uKO -vfG -lGJ -mAK +kEo +eAE +klG +cHh +klG +jLv +jSE bNq hOX fEU @@ -91561,12 +88880,12 @@ jQv mhk rqF aFb -fVF -kZI +qzP +sQy miF -keL +yhX iSD -iyR +ani cLL rPW wBm @@ -91723,29 +89042,29 @@ dDB dDB dDB dDB -eNn -blb -wkU -blb -blb -blb -blb -vmL -aSV -hMb -fuT -lgc -sbG -qDv -eVm -lPW -htQ -tMm -fWe -hxG -iXg -tSV -xYG +wCc +dDB +dDB +wCc +dDB +wZs +dDB +oma +sjG +pXv +ouJ +bzc +bzc +bzc +jdX +ikC +bhN +aRx +jdX +bzc +bzc +bzc +jrv rDV rDV rDV @@ -91816,14 +89135,14 @@ mhk mhk ete mhk -ani +dlB wJT sGk kZI miF -keL -iSD +yhX iSD +ani eln jlW wBm @@ -91980,38 +89299,38 @@ dDB dDB dDB dDB -fJX -blb -tCc -blb -bSo -bSo -blb blb +dDB +dDB +wCc +dDB +aKm +dHW +aFH ayK -iJO -bdd -prV -hdT -ktL -eLZ -uCL -pss -sed -drF -fZV -bcZ -kLk +rzb +aNd +aNd +aNd +aNd +aNd +lrQ +osw +dYE +aNd +aNd +aNd +cay +nlj ejN -xZb -rCU -lfQ -eld +rbI +kZr +ftT ejN ejL feo oVt -mUI +aQx rFb rSW wPM @@ -92073,12 +89392,12 @@ vMP vMP eRy mhk -pbK +iSD keQ -qzP -kZI +cxz +vUS miF -keL +yhX iyR sSN ttb @@ -92106,7 +89425,7 @@ xfN daq xFe lgh -psk +dYc nlf yjd xFe @@ -92237,38 +89556,38 @@ dDB dDB dDB dDB -eNn blb -wkU +blb +blb blb uqe uLW blb -blb -aSV -xug -dxu -isv -sbG -njH -uJd -xQr -xQr -xQr -xQr -xQr -bYe -aPB -qDA -bIi -oet -cYU -bIi -qDA -bLu -hkG -hkG -way +aKm +fxp +nKe +guh +cBl +fJe +aJb +cay +fMB +maK +iWD +cay +aJb +cay +oCb +mct +ffK +gjE +aTB +hXc +aUb +vud +efi +efi +nGP vuq faQ uaT @@ -92331,14 +89650,14 @@ mhk oTH mhk lji -ttb -qzP -kZI +wZD +nDj +sRF miF -keL +yhX lmm lkJ -nxK +iQp fVF wBm fNW @@ -92494,33 +89813,33 @@ dDB dDB dDB dDB -eNn -blb -wkU +wCc +dDB +dDB bSv sQm sQm wNU aci ayK -ayK -ayK -ayK -ayK -aUR -qdJ -xQr -snm -izT -emC -xQr -roe -xri -xYG -xYG -vdS -hox -orb +gBB +rZo +icF +xUK +dTo +dTo +sTJ +imO +qmT +dTo +dTo +dTo +gwf +lCb +rQi +jWC +eUx +xgd wfn eDo ecY @@ -92587,15 +89906,15 @@ kbk mhk mhk mhk -oOC -lPq -uCB -kZI -miF -keL +sZA +xyt +nDj +fiW +cfb +yhX jgq hYh -qXr +ahl oul wBm dcD @@ -92751,32 +90070,32 @@ dDB dDB dDB dDB -eNn -blb -wkU +wCc +dDB +dDB osa vrT vrT blb osa blb -vmL -hdT -bsJ -iGc -lfI -xYm -xQr -gzL -aGc -gzL -xQr -ezG -pGi -fEi -xYG -xYG -xYG +ayK +tpW +scU +dyI +dyI +dyI +jhB +bbB +pys +dyI +dyI +dyI +tpW +pUM +ayK +ayK +urz xYG tNV hss @@ -92784,7 +90103,7 @@ lYF uBj nRA wnR -dLj +eVC gKL jOi rNI @@ -92842,14 +90161,14 @@ qBz qTR kym rHD -qVR +dTe wCR -ani -gUN -iSD +jRz +qzP +nDj kVg -miF -keL +oUb +yhX bQd ani hKZ @@ -93008,35 +90327,35 @@ dDB dDB aan dDB -eNn blb -jia -gBe +blb +blb +bWl sQm sQm aci bWl wNU -wNU gfA -lFT -eUR -hTC -wWb -qjq -xAW -npL -czf -hwG -uCE -jhJ -tTK -aZu -fBZ -abR -xYG -wfn -lFH +wXL +ipN +szg +tIR +dFY +pMM +tIR +hCT +kAz +cKm +szg +tpW +pUM +kMe +kMe +fGf +ayK +izf +aWA ugA tIN hEl @@ -93102,10 +90421,10 @@ qmz uvb wCR swM -mEb -iSD -kZI -miF +jlW +lFm +ftC +oUb vXd iSD gVL @@ -93265,35 +90584,35 @@ dDB dDB dDB dDB -eNn -blb -luC -amV -vrT +wCc +dDB +dDB +bSo +osa lBp sYg +rpi blb -blb -blb -hdT -qJN -oaB -oZQ -nbj -nVe -son -ieM -miN -pkd -egR -jhJ -kJs -lyX -rjE -pFS -keY -wfn -nuu +ayK +tpW +mss +nBP +ibX +irR +hDd +nPl +hCT +cLw +ibX +nBP +oTf +pUM +kMe +qkq +wRy +ayK +goS +aWA thb oxc rwJ @@ -93358,12 +90677,12 @@ kym rHH oUJ wCR -aQc -iSD -iSD +oOC +iRE +rya kZI -wtV -keL +oUb +yhX iSD ojA uPW @@ -93522,34 +90841,34 @@ dDB dDB dDB dDB -eNn -blb -luC -amV -vrT +wCc +dDB +dDB +bSo +osa uqe uLW -bSv -wNU -wNU -gfA -tNH -lae -xrm -bxs -tVN -uAT -aLu -xOJ -tiU -egR -wxp -ycW -snX -aSc -fqQ -odE -wfn +rpi +blb +ayK +rxJ +wLU +szg +jWr +dFY +pMM +bSk +hCT +nAJ +jWr +szg +oTf +awH +gAV +qkq +wRy +ayK +vDS aWA lVv nHq @@ -93615,12 +90934,12 @@ kCB rJo sas wCR -cXb -iSD -iSD -lPB +rTn +xPp +uoR +kZI odH -keL +yhX iSD gOt bYh @@ -93656,7 +90975,7 @@ xur xur iYY xur -lik +leB dYj wuc aTn @@ -93696,7 +91015,7 @@ dDB dDB dDB qyN -gCx +kgu wOl dby ktT @@ -93779,35 +91098,35 @@ dDB dDB dDB dDB -fJX +wCc blb -wHH -nIK +blb +bSv sQm sQm qZm -osa -blb -onb -xnA -oSF -iPg -dbN -ayx -vFW -qbR -rhg -ilN -kBD -dvO -miR -nhE -gWJ -jqh -vJe -xYG -wfn -mpE +bSv +vnL +qEy +iHa +rXm +dyI +dyI +ozQ +ozQ +xAx +brA +brA +dyI +dyI +oTf +pUM +kMe +qkq +wRy +ayK +swK +jTf nCC rDc qQi @@ -93875,9 +91194,9 @@ wCR rik hyW iSD -lPB -miF -keL +kZI +oUb +yhX mye lZT uoR @@ -94036,33 +91355,33 @@ dDB dDB dDB dDB -eNn -blb -ppr +wCc +dDB +dDB osa vrT vrT blb osa blb -blb -hdT -ilB -koV -sjZ -dkR -tSN -lrD -kGm -oaJ -caB -tyu -cjP -oWE -tMJ -rAH -aZf -xYG +ayK +tpW +wLU +nLJ +nLJ +dyI +eHS +tIR +uMF +dyI +kRV +kRV +oTf +pUM +kMe +lgD +gHm +ayK nXC nmi cED @@ -94133,7 +91452,7 @@ iSD tzN pnK dbZ -wha +wQw bej spk iSD @@ -94293,33 +91612,33 @@ dDB dDB dDB dDB -eNn -eoU -aNc -gBe +wCc +dDB +dDB +bWl hHV sQm wNU qZm -yjE -yjE -yjE -yjE +dDB +ayK +tpW +wLU +cBd +cBd +dyI +ozQ +xAx +brA +dyI +oer +oer +oTf +eFi +ayK +ayK +ayK ayK -pbj -cKv -xQr -eqB -nGt -eqB -xQr -gDe -eIX -xYG -xYG -xYG -xYG -xYG wfn wfn osT @@ -94550,33 +91869,33 @@ dDB dDB dDB dDB -eNn -luC +wCc blb -amV +blb +wCc lBp sYg -eNm -bTd -gQI -wEU -nEL -fBy -yjE -pqo -auQ -xQr -pdh -mcT -rjr -xQr -txS -lFE -gWl -ezQ -hkT -uNk -rUs +blb +blb +dDB +hdT +tpW +vNO +whZ +qUR +qUR +wcY +xLF +iiE +mib +mib +mib +xbo +jCH +kut +wDn +jyF +rzm gBA sSB sHM @@ -94635,7 +91954,7 @@ frI frI oyp mXZ -eWQ +mUm mAR qWG fkS @@ -94807,36 +92126,36 @@ dDB dDB dDB dDB -eNn -jxh -voO -ccx blb -mys dDB -blb -xQG -xBH -yfa -tsl -yjE -taK -chr -uvB -mRY -yjN -jGk -dOU -vFf -ioX -xdJ -iCr -pmA -pmA -stm -xdJ -sEj -qjx +dDB +wCc +dDB +dDB +dDB +ayK +ayK +ayK +tpW +udO +aNd +aNd +aNd +aNd +aNd +aNd +abc +aNd +aNd +aNd +doc +tQR +tGF +fJn +nnz +tLp +boB +cOJ iqB phY jmZ @@ -94903,7 +92222,7 @@ jpu foe jpu lKA -amh +uDB jpu jpu fXJ @@ -95064,33 +92383,33 @@ dDB dDB dDB dDB -xjc blb dDB -blb -mys +dDB +wCc dDB dDB dDB -vxt -vxt -nQk -vxt -yjE ayK -xOO -cEH -lvG -lvG -lvG -nGm -mTi +lsF ayK +rzb +qme +aNd +aNd +aNd +aNd +aNd +aNd +wqz +wqz +wqz +wqz +xKe yjE -yjE -pqH -gXn -wfn +rNG +whK +cTK jKU jKU jRU @@ -95159,8 +92478,8 @@ dKm rEJ fUC fUC -fUC -fUC +ifu +aSW fUC fUC fUC @@ -95320,30 +92639,30 @@ dDB dDB dDB dDB -dDB -dDB -mxX -bTd -ihA -dDB -dDB -dDB -dDB -dDB -vxt -yfa -qGk -oEb -yjE -hlM -irZ -sDh -rrG -rrG -gDq -qqJ -yjE -thg +aGa +blb +blb +blb +blb +rpi +rpi +rpi +ldG +mWB +sCC +ryr +vgf +aeG +dzh +cvc +buI +kjs +xUK +vni +uAM +lHd +nHH +xTr yjE dGV fDO @@ -95425,8 +92744,8 @@ wMg xeO xeO cUf -gNP -uQK +rEW +nsD iUH isK uBc @@ -95580,27 +92899,27 @@ dDB dDB dDB dDB -blb -dDB dDB dDB dDB dDB dDB -vxt -uUA -iok -dsE -yjE -fXo -yjE -yjE -evm -yjE -yjE -yjE -yjE -yjE +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +lwO +ayK +ayK +ayK +ayK +ayK yjE eIT whl @@ -95673,8 +92992,8 @@ waI xeO tnZ oPy -lql -lql +omq +pKx cik wKr dsl @@ -95682,8 +93001,8 @@ wMz ntP rNL xeO -gNP -uQK +rEW +qSk hWm fvh abB @@ -95837,7 +93156,13 @@ dDB dDB dDB dDB -aGa +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -95845,19 +93170,13 @@ dDB dDB dDB vxt -yfa -uUA -uUA -yfa -afB -rWQ -idH +nST evM -mWs -xCR -lHh +aOa +rtX hVq hVq +bUF yjE oIF tit @@ -95941,7 +93260,7 @@ wFd nEq qie oCV -kuk +emF iuR iuR dDB @@ -96101,23 +93420,23 @@ dDB dDB dDB dDB +dDB +dDB +dDB +dDB +dDB +dDB +vxt +nST +nST +nST vxt -vRH -vRH -hJs yfa -bwY -yjE -cYL -aEP -auc -yjE -vnI -vnI +yfa hVq yjE -xcS -bAU +okD +hVz gwl pPm jKU @@ -96358,19 +93677,19 @@ dDB dDB dDB dDB +dDB +dDB +dDB +dDB +dDB +dDB vxt -xQG -vxt -xQG +cYL +aEP +auc vxt -xQG -yjE -yjE -yjE -yjE -yjE -vnI -vnI +yfa +yfa hVq yjE uCH @@ -96440,7 +93759,7 @@ rpg jVM hdI kRA -paJ +pKx wMg iZM fEX @@ -96453,7 +93772,7 @@ iLh hEJ hEJ aIi -qWV +bMV eZi kHX tYX @@ -96615,19 +93934,19 @@ dDB dDB dDB dDB -vxt +dDB dDB dDB dDB dDB dDB vxt -aJq -aJq -aJq -vnI -vnI -vnI +gcs +gcs +gcs +vxt +vxt +vxt hVq yjE yjE @@ -96696,8 +94015,8 @@ jVM eAm jVM uCo -bYE -rYJ +lql +pKx xeO gLg jdx @@ -96879,12 +94198,12 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq +bSo +bSo +bSo +bSo aJq -vnI +vxt hVq hVq ayO @@ -96942,9 +94261,9 @@ uVT uVT uVT vET -nAy -uIv -jVM +ncL +wQB +jVx jVM rXy bFO @@ -96952,9 +94271,9 @@ avp avp qiI jVM -aVS -xeO +bLS xeO +rbj xeO sXD qSa @@ -96967,7 +94286,7 @@ wKr kKD mDA wMg -jrN +bMV eZi kHX tYX @@ -97203,15 +94522,15 @@ ncL wQB aaZ jVM -eAm -jVM +avp jVM jVM jVM +tDF jVM -lzB +ipt jVM -udf +yfC yfC yfC yfC @@ -97224,8 +94543,8 @@ yfC yfC yfC xli -qqO -aaf +cVm +sQP ifH iuR tYX @@ -97457,18 +94776,18 @@ wzK eAc lcY kuE -wQB +lqQ esr -jVM -rpg +tAw +rXy jVM eXB eIW -mqz +ptX +hsH +srg jVM -xVB -wLU -jHH +ayT sZo yfC lnN @@ -97479,10 +94798,10 @@ qiC qLU pnF qiC -mKY +yfC hoc lhT -rgY +jbX diP rgM trB @@ -97715,31 +95034,31 @@ uVT lYl kvl wQB -lmz -rXO -rpg +rxD +jVM +jVM +jVM jVM -uGD -nAq -pSI jVM -xVB +pSI jVM +xlU +jRK nrg xXD yfC sJV uIA -mWT -kHU pIC pIC +mWT +pIC oun wBc -kxY +mKY mka -tFE -rlj +vCi +gnL diP trB trB @@ -97958,7 +95277,7 @@ xMk xsh hcc xGJ -tfB +bBN jwi qtd hOg @@ -97974,10 +95293,10 @@ kvT wQB cZi jVM -moG +lbl +bwy +mqz jVM -mLT -wWC gls jVM lzB @@ -97987,13 +95306,13 @@ dEq wEv uJi ntu -jcG -qbA -qbA -hLb +uMJ +uMJ +uMJ +dvd tRJ wBc -oIY +kxY bMV dPp kMA @@ -98231,26 +95550,26 @@ kyO wQB drC jVM -eAm -jVM +lzW +dbJ lMH -uSb -iYd -onc -lzB +jVM +gls +jVM +uZY jVM oEz -ptT +dEq yfC lZf qCK -bRK -bRK -aTz -qRE -ltr +dvd +dvd +gNX +dvd +tRJ wBc -usA +oIY bMV dPp kUL @@ -98489,26 +95808,26 @@ wQB ydz jVM lEO -jVM -jVM -jVM -jVM +eHv +bes +pSI +gls jVM joR jVM vyP xnb yfC -edG -wBc -qiC +edk +wyg +qbA +qbA +hLb +dvd +tRJ qiC -ghj -wBc -wBc -jgx -mKY -bMV +yfC +udW djf kUL tYX @@ -98745,27 +96064,27 @@ rJZ wQB jVM jVM -pXU -avp -bFO -avp -csZ -avp -obi jVM jVM +jVM +jVM +jVM +jVM +lzB +jVM +nhW cJv yfC -yfC -erf -sfb -tkm -yfC -cyP -tQC -yfC -yfC -aub +jqK +dEY +bRK +aTz +bRK +bRK +ltr +qiC +lqh +bMV dPp lir iuR @@ -99000,26 +96319,26 @@ xRU vET rJZ wQB +xZS +tWT +tjs +qqH +qVm +nWV jVM -jVM -jVM -jVM -jVM -jVM -jVM -jVM +uqV ksJ -emp +jVM xym mgW -isO -aiQ -nVw +yfC +edG +wBc jJd -uyV -kcM -eRa -eRa +qiC +ghj +qiC +qiC vfo pkU lUl @@ -99259,26 +96578,26 @@ kTX sbU xZS lHp -tjs -qqH +qwA +jYe kBM blC jVM gLo cTn -ajQ jVM -aLB -ilx -qEO -fQd -oNF -sGN -bzj +yfC +vNM +yfC +yfC +erf +xcz +tkm +yfC tmD -lEs -gQT -uMg +tkm +yfC +yfC msk wmX kUL @@ -99521,21 +96840,21 @@ nlQ chI mTT jVM -jKh -keb -jVM -tGq -tGq -xmt -xmt -lAt -xmt -xmt -xmt -iaI -xmt -xmt -xli +tKS +vQu +vQu +wVN +hQs +rdV +bPy +nVw +qYr +eqI +nHI +cgs +asS +ddT +cXp iFD fzT kUL @@ -99772,27 +97091,27 @@ laK rJZ wQB xZS -dib +sRT woz -uvs -mpx -oxy +auP +kGw +vQx jVM -jKh +jTj +mOr +jgy jVM -tGq -qnP -tGq -sxl -aTg +aLB +ilx +qEO oPh qDL -jKV -vTP -rpo -mjr -xmt -ptf +sGN +bzj +vxA +lEs +jUr +uMg xBd qXP kTF @@ -100008,7 +97327,7 @@ dDB dDB dDB ycC -wKT +omj mPJ mPJ ipD @@ -100025,32 +97344,32 @@ opn jwa opn jYY -prA +ndJ rJZ -wQB -xZS -sRT -hdW -auP -kGw -vQx +eBC +xRV +xRV +xRV +xRV +oum +xRV jVM -lzB +xjQ jVM -haH -ouO tGq -ipG -aTg +tGq +xmt +xmt +xmt cri bOG -uRv -als -cXH -nZG xmt -liw -rzy +xmt +hrl +xmt +xmt +lHZ +eNP qFc cEo tYX @@ -100283,30 +97602,30 @@ jLR jLR xMY dCu -oGt -eBC -jVM -jVM -jVM -jVM -mbf +eXR +wQB +rHl +sVO +lbi jVM +jTn +xXe jVM ulE -jVM +bvP amK -ooR -rzH +kjx +xmt mog -aTg -yji -iBB -iBB -ldo -aTg -aTg -duK -sWq +cCM +gbj +vwW +iId +vTP +rpo +mjr +xmt +vEk gLO pbD kUL @@ -100543,27 +97862,27 @@ dCu rJZ wQB xAV -ngv +txW nCX jVM tUj -xXe -jVM +qkm +qkm ruS -sem +jVM bxl -ujk -tGq -rmV -aTg -vPW -qxG -iBB -ldo -aTg +bMn +xmt +uYM aTg -duK -bIN +pkQ +bBL +uRv +als +cXH +nZG +xmt +liw bVJ sTb kUL @@ -100761,7 +98080,7 @@ hJp wct wct iWV -yfP +uVH wct isj isj @@ -100784,7 +98103,7 @@ ycC ycC noq ueC -sjy +tJF qoD jnZ jEx @@ -100803,24 +98122,24 @@ vpT txW eDi jVM -tUj -jVM +uZY +mnH jVM tpQ jVM ljg -waY -tGq -cME -aTg -dYu +ddF +pEU +duj aTg +rxZ +fhp +oTM +pLf aTg aTg -dYu -ctN -xmt -wUc +aIr +sWq nUd bmY lir @@ -101014,9 +98333,9 @@ cfk fkj dMg cyk -cEs -cKc -eAU +lnM +kZv +cLR cRI dbs fkj @@ -101061,24 +98380,24 @@ xND ind jVM oZy -img -img +jVM +jVM uvx jVM -tGq -tGq -tGq -xmt -ohy -jHl -gqn -gNA -rKo -tnK +iRQ +hWL xmt -xmt -xli -dQY +vfI +aTg +glT +nmC +sJL +sne +aTg +aTg +aIr +bIN +nUd bmY kUL tYX @@ -101311,31 +98630,31 @@ lun wNv mzM wCM -iKB +woK kJR qcB jVM jVM jVM -cCd +wrj jVM -sON +jGy aYj -vkh -vkh -vkh -pnW -baW -iQe -iQe -ssR -ssR -ssR -ssR +sON +ssY +waY +xmt +cME +aTg +dYu +aTg +aTg +aTg +dYu aVA -dfc -vkh -wjT +xmt +wUc +nUd dPp kUL tYX @@ -101568,31 +98887,31 @@ gfs ivl mzM wCM -vqY +ePk tgx jVM -bZY -qED -wzj -kzF -jVM +yfX +pRR +cTn +xlU +eoM oVl uBN -vkh -eNM -vkh -mce -ohK -rrX -tyz -dJv -rVt -rVt +sON +tGq +tGq +xmt +xmt +oTN +fGk +sYS +nPY rVt -scR -sfU -vkh -nUd +elb +xmt +xmt +xli +jOM dPp aOt iuR @@ -101825,30 +99144,30 @@ jxC ufb xCl cYY -qIb +wNs wiF jVM jVM jVM jVM -rgg +oJO eoM cqD -iGd -luv +iBt +hmK dMi -vkh +vun caW -jMA +vkh tes -rPX -ycS -aMZ -kRs +dJv +tvW +qsY +qsY qsY ycS fxW -vkh +jYM nUd dPp aww @@ -102042,9 +99361,9 @@ cfk fkj dPa dZZ -cFz -etD -eDl +qan +sXu +coi eND dbz fkj @@ -102082,31 +99401,31 @@ jye jOs mAv khS -jbs +aqG mwN jVM -bjf -fOo -ojO -mvX +sjK +nFH +hgH +cHG jVM iXW dRb -vkh +sON tjT -svE +rrX lAV fYJ eGU eTJ vkI -xNA +oeZ wuY oeZ luP jFK -hiD -nUd +vkh +ttV dPp aww vtX @@ -102303,7 +99622,7 @@ wct wct wct eNU -qEk +gDc wct gOm gOm @@ -102339,30 +99658,30 @@ quU quU tsF ubK -oQo -oRn -ooC -wJJ +lRM +vuD +qIb +gJD hPb jVM -cCe +tpQ +jVM +jVM +jVM jVM -kPp -dsP vkh -bzJ lnD fzw bKO -eGU -eTJ -luE -kfO +qhR +pPU +xkV +gyy phG gyy -ycS -jFK -tnj +xkV +cvV +vkh nUd dPp aqf @@ -102596,33 +99915,33 @@ liG rRQ tsF kiB -bcN +izP wNW jVM jVM jVM jVM -jVM -jVM -sON -sON -vkh +izu +tpQ +tpQ +jTn +jlA mae ksm opV fVl -eGU +qJz ebk -vkI -vYW +xkV +mDf mDf aYU -ycS -mno -vkh +dao +cvV +spH nUd dPp -qBn +aww nsz iuR dDB @@ -102853,30 +100172,30 @@ jyu ezx tsF vIJ -frm +nHU twJ tgl iSi fLn -mLU -tgl -tgl -tgl -vkh +jVM +jVM +jVM +jVM +jVM kXC -omk +mae hsx pJc -bKO -eGU -xQE -vkI +xkV +oVE +pPU +ecC cIX ofU -omb -ycS -lJm -vkh +xkV +ecC +cvV +spH elN dPp sFs @@ -103110,33 +100429,33 @@ uff mak tsF qlV -vqY +ePk tmQ tgl lut pbd -wtv +cig hxp -qhs +wtv oRv -vkh -cWB -ccv +jVM +kXC +mae tVp ioa fBB -eGU -eTJ -wAa +vgS +pPU +xkV oDX -bFd -iBa -grI -ejX -ove +oeZ +oeZ +xkV +cvV +spH nUd dPp -jjZ +aww bje tYX dDB @@ -103367,33 +100686,33 @@ rth mbp tsF kpF -vqY +ePk wQB tgl lvA nyy diK -xvK +djc jgb hRc +jVM +kXC vkh -mkD -mpB dxV -bKO -bKO -eGU -eTJ -wAa +jDT +fOq +wJv +pPU +xkV cQN bXR -cmB -ycS +gyy +xkV swW -ove -nUd -gbP -nam +vkh +oNW +cSy +bpY sMt tYX dDB @@ -103624,7 +100943,7 @@ jyG meu tsF lAS -vqY +ePk wQB tgl wHO @@ -103633,24 +100952,24 @@ wvv xvK vGe xno +jVM +kXC vkh vkh -mru -vkh +kWF wtw -wtw -pzW +dJv lTy wAa +uUB fIl -fIl -glA -ycS +aYU +pPO jFm -ove +jYM nUd vip -mjG +njT fGT tYX dDB @@ -103881,31 +101200,31 @@ lGK mfP tsF lPo -qIb +wNs wQB tgl tgl -tgl +xHD tgl uIP dsK pHY -vkh -blB +jVM +kXC wKH -lso -wOt -wOt +vkh +hcQ +jcB gGx xtD gIv cAl -wOt -wOt +npI +npI wOt cvX -vkh -aWf +jYM +nUd vip duE aOh @@ -104138,7 +101457,7 @@ lGK jOS tsF vrn -vqY +ePk smf aCO iLA @@ -104147,24 +101466,24 @@ tgl qDd xHD xHD +jVM +jBu vkh -kRf vkh vkh vkh -fap vkh -mib -vfM +jYM vkh -fap -fap -fap +vSI +spH +spH vkh +jYM vkh -bnU +iXu mVc -rjz +lab axd xli qir @@ -104395,7 +101714,7 @@ lGK mgt tsF kiO -pCP +nCt wNW coC pVj @@ -104407,22 +101726,22 @@ aBB nMW tEL rQN -pwO -rZq vpI +rZq +ycX pBu -vpI +khY lvr aGq khY khY khY lmz -tbC +rko diP vip gaj -jXJ +rIW mxS jeW pvY @@ -104652,12 +101971,12 @@ iaw uoB tsF kjg -rvf -ilK -hTp -kPL -iyh -iyh +iZO +awC +gwm +xPJ +pbO +pbO icN mZd sDZ @@ -104668,16 +101987,16 @@ mut pjA mut otJ -iyh -nWa -iyh -gwL -kPL -iyh -oWN -pGr -nWq -gns +pbO +pbO +rfW +mlD +xPJ +pbO +mRB +jSp +klf +oHp huj fIj uhM @@ -104932,12 +102251,12 @@ aPK aPK aPK mcS -nUq +sKm dRT dRT nNz inU -tOC +hmn bcv kov viy @@ -105185,7 +102504,7 @@ fNZ qUt qUt xJB -vYy +xwj vrO vYy xJB @@ -105229,7 +102548,7 @@ vTo wYA wPP uer -pHl +skp tFW xqN rnE @@ -106206,7 +103525,7 @@ bmz mSa tPW qUt -fEw +bxk rex axz qUt @@ -106704,7 +104023,7 @@ xRH gcz wSZ jdp -rlZ +gRG wSZ nNj ujq @@ -106756,7 +104075,7 @@ qDK vEz mGh wfr -cev +wya lHJ vKY lSK @@ -107535,7 +104854,7 @@ toC bGY wCK tDd -xuN +nTz wfr sCp vJR @@ -107978,7 +105297,7 @@ aJq aJq aJq rvp -gZf +fRI iFP iGl hqW @@ -108256,7 +105575,7 @@ fuD xVV eWP lNN -bkF +lWp xhD heN vjI @@ -108277,7 +105596,7 @@ tnb qyY xvh xpU -xMr +izA swB vve vSw @@ -109533,12 +106852,12 @@ nju iGt vtL sBP -wZl -pcm -gla -vPt -gla -ktQ +sRL +uFZ +jfB +afZ +jfB +fPZ eeJ wjq dtv @@ -109790,12 +107109,12 @@ wNd nFW tDB unK -wZl -xkv -ura -jUU -mqr -hqf +sRL +sBq +xsI +gnK +piJ +hBh eeJ mSa dtv @@ -110047,12 +107366,12 @@ rqw rqw qow rqw -wZl -wZl -wZl -rBr -wZl -wZl +sRL +sRL +sRL +nqa +sRL +sRL eeJ lxp syA @@ -110560,7 +107879,7 @@ rqw pfo ebK ctH -pvB +oLV rqw pdl pEv @@ -110817,7 +108136,7 @@ rqw wJX fYH fYH -gLr +nuL djY rBO gdF @@ -111074,7 +108393,7 @@ jsU xFM wYH bnX -bJA +jUA pzd pzd rnD @@ -111331,12 +108650,12 @@ gpA fYH wYH ctH -qaV -dDW -bTO -bTO -jfa -qcC +xIf +lKs +fex +fex +byR +qIe dBj luG evA @@ -111354,7 +108673,7 @@ pCv unc sWQ raZ -qUa +sVG qUa qUa qUa @@ -111593,7 +108912,7 @@ ntZ jpp jpp dxw -jpp +qOQ jpp jpp jpp @@ -111611,8 +108930,8 @@ qfo jRs jRs xhG -vNn -ssj +mHf +kFA gdx qSh twE @@ -111850,7 +109169,7 @@ pzd tpG pvk pzd -iCj +nVU qMa uhy iCj @@ -111910,7 +109229,7 @@ ldq qdR naN vOr -xNe +mdG uLj oig oig @@ -114194,7 +111513,7 @@ xPv uSi wtu wKz -ezd +xrX xBj xUB yha @@ -114414,7 +111733,7 @@ aBL rqw jsE rqw -ocC +agp vpP pzd bqy @@ -115980,7 +113299,7 @@ cZx vMC apF vfk -iLS +rWr tLn pzK tbD @@ -116216,7 +113535,7 @@ ogE jhm qJH wQc -eQv +pot rUq lyq wOp @@ -117267,7 +114586,7 @@ vso fHT veK dDF -vkn +obb vMC xFA sMh @@ -117769,7 +115088,7 @@ mFP qrm qNn wBI -ovj +fEM wBI sDj sES @@ -118045,26 +115364,26 @@ vbK xuW xam vhJ -gan +kOh wec gGK aPX smk -xDW +elc wIY wIY nAF srK srK -mDZ +tEC vnf wML rOX -gYH +aUB sYa yfs hPU -nZk +xKX fKN xMc xKX @@ -118289,7 +115608,7 @@ rKC pnU xlL xlL -qiy +mok vRh uMH vbK @@ -118316,12 +115635,12 @@ udw uHd lhm wEC -vey -uEw +wed +vsJ sYa cqn xTR -pZJ +foI gJS lIL gJS @@ -118574,12 +115893,12 @@ sZK vnf cVQ rOX -qBd +xre sYa -lkS +rtI dXU aSy -iwM +deQ tst deQ aSy @@ -118803,7 +116122,7 @@ pdU qka voh eWD -jQo +vzN vRh pwA rvX @@ -118831,7 +116150,7 @@ uHd vnf dav rOX -rZj +ufe sYa xlM qrB @@ -119088,15 +116407,15 @@ sZK vnf lsO rOX -ugX +vLH sYa sYa sYa -wnI -wnI -fIn -wnI -wnI +xlP +xlP +fSg +xlP +xlP eWI eWI eWI @@ -119349,11 +116668,11 @@ uWl nbF cVz sYa -xNp -wnI -fIn -wnI -dnl +rQw +xlP +pPp +xlP +tGp eWI asc usJ @@ -119568,8 +116887,8 @@ xau rsL xSt xWq -oxK -rUg +iRk +aQZ wJL prf dSb @@ -119577,13 +116896,13 @@ hiV vbK upy qWJ -rwk +flx oBX mzl aOz fRl skV -pMD +kxE gto fqG sQb @@ -119606,11 +116925,11 @@ saY qbo hnP sYa -wnI -wnI -aws -wnI -wnI +xlP +xlP +jMC +xlP +xlP eWI eKf tNT @@ -119824,8 +117143,8 @@ rsL mIh rsL xTO -ewo -ydH +cHI +ily xPj wJL sHX @@ -119843,7 +117162,7 @@ dss vbK sfq uGX -vjZ +frZ xqn xqn wvM @@ -119853,7 +117172,7 @@ xEd bBr yjt eTT -nYg +paT jxk vKX vnf @@ -119863,11 +117182,11 @@ bXG jlN duc sYa -cmO -wnI -fGF -wnI -wnI +axN +xlP +gWf +xlP +xlP eWI fxN clb @@ -120089,7 +117408,7 @@ prh sYb ttD vbK -qzD +pcE xfc vbK bWi @@ -120100,7 +117419,7 @@ tzH vbK the fqG -wfD +uUS ocb mau ocb @@ -120110,7 +117429,7 @@ xVv ocb ocb mau -xTT +nTP dNz erE vnf @@ -120120,11 +117439,11 @@ pXQ kwA xaR sYa -wnI -wnI -sXB -wnI -wnI +xdV +xlP +gpy +xlP +orz eWI eWI eWI @@ -120377,11 +117696,11 @@ bqR ryy boW sYa -mbj -wnI -eKp -wnI -apw +mwJ +xlP +ygf +xlP +fvH eWI blb blb @@ -120877,7 +118196,7 @@ xia xia xia cxO -bNX +egL cxO xia xia @@ -121123,7 +118442,7 @@ xok xok xok sMD -tfj +sJg sMD wMO ukQ @@ -121131,14 +118450,14 @@ qTe sxF qTb vYL -wwX +gIR wNT xnC xnC xnC rfO aGv -kSr +nLk vId icT bxI @@ -121382,7 +118701,7 @@ xok wcq pED kea -xff +iCJ ede hoG vkt @@ -121659,7 +118978,7 @@ vnf wML pwn eXo -tUI +iUp wdS eXo wos @@ -121678,7 +118997,7 @@ eXo eXo eXo jat -tUI +iUp nVF msJ xQj @@ -121897,7 +119216,7 @@ bgg tfE vFG wMO -eqk +kzs uTO uTO xok @@ -122145,7 +119464,7 @@ psn oyQ oyQ oyQ -xNV +uuY tCD xok vhC @@ -122656,7 +119975,7 @@ rsL quq xQX ptj -pLg +tNy jGW vkU ogT @@ -123963,7 +121282,7 @@ xok xok xok xok -vxR +eog tbI xok qNO @@ -124211,7 +121530,7 @@ blb dDB xaN dNG -kol +gJQ vlq vFn qNO @@ -124479,7 +121798,7 @@ xFI gfu ckt ckt -ckt +nOD lwu lkV whF @@ -124736,7 +122055,7 @@ sbq aFj lkV iJL -mZj +rci vTv dpz boY @@ -124993,7 +122312,7 @@ reN hRA reN xUX -nKO +nZF kpX lnu enG @@ -125250,10 +122569,10 @@ oZz xZJ aVT enG -diZ -diZ -diZ -uQY +kUa +kUa +kUa +vIz xpR kQt nhl @@ -125507,7 +122826,7 @@ nWh xEn nWh xnR -drB +aLC wLZ xwn cns @@ -131191,7 +128510,7 @@ xqq xLY ylD lye -hmu +lNF ylD ylD ylD diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 1b962db26c34d..f4691cfb2ab04 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2070,24 +2070,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"axW" = ( -/obj/effect/turf_decal/box/red, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) -"axX" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ayh" = ( /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) @@ -2724,6 +2706,28 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/service/hydroponics) +"aHq" = ( +/obj/structure/table/wood, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/corporate_showroom) "aHr" = ( /obj/item/kirbyplants/random, /obj/machinery/light/directional/south, @@ -5378,10 +5382,6 @@ }, /turf/open/floor/iron/checker, /area/station/service/theater/abandoned) -"bpz" = ( -/obj/effect/turf_decal/box/red, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/xenobiology) "bpM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/effect/landmark/event_spawn, @@ -6178,6 +6178,23 @@ "bAR" = ( /turf/closed/wall/r_wall, /area/station/engineering/break_room) +"bAS" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/cigarette/cigar/havana{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/cigarette/cigar{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/hos) "bAU" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/lattice, @@ -6649,6 +6666,17 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) +"bFD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "bFS" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/structure/cable, @@ -7232,6 +7260,28 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"bLy" = ( +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Starboard"; + name = "cargo camera" + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + id = "cargounload"; + name = "Loading Doors"; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/east{ + id = "cargoload"; + name = "Loading Doors"; + pixel_y = -6 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "bLC" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -7388,14 +7438,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/commons/lounge) -"bNO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bNT" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 8 @@ -8764,23 +8806,6 @@ "cfu" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) -"cfv" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/cigarette/cigar/havana{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/cigarette/cigar{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/hos) "cfx" = ( /obj/structure/cable, /obj/machinery/computer/station_alert{ @@ -10100,23 +10125,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) -"cwc" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/preopen{ - id = "sci_experimentor"; - name = "Experimentor Blast Door" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/explab) "cwe" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11484,10 +11492,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/theater) -"cNy" = ( -/obj/effect/decal/remains/xeno, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "cNH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11790,13 +11794,6 @@ /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/misc/grass, /area/station/hallway/primary/fore) -"cRE" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Security - Armory External"; - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) "cRJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -13185,6 +13182,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/security) +"djY" = ( +/obj/structure/sign/warning/secure_area/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "dka" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -13428,7 +13429,7 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "dmU" = ( -/obj/item/kirbyplants/random, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) "dnd" = ( @@ -13908,6 +13909,11 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"dtk" = ( +/obj/structure/table/wood/poker, +/obj/item/cigarette/pipe, +/turf/open/floor/carpet/green, +/area/station/commons/lounge) "dtn" = ( /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -14661,6 +14667,10 @@ }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"dDB" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dDT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/trinary/filter{ @@ -14962,17 +14972,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/plating, /area/station/maintenance/port) -"dHU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dHX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -15109,13 +15108,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"dJE" = ( -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/holopad, -/obj/structure/cable, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "dJH" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -15919,13 +15911,6 @@ /obj/item/assembly/flash/handheld, /turf/open/floor/iron/grimy, /area/station/command/bridge) -"dTr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dTA" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/purple/half/contrasted{ @@ -15968,6 +15953,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"dTS" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) "dUb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16241,7 +16232,7 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/incident_display/delam/directional/south, +/obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) "dXO" = ( @@ -16307,20 +16298,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"dYM" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/iron, -/area/station/maintenance/disposal) "dYQ" = ( /obj/structure/table, /obj/machinery/computer/records/medical/laptop{ @@ -17571,6 +17548,16 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron/dark, /area/station/service/bar) +"eqP" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology - Secure Cell Interior"; + name = "xenobiology camera"; + network = list("ss13","xeno","rd") + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "eqU" = ( /turf/open/space, /area/space) @@ -17621,17 +17608,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"erA" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/trimline/neutral, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/box/white, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "erM" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/bot, @@ -19123,6 +19099,14 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"eKV" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/toilet/locker) "eKX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20411,11 +20395,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, /area/station/engineering/atmos/hfr_room) -"fbh" = ( -/obj/structure/table/wood/poker, -/obj/item/cigarette/pipe, -/turf/open/floor/carpet/green, -/area/station/commons/lounge) "fbn" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -20761,6 +20740,17 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"fff" = ( +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ffi" = ( /obj/structure/cable, /obj/machinery/power/solar_control{ @@ -22515,9 +22505,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/port) -"fBr" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fBG" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -22708,10 +22695,6 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"fEw" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "fEx" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, @@ -23265,17 +23248,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"fLx" = ( -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "fLJ" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -26796,6 +26768,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/exit) +"gCt" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "gCB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27891,6 +27866,14 @@ }, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) +"gQF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "gQH" = ( /obj/structure/sign/warning/secure_area/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -28624,6 +28607,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/supermatter/room) +"haF" = ( +/obj/structure/sign/warning/secure_area/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "haG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -32155,16 +32142,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) -"hXJ" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology - Secure Cell Interior"; - name = "xenobiology camera"; - network = list("ss13","xeno","rd") - }, -/obj/machinery/status_display/ai/directional/west, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "hXO" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32902,10 +32879,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/chapel) -"ifA" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/space/basic, -/area/space/nearstation) "ifR" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -33166,25 +33139,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/department/security) -"ika" = ( -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 6 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = 2 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4.5 - }, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "ike" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -33385,16 +33339,6 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron, /area/station/science/ordnance/office) -"imj" = ( -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/kitchen/rollingpin, -/obj/structure/table, -/obj/item/reagent_containers/cup/bowl, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "imp" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33662,6 +33606,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"iqg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral/full, +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "iqj" = ( /obj/effect/turf_decal/trimline/purple/filled/warning, /turf/open/floor/iron/white, @@ -34805,6 +34756,11 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/exit) +"iFt" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "iFD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -35106,6 +35062,10 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"iJw" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "iJE" = ( /obj/structure/table/wood/fancy, /obj/machinery/door/window/left/directional/east, @@ -36179,6 +36139,12 @@ "iYi" = ( /turf/closed/wall, /area/station/commons/toilet/locker) +"iYp" = ( +/obj/structure/cable, +/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "iYq" = ( /obj/machinery/computer/prisoner/management{ dir = 4 @@ -36839,6 +36805,17 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"jfC" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/trimline/neutral, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/box/white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jfF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38951,12 +38928,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"jFu" = ( -/obj/structure/cable, -/obj/machinery/nuclearbomb/selfdestruct, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "jFC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40187,6 +40158,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"jUT" = ( +/obj/structure/sign/warning/electric_shock/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "jUU" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -44554,6 +44529,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"lcP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lcT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -47619,6 +47601,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lOw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ + dir = 4 + }, +/obj/machinery/meter/layer2, +/obj/structure/sign/warning/no_smoking/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lOA" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/box/red/corners{ @@ -49017,16 +49009,6 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/fore) -"miN" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "mjo" = ( /obj/machinery/recharge_station, /obj/effect/decal/cleanable/dirt, @@ -49235,15 +49217,19 @@ "mna" = ( /obj/machinery/firealarm/directional/south, /obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes{ - pixel_y = 3 - }, -/obj/item/storage/box/monkeycubes, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/item/storage/box/monkeycubes{ + pixel_y = 10; + pixel_x = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_y = 3; + pixel_x = -13 + }, /turf/open/floor/iron, /area/station/science/xenobiology) "mnl" = ( @@ -49298,14 +49284,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) -"mnQ" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/toilet/locker) "mnW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -52073,6 +52051,18 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/service/library) +"mXr" = ( +/obj/structure/cable, +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) "mXy" = ( /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) @@ -53151,6 +53141,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science) +"nnh" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/obj/item/seeds/soya{ + pixel_x = 11; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "nnv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53742,10 +53747,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/lobby) -"nwd" = ( -/obj/structure/sign/warning/electric_shock/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "nwn" = ( /obj/structure/table/reinforced, /obj/item/hfr_box/body/waste_output, @@ -54410,6 +54411,10 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"nET" = ( +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "nEZ" = ( /turf/closed/wall/r_wall, /area/station/security/mechbay) @@ -54553,6 +54558,17 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"nHc" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) "nHd" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance_hatch{ @@ -56820,11 +56836,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/garden) -"okS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "okV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -57870,6 +57881,11 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"ozA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "ozE" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -58084,12 +58100,6 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/service/janitor) -"oDt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) "oDw" = ( /obj/structure/table/glass, /obj/machinery/computer/records/medical/laptop, @@ -58261,6 +58271,12 @@ }, /turf/open/floor/engine, /area/station/science/genetics) +"oFv" = ( +/obj/docking_port/stationary/syndicate/northeast{ + dir = 8 + }, +/turf/open/space, +/area/space) "oFC" = ( /obj/machinery/airalarm/directional/west, /obj/structure/tank_dispenser, @@ -58297,6 +58313,20 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/station/command/corporate_showroom) +"oGq" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/disposal) "oGr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, @@ -61615,16 +61645,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/xenobiology) -"pzg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ - dir = 4 - }, -/obj/machinery/meter/layer2, -/obj/structure/sign/warning/no_smoking/directional/east, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pzh" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor/right/directional/west{ @@ -62031,6 +62051,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"pDx" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pDz" = ( /obj/machinery/quantum_server, /obj/effect/turf_decal/bot/left, @@ -62577,6 +62607,10 @@ /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/large, /area/station/science/lab) +"pJz" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "pJM" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -64002,6 +64036,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"pYW" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Security - Armory External"; + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "pZc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64083,6 +64124,23 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"pZM" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "sci_experimentor"; + name = "Experimentor Blast Door" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/explab) "qaq" = ( /obj/structure/table, /obj/item/clothing/gloves/latex, @@ -64679,11 +64737,6 @@ }, /turf/open/floor/iron/large, /area/station/medical/medbay) -"qil" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qin" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65448,10 +65501,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/captain) -"qtd" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "qtm" = ( /obj/structure/chair/pew/right, /turf/open/floor/iron/chapel{ @@ -65929,17 +65978,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) -"qzE" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar, -/turf/open/floor/wood, -/area/station/command/meeting_room/council) "qzR" = ( /obj/structure/toilet{ dir = 8 @@ -67114,22 +67152,15 @@ dir = 4 }, /area/station/medical/medbay/lobby) -"qNh" = ( -/obj/structure/cable, -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/captain) "qNi" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/port/fore) +"qNn" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/vatgrower, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/xenobiology) "qNo" = ( /obj/structure/table/reinforced, /obj/machinery/firealarm/directional/south, @@ -67301,10 +67332,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/department/science/xenobiology) -"qPW" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qPX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -68732,21 +68759,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"rke" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/blood/random{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/blood/random, -/obj/effect/turf_decal/bot, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -6; - pixel_y = 8 - }, -/turf/open/floor/iron, -/area/station/service/kitchen/abandoned) "rkr" = ( /obj/structure/chair{ dir = 4 @@ -69612,12 +69624,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"rvA" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/space/basic, -/area/space/nearstation) "rvG" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -71060,28 +71066,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/storage/gas) -"rOb" = ( -/obj/machinery/computer/cargo{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Cargo Bay - Starboard"; - name = "cargo camera" - }, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = "cargounload"; - name = "Loading Doors"; - pixel_y = 6 - }, -/obj/machinery/button/door/directional/east{ - id = "cargoload"; - name = "Loading Doors"; - pixel_y = -6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "rOc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, @@ -72106,12 +72090,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/medical/virology) -"rZn" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/structure/sign/poster/official/there_is_no_gas_giant/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/engineering/atmos/project) "rZt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72635,6 +72613,10 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"sfE" = ( +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "sfH" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral{ @@ -73854,6 +73836,25 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/commons/fitness/recreation) +"swR" = ( +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = 2 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4.5 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "swY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -75787,6 +75788,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"sVm" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "sVC" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 4 @@ -75931,18 +75937,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/teleporter) -"sXy" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/book/manual/wiki/plumbing, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "sXB" = ( /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -76008,6 +76002,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/grimy, /area/station/command/meeting_room/council) +"sXV" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/micro_laser, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron, +/area/station/science/lab) "sYf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -77245,6 +77256,24 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/service/bar/backroom) +"trf" = ( +/obj/structure/table/wood, +/obj/item/restraints/handcuffs{ + pixel_y = 6 + }, +/obj/item/cigarette/cigar/cohiba{ + pixel_x = 7; + pixel_y = -7 + }, +/obj/item/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -7 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) "trw" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -77257,6 +77286,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"trC" = ( +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/kitchen/rollingpin, +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "trG" = ( /obj/machinery/door/window/left/directional/north{ name = "Engineering Delivery"; @@ -77741,12 +77780,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/department/crew_quarters/bar) -"twl" = ( -/obj/docking_port/stationary/syndicate/northeast{ - dir = 8 - }, -/turf/open/space, -/area/space) "twE" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters{ @@ -81556,10 +81589,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/library) -"usp" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "usy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -83950,16 +83979,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"uVX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, -/area/station/science/xenobiology) "uVZ" = ( /obj/structure/cable, /obj/machinery/duct, @@ -84062,6 +84081,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"uXF" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/turf/open/space/basic, +/area/space/nearstation) "uXK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -84092,6 +84115,16 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"uXU" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "uYg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/green, @@ -87131,24 +87164,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vLV" = ( -/obj/structure/table/wood, -/obj/item/restraints/handcuffs{ - pixel_y = 6 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 7; - pixel_y = -7 - }, -/obj/item/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -7 - }, -/turf/open/floor/carpet, -/area/station/security/detectives_office) "vMd" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, @@ -87528,11 +87543,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"vSi" = ( -/obj/structure/lattice, -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "vSk" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -90139,6 +90149,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"wyN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "wzb" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -90425,9 +90441,8 @@ /turf/open/misc/grass, /area/station/hallway/primary/fore) "wCh" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/siding/thinplating/dark, @@ -91362,6 +91377,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"wOw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/structure/sign/poster/official/there_is_no_gas_giant/directional/east, +/turf/open/floor/iron/textured_large, +/area/station/engineering/atmos/project) "wOz" = ( /obj/structure/chair/office/light, /obj/effect/turf_decal/trimline/green/filled/warning, @@ -92308,6 +92329,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/textured, /area/station/medical/medbay) +"xcR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron, +/area/station/science/xenobiology) "xcU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -92325,6 +92356,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/iron, /area/station/maintenance/fore) +"xdn" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xdA" = ( /obj/effect/spawner/random/decoration/carpet, /obj/effect/spawner/random/structure/furniture_parts, @@ -92631,28 +92670,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"xhb" = ( -/obj/structure/table/wood, -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/cigarette/cigar/cohiba{ - pixel_x = 3; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/corporate_showroom) "xhi" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/east{ @@ -94402,6 +94419,21 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"xCC" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/blood/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/blood/random, +/obj/effect/turf_decal/bot, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/station/service/kitchen/abandoned) "xCF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -95020,10 +95052,6 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/medical/morgue) -"xJR" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "xJW" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -95598,10 +95626,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/engineering/atmos) -"xST" = ( -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xTc" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -95621,23 +95645,6 @@ dir = 1 }, /area/station/maintenance/department/electrical) -"xTe" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/micro_laser, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron, -/area/station/science/lab) "xTk" = ( /obj/structure/closet/secure_closet/security/sec, /obj/structure/sign/poster/official/do_not_question/directional/south, @@ -114373,7 +114380,7 @@ aaa uHd aaa qYo -fEw +nET qYo aaa qYo @@ -114381,7 +114388,7 @@ qYo aaa qYo aaa -fEw +nET qYo aaa uHd @@ -114628,7 +114635,7 @@ vVc aad aad aad -xJR +djY nCi nCi fqm @@ -114640,7 +114647,7 @@ fqm fqm nCi nCi -xJR +djY aaa qYo aaa @@ -115368,7 +115375,7 @@ wGy vVc vVc vVc -vSi +sVm abj abj lbi @@ -115403,11 +115410,11 @@ fqm djS nCi nCi -fBr -fBr -hXJ -fBr -fBr +gCt +gCt +eqP +gCt +gCt nCi nCi cJd @@ -115659,13 +115666,13 @@ chp fqm vPU nCi -fBr -fBr -fBr -usp -fBr -fBr -fBr +gCt +gCt +gCt +iJw +gCt +gCt +gCt nCi vPU fqm @@ -115916,13 +115923,13 @@ rXu nCi eVp nCi -fBr -okS -cNy -fBr -xST -fBr -fBr +gCt +ozA +pJz +gCt +sfE +gCt +gCt nCi mFq nCi @@ -116173,13 +116180,13 @@ gbe nCi vPU nCi -fBr -fBr -fBr -fBr -fBr -fBr -fBr +gCt +gCt +gCt +gCt +gCt +gCt +gCt nCi vPU cfb @@ -116432,9 +116439,9 @@ uWm nCi rIb rIb -axW -fBr -miN +xdn +gCt +uXU uhb uhb nCi @@ -117204,7 +117211,7 @@ mKn fPl jqr vxQ -uVX +xcR vxQ lzc plQ @@ -117629,7 +117636,7 @@ aaa qYo kvq aaa -oDt +wyN mJH pHl rQI @@ -119739,7 +119746,7 @@ gsV auh tMl apu -ika +swR aHE wCn gAw @@ -121568,7 +121575,7 @@ rZw iQF eRr pTC -sXy +nnh fpt uOF sPk @@ -122853,7 +122860,7 @@ aWk mqP pTC esb -bpz +qNn lZG gmI ahY @@ -124593,7 +124600,7 @@ vOI etR xcU nmw -qtd +haF qYo dQS qYo @@ -124602,7 +124609,7 @@ aaa qYo cut qYo -qtd +haF aaa xLZ nNK @@ -124838,7 +124845,7 @@ lCM qlr hwM pqw -rZn +wOw dYE sOi wzD @@ -127935,7 +127942,7 @@ xtp pwA dyb eTy -imj +trC lZa xtp xtp @@ -128251,7 +128258,7 @@ pTC lLa fRK txc -cwc +pZM ffb dqP aFp @@ -129049,7 +129056,7 @@ qaA jXy oHM iLH -fLx +fff vss oSA kzc @@ -129307,7 +129314,7 @@ nJK yex iML tgI -qil +iFt djT kzc kzc @@ -129564,7 +129571,7 @@ vqx oHM iLH pKR -dJE +iqg uUG fgy oFC @@ -129821,7 +129828,7 @@ hGI esH owX asW -dHU +bFD nSb jHm ucu @@ -130078,7 +130085,7 @@ hNW hNW hNW hNW -qPW +dDB hNW nLP hNW @@ -130335,7 +130342,7 @@ lzo vbO uXN eqB -axX +pDx eyH pwD eyH @@ -130592,7 +130599,7 @@ oxo ojG oxo mZK -bNO +gQF vEX xLj ctU @@ -130848,12 +130855,12 @@ qPI ibH cBe ciH -dTr -pzg +lcP +lOw wCh cFB oQq -erA +jfC hqU kzc qBk @@ -132071,7 +132078,7 @@ bog xaF awc xOv -qzE +nHc fxs lAg kPM @@ -132661,7 +132668,7 @@ kzc aOD qQM qQM -ifA +uXF tgT xPc xPc @@ -133069,7 +133076,7 @@ aWP qrP odI mSA -fbh +dtk uDD msR mDq @@ -133140,7 +133147,7 @@ fvi fvi fvi hMa -xTe +sXV gsG iuU tZi @@ -133689,7 +133696,7 @@ kzc ecm uYH qQM -ifA +uXF tgT riB tgT @@ -136207,7 +136214,7 @@ duA cCM oEC nqf -xhb +aHq hTq qFK bPv @@ -139268,7 +139275,7 @@ uhH gOU xRO wvg -qNh +mXr icS gOU ivA @@ -140497,7 +140504,7 @@ sUA vno bxe uWe -rke +xCC vno jYU llB @@ -142343,7 +142350,7 @@ aaa lhY uvJ qKc -jFu +iYp sJr wPT lhY @@ -142570,7 +142577,7 @@ nDk ofN aWN ivt -rOb +bLy ivt ktK egU @@ -142889,7 +142896,7 @@ vBa crR iee iYi -mnQ +eKV npm qVH iYi @@ -143330,7 +143337,7 @@ aad oeX sZt fQL -dYM +oGq xBu rum akS @@ -144407,7 +144414,7 @@ aaa oIU eCA alG -vLV +trf gZz csy oIU @@ -147451,7 +147458,7 @@ aaa aaa abj aaa -fEw +nET aad aaa aaa @@ -151855,7 +151862,7 @@ aaa qYo aaa qYo -nwd +jUT qYo aaa qYo @@ -152120,7 +152127,7 @@ aaa aaa aaa mfO -cRE +pYW aaa mfO aaa @@ -152361,7 +152368,7 @@ gby jfR lPV qcj -cfv +bAS uTM nHJ bRF @@ -152564,7 +152571,7 @@ aaa aaa aaa aaa -twl +oFv aaa aaa aaa @@ -153163,7 +153170,7 @@ qYo uHd qYo aad -rvA +dTS uKw mfC xFk @@ -154670,13 +154677,13 @@ gJk aaa aad aaa -nwd +jUT aad aaa aad aaa aad -nwd +jUT aaa qYo aaa diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 68e8ffbc759eb..e29c029d8d922 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -271,6 +271,13 @@ /obj/machinery/vending/boozeomat, /turf/open/floor/iron, /area/station/service/bar) +"afy" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "afz" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -1097,6 +1104,16 @@ /obj/item/storage/crayons, /turf/open/floor/iron, /area/station/commons/dorms) +"asb" = ( +/obj/structure/sink/directional/west, +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "xenobio10"; + name = "Xenobio Pen 10 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "asg" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -1129,6 +1146,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"asG" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "asM" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -1577,17 +1604,6 @@ /obj/effect/spawner/random/lavaland_mob/raptor, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"ayK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 12 - }, -/turf/open/floor/iron, -/area/mine/eva) "ayR" = ( /obj/machinery/airalarm/directional/east, /obj/structure/extinguisher_cabinet/directional/north, @@ -1689,10 +1705,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"aAf" = ( -/obj/machinery/incident_display/delam, -/turf/closed/wall/r_wall, -/area/station/command/bridge) "aAi" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/table/wood/fancy/red, @@ -1923,6 +1935,16 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"aEK" = ( +/obj/machinery/atmospherics/components/binary/pump/off, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "aEM" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/r_wall, @@ -2304,6 +2326,11 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"aLo" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "aLy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2604,6 +2631,16 @@ /obj/item/clothing/shoes/jackboots, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"aQn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "aQy" = ( /obj/effect/turf_decal/siding/wood, /obj/item/kirbyplants/random/fullysynthetic{ @@ -3875,6 +3912,14 @@ /obj/item/clothing/head/beanie/orange, /turf/open/floor/iron, /area/station/cargo/storage) +"biI" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology Test Chamber"; + network = list("ss13","test","rd","xeno") + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "biR" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -4452,6 +4497,10 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) +"bqX" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "bqY" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -5370,10 +5419,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"bCR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bCT" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ dir = 1 @@ -5606,14 +5651,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"bFU" = ( -/obj/effect/turf_decal/siding/wideplating_new/light{ - dir = 4 - }, -/obj/machinery/plumbing/input, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) "bFY" = ( /obj/item/trash/syndi_cakes, /turf/open/floor/plating, @@ -5734,6 +5771,21 @@ dir = 4 }, /area/station/ai_monitored/command/storage/eva) +"bId" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "bIl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6206,6 +6258,15 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"bOy" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/spawner/random/vending/snackvend, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering Lobby" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "bOz" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 1 @@ -6221,6 +6282,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"bOT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "bOX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6231,9 +6298,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) -"bOY" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bOZ" = ( /obj/effect/spawner/random/structure/musician/piano/random_piano, /obj/machinery/button/curtain{ @@ -6799,7 +6863,6 @@ }, /area/station/security/prison) "bXL" = ( -/obj/machinery/door/firedoor/heavy, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/science/research) @@ -7082,6 +7145,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cbu" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "cbz" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/textured, @@ -7098,6 +7168,15 @@ }, /turf/open/floor/iron, /area/station/science/lab) +"cbP" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio9"; + name = "Xenobio Pen 9 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ccg" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -7959,14 +8038,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"cnm" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "cno" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, @@ -8377,6 +8448,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"cuB" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "cuJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -8450,18 +8525,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cvG" = ( -/obj/effect/turf_decal/siding/wideplating_new/light, -/obj/item/trash/bee, -/obj/machinery/light/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/moth_piping/directional/west, -/obj/machinery/duct, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) "cvN" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -11196,6 +11259,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/science/robotics/lab) +"dkB" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/armory/shotgun, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "dkK" = ( /obj/structure/railing/corner, /obj/effect/turf_decal/stripes/line, @@ -11267,6 +11339,16 @@ }, /turf/open/floor/plating, /area/station/construction) +"dmj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/machinery/button/door/directional/east{ + id = "xenobio11"; + name = "Xenobio Pen 11 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "dmk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/railing{ @@ -11400,6 +11482,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"doK" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "doM" = ( /obj/structure/table, /obj/item/paper{ @@ -11526,6 +11616,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dqt" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = -6; + pixel_x = 9 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "dqw" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -11680,6 +11787,12 @@ /obj/structure/flora/grass/both, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"dsa" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/science/cytology) "dsf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -12473,10 +12586,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"dEi" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "dEv" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/wood, @@ -12621,30 +12730,6 @@ /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"dGG" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Cargo Bay Receiving Dock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "dGK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12733,6 +12818,11 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"dHM" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "dIl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -12986,6 +13076,18 @@ /obj/item/clothing/under/color/rainbow, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"dMB" = ( +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/large, +/area/station/medical/medbay/aft) "dMH" = ( /obj/machinery/light/directional/north, /obj/machinery/status_display/evac/directional/north, @@ -14139,6 +14241,13 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ege" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "egj" = ( /obj/structure/rack, /obj/machinery/light/small/directional/north, @@ -14452,6 +14561,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) +"ekN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "ekW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15115,6 +15231,10 @@ "evb" = ( /turf/open/floor/iron, /area/station/service/janitor) +"evc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "evk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16018,6 +16138,10 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/mine/mechbay) +"eLU" = ( +/obj/structure/statue/snow/snowman, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "eMa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16382,6 +16506,10 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) +"eSQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "eSY" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/smooth, @@ -16999,6 +17127,9 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"fcj" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "fco" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/siding/wood{ @@ -18593,6 +18724,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/medbay/lobby) +"fCS" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "fCW" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark/textured, @@ -19203,13 +19338,9 @@ /turf/open/floor/iron, /area/mine/laborcamp/security) "fLU" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" +/turf/open/floor/iron/stairs/medium{ + dir = 4 }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, /area/station/science/research) "fLY" = ( /obj/structure/table, @@ -19441,15 +19572,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"fQi" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fQk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -20230,6 +20352,16 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"gcy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "gcB" = ( /obj/item/pickaxe/improvised{ pixel_x = 7 @@ -21004,8 +21136,7 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "goq" = ( -/obj/structure/statue/snow/snowman, -/turf/open/misc/asteroid/snow/standard_air, +/turf/open/openspace, /area/station/science/research) "gov" = ( /obj/machinery/door/window/left/directional/west{ @@ -21164,14 +21295,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"gri" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "riot"; - name = "Security Shutters" - }, -/turf/open/floor/glass/reinforced, -/area/station/hallway/primary/fore) "grk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -21378,6 +21501,13 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"gvi" = ( +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "gvj" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -21406,7 +21536,9 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "gwm" = ( -/obj/machinery/door/firedoor/heavy, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, /turf/open/floor/iron/white/side{ dir = 9 }, @@ -21682,6 +21814,32 @@ /obj/structure/sign/warning/cold_temp/directional/west, /turf/open/floor/iron, /area/station/cargo/miningdock) +"gAZ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/science{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/item/biopsy_tool{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/gps/mining{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/item/knife/combat/survival{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "gBb" = ( /obj/machinery/door/window/right/directional/west{ name = "Containment Pen 3"; @@ -21730,12 +21888,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gBF" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "gBI" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -22224,17 +22376,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"gHW" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ - name = "Burn Chamber Interior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "gHY" = ( /obj/effect/landmark/start/scientist, /obj/structure/chair/stool/directional/west, @@ -22438,6 +22579,13 @@ /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, /area/station/science/xenobiology) +"gLY" = ( +/obj/machinery/vatgrower, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "gLZ" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -23364,6 +23512,10 @@ }, /turf/open/floor/wood/large, /area/station/service/bar/atrium) +"gYO" = ( +/obj/item/food/grown/carrot, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "gZa" = ( /obj/structure/sign/nanotrasen{ pixel_x = -32 @@ -23678,6 +23830,25 @@ /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hek" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/station/science/lab) "het" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/gas_mask, @@ -24034,21 +24205,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"hkO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "hkU" = ( /obj/effect/landmark/start/cargo_technician, /obj/structure/chair/office{ @@ -25415,14 +25571,6 @@ }, /turf/open/openspace, /area/station/engineering/atmos/storage) -"hGF" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hGH" = ( /turf/closed/wall, /area/station/security/lockers) @@ -26852,16 +27000,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/service/hydroponics/garden) -"icZ" = ( -/obj/structure/sink/directional/east, -/obj/machinery/button/door/directional/west{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Door"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ida" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -26942,6 +27080,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) +"ieb" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Research Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/dark, +/area/station/science/research) "iew" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, @@ -27090,6 +27235,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) +"ihN" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "iif" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/green/opposingcorners{ @@ -28055,6 +28208,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"iwq" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "iwx" = ( /obj/machinery/door/airlock/maintenance{ name = "Xenobiology Maintenance" @@ -28433,6 +28589,10 @@ dir = 4 }, /area/station/science/explab) +"iCe" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "iCg" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -28720,14 +28880,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"iGU" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology Test Chamber"; - network = list("ss13","test","rd","xeno") - }, -/obj/machinery/light/directional/west, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "iHc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -29010,6 +29162,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"iLP" = ( +/obj/structure/ladder, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "iLY" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -29200,6 +29359,19 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) +"iPK" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/flashlight{ + pixel_y = 2 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "iPP" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/landmark/start/bartender, @@ -29678,24 +29850,19 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"iWs" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "iWI" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/reagent_dispensers/watertank, /turf/open/openspace, /area/station/science/xenobiology) -"iWK" = ( -/obj/vehicle/ridden/wheelchair{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/end{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/radio/intercom/directional/west, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/large, -/area/station/medical/medbay/aft) "iWM" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -30220,6 +30387,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"jem" = ( +/obj/machinery/chem_master{ + name = "CytoMaster 5000" + }, +/obj/item/swab{ + pixel_y = 10; + pixel_x = -2 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jer" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -30370,6 +30548,17 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"jih" = ( +/mob/living/basic/pet/penguin/emperor{ + name = "Club" + }, +/obj/machinery/light/small/directional/east, +/obj/item/toy/snowball{ + pixel_x = -9; + pixel_y = 17 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "jik" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -30897,6 +31086,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"jrc" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "jre" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) @@ -31334,10 +31531,6 @@ /obj/structure/cable, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"jwQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "jxb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31695,6 +31888,10 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"jDQ" = ( +/obj/structure/fence/door, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jDS" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/turf_decal/stripes/line{ @@ -32524,6 +32721,16 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"jQt" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "Medbay" + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/medical/central) "jQz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32728,16 +32935,6 @@ /obj/structure/sign/poster/official/here_for_your_safety/directional/east, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"jSR" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "jST" = ( /obj/machinery/door/window/right/directional/north{ name = "Bridge Delivery"; @@ -32869,6 +33066,11 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) +"jVi" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/science/cytology) "jVm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, @@ -33378,9 +33580,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "kdJ" = ( -/obj/structure/flora/grass/brown/style_3, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "kdT" = ( /obj/machinery/iv_drip, /obj/item/reagent_containers/blood, @@ -34015,20 +34221,6 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/carpet/blue, /area/station/security/prison/work) -"klE" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics Monitoring" - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage/gas) "klJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -34930,14 +35122,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"kyR" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "kyU" = ( /obj/machinery/modular_computer/preset/id, /obj/machinery/light/directional/north, @@ -34957,14 +35141,6 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"kzo" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "kzv" = ( /obj/structure/bed, /obj/effect/spawner/random/bedsheet/any, @@ -35369,16 +35545,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kEA" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/west{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Door"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron, -/area/station/science/xenobiology) "kEB" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/cleanable/robot_debris/down, @@ -36709,6 +36875,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"kXR" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/cytology) "kXS" = ( /obj/machinery/door/airlock/hydroponics/glass{ name = "Hydroponics" @@ -36847,6 +37018,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) "lab" = ( @@ -37228,6 +37400,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"lgP" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "lgW" = ( /obj/machinery/meter/monitored/distro_loop, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, @@ -37416,15 +37597,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lab) -"ljG" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/storage/box/matches, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) "ljK" = ( /obj/structure/disposalpipe/trunk/multiz/down{ dir = 4 @@ -39445,6 +39617,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"lPz" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "lPC" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -39680,6 +39860,20 @@ "lSu" = ( /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"lSw" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics Monitoring" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/storage/gas) "lSF" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39843,14 +40037,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"lVQ" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "lVY" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -39957,6 +40143,12 @@ }, /turf/open/floor/grass, /area/station/medical/virology) +"lYS" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "lZe" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -40075,6 +40267,16 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"mbb" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/west{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Door"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mbk" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/blue{ @@ -40744,6 +40946,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mnB" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "mnC" = ( /obj/structure/grille, /obj/structure/disposalpipe/segment{ @@ -41248,6 +41457,11 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) +"mwK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "mwQ" = ( /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, @@ -41259,6 +41473,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/ordnance) "mxh" = ( @@ -41628,6 +41845,7 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) "mDw" = ( @@ -41903,6 +42121,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"mIT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/cigarette{ + pixel_x = 6; + pixel_y = 12 + }, +/turf/open/floor/iron, +/area/mine/eva) "mJa" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/tile/yellow, @@ -42292,6 +42521,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"mRp" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "mRr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -42340,10 +42579,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"mSh" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "mSv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43112,6 +43347,10 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/service/hydroponics) +"nce" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "nci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43182,10 +43421,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"ndd" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ndl" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -43708,25 +43943,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) -"nkG" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/table/reinforced, -/obj/item/stack/wrapping_paper{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/stack/package_wrap{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/item/dest_tagger, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "nkI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43735,10 +43951,6 @@ /obj/structure/tank_holder/oxygen, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"nkM" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "nkO" = ( /obj/structure/table, /obj/item/storage/box/matches, @@ -43920,6 +44132,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) +"nmy" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "nmz" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -44365,6 +44589,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"nsq" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "nsr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44608,12 +44841,6 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) -"nwq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "nwr" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -44962,25 +45189,6 @@ "nAH" = ( /turf/open/openspace/icemoon/keep_below, /area/station/hallway/secondary/entry) -"nAI" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/scanning_module, -/obj/item/stock_parts/scanning_module, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/white/side{ - dir = 10 - }, -/area/station/science/lab) "nAN" = ( /obj/effect/landmark/start/paramedic, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45272,10 +45480,6 @@ "nDE" = ( /turf/closed/wall/r_wall, /area/station/security/prison/garden) -"nDF" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "nDJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45964,6 +46168,13 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/medical/pharmacy) +"nNV" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "nOb" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock" @@ -45992,6 +46203,11 @@ /obj/item/pillow/random, /turf/open/floor/carpet, /area/station/commons/dorms) +"nOo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "nOx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -46303,12 +46519,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"nSG" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "nSH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46799,9 +47009,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"obq" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "obr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -46862,6 +47069,10 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ocd" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "ocp" = ( /obj/effect/landmark/start/hangover, /obj/effect/decal/cleanable/dirt, @@ -47581,6 +47792,16 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"onV" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/science/ordnance) "ooa" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -48172,6 +48393,7 @@ "oxe" = ( /obj/machinery/computer/cargo/request, /obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron, /area/station/command/bridge) "oxh" = ( @@ -48937,15 +49159,6 @@ }, /turf/open/floor/plating, /area/station/engineering/storage_shared) -"oHs" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/obj/effect/spawner/random/armory/rubbershot, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) "oHH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -49053,16 +49266,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"oJK" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "Medbay" - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/plasticflaps/opaque, -/turf/open/floor/iron/dark, -/area/station/maintenance/department/medical/central) "oJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_green, @@ -49524,6 +49727,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/security/courtroom) +"oQV" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "oQY" = ( /turf/open/floor/iron/white, /area/station/medical/virology) @@ -49556,14 +49764,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"oRB" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/atmos) "oRE" = ( /obj/machinery/conveyor{ dir = 10; @@ -49740,14 +49940,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"oUv" = ( -/obj/structure/table/wood, -/obj/item/clothing/mask/fakemoustache, -/obj/item/cigarette/pipe, -/obj/item/clothing/glasses/monocle, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "oUL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50353,6 +50545,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/engine, /area/station/science/explab) +"pdR" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Cargo Bay Receiving Dock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "pdT" = ( /obj/structure/chair/sofa/corp/right{ dir = 8 @@ -50427,16 +50643,6 @@ /obj/structure/grille/broken, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) -"pfm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pfn" = ( /obj/structure/sign/poster/official/work_for_a_future/directional/north, /obj/machinery/airalarm/directional/east, @@ -50464,6 +50670,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"pfJ" = ( +/obj/structure/sink/directional/east, +/obj/machinery/button/door/directional/west{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Door"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "pfO" = ( /obj/structure/chair/stool/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50959,8 +51175,8 @@ /area/station/tcommsat/computer) "pnq" = ( /obj/machinery/light/small/directional/north, -/obj/structure/flora/grass/brown/style_random, -/turf/open/misc/asteroid/snow/standard_air, +/obj/structure/sign/departments/science/alt/directional/north, +/turf/open/openspace, /area/station/science/research) "pns" = ( /obj/effect/turf_decal/stripes/line{ @@ -51490,12 +51706,11 @@ /turf/open/floor/eighties/red, /area/station/security/prison/safe) "pvU" = ( -/obj/item/toy/snowball{ - pixel_x = 6; - pixel_y = -5 - }, /obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid/snow/standard_air, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, /area/station/science/research) "pvY" = ( /obj/machinery/computer/order_console/mining, @@ -52624,10 +52839,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"pME" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "pMF" = ( /turf/open/floor/iron/white, /area/station/science/xenobiology) @@ -53567,16 +53778,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"qbv" = ( -/obj/structure/sink/directional/west, -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - id = "xenobio10"; - name = "Xenobio Pen 10 Blast DOors"; - req_access = list("xenobiology") +"qbz" = ( +/obj/structure/ladder, +/obj/structure/railing{ + dir = 8 }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "qbA" = ( /obj/structure/cable, /obj/machinery/airalarm/directional/east, @@ -53654,6 +53863,10 @@ "qck" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"qcl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/cytology) "qcu" = ( /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, @@ -54130,6 +54343,13 @@ /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qjs" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "qjx" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -54252,16 +54472,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"qlB" = ( -/obj/machinery/atmospherics/components/binary/pump/off, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "qlG" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -54302,9 +54512,6 @@ /obj/structure/closet/crate, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"qlW" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "qmi" = ( /turf/open/floor/iron, /area/station/cargo/lobby) @@ -54799,16 +55006,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel) -"qsd" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "qsh" = ( /obj/structure/plaque/static_plaque/golden/commission/icebox, /obj/effect/landmark/navigate_destination/dockarrival, @@ -55022,6 +55219,9 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"qvN" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "qvQ" = ( /obj/structure/closet/secure_closet/atmospherics, /turf/open/floor/iron/dark, @@ -56711,6 +56911,14 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"qTp" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/fakemoustache, +/obj/item/cigarette/pipe, +/obj/item/clothing/glasses/monocle, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "qTs" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) @@ -57100,6 +57308,12 @@ }, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"qZG" = ( +/obj/structure/fence/corner{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "qZN" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/freezerchamber) @@ -57791,6 +58005,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"rjT" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "rkc" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/siding/yellow{ @@ -57964,6 +58186,14 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/dark/textured_half, /area/mine/mechbay) +"rmG" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "rmM" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -58116,6 +58346,10 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/science/explab) +"roW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "roX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -58320,6 +58554,10 @@ /area/station/hallway/secondary/service) "rrf" = ( /obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/fancy/candle_box{ + pixel_y = 5 + }, /turf/open/floor/iron/dark, /area/station/service/chapel/office) "rrl" = ( @@ -58733,6 +58971,12 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/textured, /area/station/hallway/secondary/entry) +"ryX" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "rzj" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty{ @@ -59122,11 +59366,12 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "rDH" = ( -/obj/structure/flora/grass/green/style_random, -/mob/living/basic/pet/penguin/emperor{ - name = "Club" +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 }, -/turf/open/misc/asteroid/snow/standard_air, /area/station/science/research) "rDI" = ( /obj/item/toy/plush/lizard_plushie{ @@ -59196,6 +59441,12 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"rEj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "rEn" = ( /obj/structure/railing/wooden_fence{ dir = 4 @@ -59714,10 +59965,6 @@ /obj/structure/railing/corner/end/flip, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rNX" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "rOb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59731,6 +59978,10 @@ /obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"rOz" = ( +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "rOA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -59827,6 +60078,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) +"rQs" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rQw" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -59937,14 +60194,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) -"rRZ" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "rSe" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -60022,6 +60271,14 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"rSZ" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "rTs" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/open/floor/plating, @@ -60243,13 +60500,6 @@ }, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"rWq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "rWA" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -60361,6 +60611,14 @@ /obj/structure/minecart_rail/railbreak, /turf/open/floor/plating/snowed/coldroom, /area/station/service/kitchen/coldroom) +"rXD" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "rXN" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -61038,6 +61296,12 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth_large, /area/station/cargo/drone_bay) +"sjD" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/cytology) "sjU" = ( /obj/structure/sign/warning/docking/directional/east, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -61329,6 +61593,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"snv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "riot"; + name = "Security Shutters" + }, +/turf/open/floor/glass/reinforced, +/area/station/hallway/primary/fore) "snw" = ( /obj/structure/table, /obj/machinery/microwave, @@ -61557,6 +61829,21 @@ dir = 8 }, /area/station/service/chapel) +"sqB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"sqH" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ + name = "Burn Chamber Interior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_x = 24 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "sqN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61760,7 +62047,9 @@ /turf/open/floor/wood, /area/station/service/lawoffice) "stb" = ( -/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/ordnance) "sth" = ( @@ -61894,11 +62183,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) -"suv" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "suA" = ( /obj/structure/closet/crate/coffin, /obj/effect/decal/cleanable/dirt, @@ -63493,6 +63777,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) +"sSz" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/white, +/area/station/science/research) "sSA" = ( /obj/structure/sign/warning/secure_area/directional/south, /turf/open/openspace/icemoon/keep_below, @@ -63779,6 +64067,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"sXf" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/package_wrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/dest_tagger, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sXk" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -63890,17 +64197,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"sZp" = ( -/obj/effect/turf_decal/siding/wideplating_new/light{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/prisoner, -/obj/machinery/duct, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) "sZD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64523,6 +64819,7 @@ /area/station/science/xenobiology) "tkS" = ( /obj/item/radio/intercom/directional/east, +/obj/machinery/door/firedoor/heavy, /turf/open/floor/iron/white/side{ dir = 9 }, @@ -64759,6 +65056,14 @@ /obj/machinery/shower/directional/west, /turf/open/floor/iron/white, /area/station/medical/virology) +"toP" = ( +/obj/item/toy/snowball{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "toT" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -64854,15 +65159,6 @@ /obj/item/key/janitor, /turf/open/floor/iron, /area/station/service/janitor) -"tqn" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "tqr" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -65223,6 +65519,17 @@ /obj/machinery/holopad, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"twx" = ( +/obj/effect/turf_decal/siding/wideplating_new/light, +/obj/item/trash/bee, +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/sign/poster/official/moth_piping/directional/west, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "twK" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -65760,6 +66067,15 @@ /obj/structure/ore_box, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"tEE" = ( +/obj/structure/table, +/obj/item/food/deadmouse{ + pixel_y = 18; + pixel_x = 13 + }, +/obj/structure/microscope, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "tEK" = ( /obj/structure/table, /obj/item/tank/internals/emergency_oxygen{ @@ -65822,10 +66138,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) -"tFx" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "tFF" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8 @@ -66255,6 +66567,12 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/cmo) +"tLy" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "tLB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, /obj/effect/turf_decal/tile/yellow{ @@ -66678,6 +66996,13 @@ /obj/structure/railing, /turf/open/floor/iron/dark, /area/station/service/chapel) +"tTK" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "tTL" = ( /obj/structure/chair, /turf/open/floor/plating, @@ -67155,6 +67480,9 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"ubh" = ( +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "ubi" = ( /turf/open/misc/asteroid/snow/coldroom, /area/icemoon/underground/explored) @@ -67277,14 +67605,6 @@ /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"ucW" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "udf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67704,6 +68024,10 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"ujp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "ujs" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -67847,9 +68171,8 @@ /turf/open/floor/plating, /area/station/security/prison/safe) "ulE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /turf/open/floor/iron, /area/station/science/ordnance) @@ -67924,13 +68247,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet/blue, /area/station/security/prison/work) -"unm" = ( -/obj/machinery/plumbing/growing_vat, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/cable, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) "uno" = ( /obj/structure/closet/secure_closet/freezer/gulag_fridge, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -67970,6 +68286,7 @@ /obj/structure/chair{ dir = 4 }, +/obj/structure/sign/departments/exodrone/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) "unO" = ( @@ -68264,7 +68581,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "usP" = ( -/turf/open/misc/asteroid/snow/standard_air, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, /area/station/science/research) "usS" = ( /obj/structure/bed{ @@ -69117,6 +69437,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore) +"uHS" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "uHV" = ( /obj/structure/disposalpipe/trunk/multiz{ dir = 1 @@ -69429,6 +69759,10 @@ "uMN" = ( /turf/open/openspace, /area/station/commons/storage/mining) +"uMU" = ( +/obj/structure/fence/corner, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "uNp" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -69473,6 +69807,11 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"uNH" = ( +/obj/structure/railing, +/obj/structure/closet/secure_closet/cytology, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "uNV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -69660,6 +69999,16 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) +"uPQ" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "uPS" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -69811,6 +70160,12 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"uTc" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "uTf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -69879,6 +70234,10 @@ dir = 4 }, /area/station/service/chapel) +"uUn" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "uUq" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -70680,6 +71039,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"viR" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "viV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/window/reinforced/spawner/directional/south, @@ -70696,13 +71059,9 @@ /turf/closed/wall/r_wall, /area/mine/laborcamp) "vjj" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" +/turf/open/floor/iron/stairs/right{ + dir = 4 }, -/turf/open/floor/plating, /area/station/science/research) "vjk" = ( /obj/machinery/atmospherics/components/binary/crystallizer{ @@ -72189,6 +72548,9 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"vES" = ( +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "vEU" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -72204,6 +72566,15 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"vFb" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/storage/box/matches, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "vFg" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -72337,6 +72708,15 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"vHM" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/effect/spawner/random/armory/rubbershot, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "vHR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -73711,12 +74091,8 @@ /turf/open/floor/plating, /area/station/science/xenobiology) "wgu" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/candle_box{ - pixel_y = 5 - }, -/obj/item/storage/crayons, /obj/machinery/newscaster/directional/west, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) "wgG" = ( @@ -73900,15 +74276,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"wiy" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/spawner/random/vending/snackvend, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering Lobby" - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) "wiz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74111,15 +74478,6 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) -"wlQ" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/obj/effect/spawner/random/armory/shotgun, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) "wlR" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/iron, @@ -74216,13 +74574,8 @@ /turf/open/floor/iron/dark/textured, /area/station/security/range) "wnp" = ( -/obj/item/toy/snowball{ - pixel_x = -6; - pixel_y = -3 - }, -/mob/living/basic/pet/penguin/baby/permanent, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) +/turf/closed/wall/r_wall, +/area/station/science/cytology) "wnv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -74337,6 +74690,22 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) +"woV" = ( +/obj/structure/table, +/obj/item/petri_dish{ + pixel_y = 15; + pixel_x = -5 + }, +/obj/item/petri_dish{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/petri_dish{ + pixel_y = -6; + pixel_x = -1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "woX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75087,6 +75456,13 @@ /obj/item/folder/yellow, /turf/open/floor/iron, /area/station/cargo/storage) +"wAk" = ( +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "wAq" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -75738,8 +76114,8 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"wKn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +"wKh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) "wKv" = ( @@ -76416,15 +76792,6 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"wTE" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio9"; - name = "Xenobio Pen 9 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "wTX" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -77038,6 +77405,12 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"xdk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xdl" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -77399,6 +77772,14 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) +"xij" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/smartfridge/petri/preloaded, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xit" = ( /obj/item/book/manual/wiki/security_space_law, /obj/structure/table/wood, @@ -77458,13 +77839,11 @@ /turf/open/floor/iron, /area/station/service/janitor) "xjs" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/science/research) +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xjC" = ( /turf/open/floor/plating, /area/station/maintenance/department/cargo) @@ -77494,6 +77873,14 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) +"xjU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/white, +/area/station/science/research) "xjZ" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron/dark, @@ -77721,8 +78108,11 @@ /area/station/maintenance/starboard/upper) "xnC" = ( /obj/structure/sign/warning/fire/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xnE" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/yellow{ @@ -78002,10 +78392,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"xsD" = ( -/obj/item/food/grown/carrot, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) "xsP" = ( /obj/structure/table, /obj/item/folder/white, @@ -78023,6 +78409,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"xte" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "xtn" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -78073,16 +78468,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) -"xtV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/button/door/directional/east{ - id = "xenobio11"; - name = "Xenobio Pen 11 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "xtX" = ( /obj/structure/sign/warning/secure_area/directional/east, /obj/structure/cable, @@ -78198,6 +78583,9 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"xvx" = ( +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "xvy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/stripes/line{ @@ -78386,6 +78774,19 @@ /obj/structure/flora/grass/brown/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"xxZ" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/box/swab{ + pixel_y = 7; + pixel_x = 7 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xyc" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -78696,12 +79097,30 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"xCa" = ( +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "xCb" = ( /obj/structure/table/wood, /obj/item/folder/red, /obj/structure/cable, /turf/open/floor/wood, /area/station/security/courtroom) +"xCh" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xCj" = ( /obj/structure/sign/departments/holy, /turf/closed/wall, @@ -78901,6 +79320,13 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/dark/textured, /area/station/maintenance/starboard/lesser) +"xEQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "xEW" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/purple/fourcorners, @@ -79177,6 +79603,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"xJi" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/atmos) "xJj" = ( /turf/open/floor/iron, /area/station/science/xenobiology) @@ -79412,6 +79846,10 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_half, /area/station/ai_monitored/command/storage/eva) +"xNa" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xNn" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -79734,10 +80172,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/port) -"xSZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "xTi" = ( /obj/effect/landmark/start/clown, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80277,6 +80711,19 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) +"ybe" = ( +/obj/structure/rack, +/obj/item/soap{ + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "ybf" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/dark, @@ -80800,12 +81247,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"ylm" = ( -/obj/machinery/chem_heater/withbuffer, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/yellow/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "ylt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, /obj/structure/sign/poster/official/safety_internals/directional/east, @@ -80850,6 +81291,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"ylQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cytology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "ylU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -127280,12 +127728,12 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +xMq +xMq +xMq +xMq +xMq oSU oSU oSU @@ -127537,13 +127985,13 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +iDt +iDt +iDt +iDt +xMq +xMq oSU oSU oSU @@ -127793,14 +128241,14 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +xMq +iDt +iDt +iDt +iDt +iDt +fIt oSU oSU oSU @@ -128050,14 +128498,14 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +cbu +iDt +iDt +iDt +iDt +iLP +fIt oSU oSU oSU @@ -128305,16 +128753,16 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +xMq +cbu +iDt +iDt +iDt +iDt +mrI +fIt oSU oSU oSU @@ -128561,17 +129009,17 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +jZN +rcY +iDt +iDt +iDt +iDt +iDt +scw +fIt oSU oSU oSU @@ -128817,18 +129265,18 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +iDt +chg +iDt +iDt +iDt +iDt +qjs +fIt +fIt oSU oSU oSU @@ -129074,19 +129522,19 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +jZN +rcY +iDt +iDt +iDt +iDt +iDt +iDt +fIt +fIt oSU oSU oSU @@ -129331,20 +129779,20 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +iDt +xMq +xMq +iDt +iDt +iDt +iDt +iDt +iDt +fIt +fIt oSU oSU oSU @@ -129589,19 +130037,19 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +iDt +xMq +xMq +iDt +iDt +iDt +iDt +iDt +iDt +fIt oSU oSU oSU @@ -129847,18 +130295,18 @@ oSU oSU oSU oSU +iDt +iDt oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +xMq +xMq +xMq +xMq +xMq +xMq +xMq oSU oSU oSU @@ -165329,7 +165777,7 @@ jzy pve xjZ bGP -ayK +mIT gsF vSi kZu @@ -169358,8 +169806,8 @@ iDt iDt iDt oqL -unm -cvG +gLY +twx ldz fvK cIc @@ -169615,8 +170063,8 @@ iDt iDt iDt oqL -bFU -sZp +gvi +xCa axX auJ oVy @@ -172968,7 +173416,7 @@ yiL vDx cxO xuA -wlQ +dkB bYg yiL qLD @@ -173482,7 +173930,7 @@ yiL agF tgP rGh -oHs +vHM wyF yiL szz @@ -180710,7 +181158,7 @@ thA xMq xMq sBy -oUv +qTp xTi bpc cag @@ -188975,12 +189423,12 @@ xMq alM oxO ffe -bOY -bOY -bOY -iGU -bOY -bOY +qvN +qvN +qvN +biI +qvN +qvN qLY eGN lZX @@ -189232,12 +189680,12 @@ xMq alM oxO ffe -bOY -bOY -bOY -nkM -bOY -bOY +qvN +qvN +qvN +uUn +qvN +qvN qLY vfe tsa @@ -189489,12 +189937,12 @@ xMq alM oxO ffe -dEi -bOY -bOY -nSG -bOY -bOY +viR +qvN +qvN +bOT +qvN +qvN qLY tkP fPv @@ -189748,9 +190196,9 @@ nsp ffe qLY qLY -qsd -bCR -bOY +uHS +ujp +qvN ctF qLY qLY @@ -190268,24 +190716,24 @@ euM pMF sfv xyn -xtV +dmj wPd lVt -qbv +asb pMF -lVQ -wTE +xCh +cbP pMF -kzo -ucW +ihN +doK mBP -cnm -hGF +rjT +rXD pMF -icZ -kyR +pfJ +jrc pMF -kEA +mbb rkl nPI oxO @@ -191034,7 +191482,7 @@ ffe oqd vHq aZk -ndd +xNa pMF rdl iQM @@ -192306,16 +192754,16 @@ thA thA xMq xMq -xMq -iDt -iDt +kNC +kNC +ebX iDt iDt nfG alM alM alM -oxO +alM aDe tNJ tNJ @@ -192561,23 +193009,23 @@ thA thA thA thA -thA -xMq -xMq -xMq xMq iDt +iDt +iDt +qZG +ebX scw iDt lRI eNh -bEh oxO +bEh vAx -oLa -pvh -oxO +jXl oxO +pvh +oLa yfz oxO woH @@ -192815,25 +193263,25 @@ thA thA thA thA -thA -thA -thA -thA -thA xMq xMq +xMq +iDt iDt +xte iDt iDt +chg +iDt nfG alM -alM -alM -alM -alM -alM -alM -alM +bXf +ffe +ffe +ffe +ffe +ylQ +ffe iry oxO oxO @@ -193072,24 +193520,24 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA xMq -psb -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +xMq +lvt +lvt +lvt +kdJ iDt iDt +wnp +wnp +wnp +wnp +wnp +wnp +eLU +wAk +lPz +rOz ffe ffe ffe @@ -193329,24 +193777,24 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA xMq xMq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +lvt +lvt +lvt +kdJ +lvt +wnp +wnp +sjD +dsa +wnp +aLo +jDQ +oQV +xvx +rOz +xvx kAH mHu kwM @@ -193586,29 +194034,29 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA -thA xMq -xMq -iDt -xMq -iDt -iDt +lvt +lvt +lvt +lvt +mRp +qbz +wnp +uNH +kXR +jVi +xij +vES xnC -iDt -iDt -iDt -iDt +tLy +jih +gYO +toP kAH mHu jlj tUo -jSR +aQn hFb vqv wQi @@ -193843,19 +194291,19 @@ thA thA thA thA -tjo -tjo -tjo -thA -thA -thA -thA -thA -xMq -xMq -xMq -ebX -kNC +rcY +lvt +lvt +lvt +nNV +ege +iPK +wnp +afy +sqB +eSQ +xjs +vES uIf uIf uIf @@ -193865,7 +194313,7 @@ uIf laa qKt tUo -jSR +aQn hFb vqv qiN @@ -194100,19 +194548,19 @@ thA thA tjo tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA -thA rcY -iDt +lvt +lvt +lvt +ekN +nce +qcl +qcl +qcl +vES +mwK +vES +ybe uIf nIt nIt @@ -194122,7 +194570,7 @@ inh mWj aNu tPG -rWq +xEQ qaL vqv brt @@ -194357,28 +194805,28 @@ thA thA tjo tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA rcY -iDt -uIf +lvt +lvt +lvt +mnB +tTK +rSZ +vES +uPQ +vES +eSQ +nOo +xdk +onV stb -pOL -pOL -pOL -opD +stb +stb +stb +iWs mxc -hFb -hFb +qRO +rEj qRO mEL vqv @@ -194614,19 +195062,19 @@ thA thA tjo tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA rcY -iDt +lvt +lvt +lvt +lvt +asG +qcl +qcl +wnp +gAZ +tEE +lYS +jem uIf rmp pOL @@ -194636,7 +195084,7 @@ opD jGR hFb mzb -nwq +rEj rRl vqv wZV @@ -194871,19 +195319,19 @@ thA thA tjo tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA -rcY -iDt +qZG +ebX +lvt +lvt +lvt +kdJ +lvt +lvt +wnp +wnp +dqt +woV +xxZ uIf jcC pOL @@ -195129,18 +195577,18 @@ thA tjo tjo tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA -rcY -iDt +qZG +kNC +ebX +lvt +kdJ +lvt +lvt +lvt +wnp +qcl +qcl +wnp uIf odm odm @@ -195388,24 +195836,24 @@ tjo tjo tjo tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -rcY +qZG +kNC +nmy +kNC +kNC +kNC +uMU iDt -qlW -qlW -qlW -qlW -jwQ -jwQ -hkO -pfm +rQs +kNC +fcj +fcj +fcj +fcj +roW +roW +bId +gcy jJG jJG plX @@ -195646,21 +196094,21 @@ tjo tjo tjo tjo -tjo -tjo -thA +iDt +iDt +iDt thA thA thA thA rcY iDt -rNX -obq -mSh -wKn -tqn -wKn +fCS +iwq +cuB +iCe +lgP +iCe vcH gnq xEF @@ -195912,12 +196360,12 @@ thA thA rcY iDt -rNX -tFx -nDF -rRZ -gBF -gHW +fCS +ocd +bqX +rmG +ryX +sqH qSk sbd rEh @@ -196169,12 +196617,12 @@ thA thA rcY iDt -rNX -obq -xSZ -pME -qlB -pME +fCS +iwq +evc +wKh +aEK +wKh odf sbd jaY @@ -196424,8 +196872,8 @@ thA thA thA thA -rcY -iDt +syw +kNC bgx bgx bgx @@ -230342,7 +230790,7 @@ kLZ jPc xKj hyY -dGG +pdR huI gbv maT @@ -235730,7 +236178,7 @@ ozH bZg gst tZR -fQi +nsq dOw dOw yhe @@ -235987,7 +236435,7 @@ gst oiK bLW xjP -nkG +sXf gxO dKK xmN @@ -237499,7 +237947,7 @@ bZx bZx bZx bZx -gri +snv kQi oWk bWn @@ -237756,7 +238204,7 @@ bZx bZx bZx bZx -gri +snv krQ skZ bWn @@ -238013,7 +238461,7 @@ bZx bZx bZx bZx -gri +snv krQ gYp bWn @@ -238270,7 +238718,7 @@ bZx bZx bZx bZx -gri +snv krQ thI bWn @@ -238527,7 +238975,7 @@ bZx bZx bZx bZx -gri +snv krQ gYp bWn @@ -238784,7 +239232,7 @@ bZx bZx bZx bZx -gri +snv gMK huT bWn @@ -239041,7 +239489,7 @@ bZx bZx bZx bZx -gri +snv lwO vTg bWn @@ -242658,7 +243106,7 @@ xwC utR pAZ bln -aAf +qWZ oxe vmj aqB @@ -242950,7 +243398,7 @@ uwO rSx kRP kRP -klE +lSw cAR kNk tmA @@ -243189,7 +243637,7 @@ xLF lpM oGQ wKw -ljG +vFb mhQ hUV aks @@ -243469,7 +243917,7 @@ kQf hDh vnt keP -oRB +xJi ctr avk gxP @@ -243480,7 +243928,7 @@ nKj fwW uxp afK -wiy +bOy vfU pdV hqV @@ -246784,7 +247232,7 @@ azw eub eyc qPt -ylm +uTc biR dmI tdE @@ -250409,7 +250857,7 @@ vQP rdG jzY xlh -oJK +jQt uep uep uep @@ -250650,7 +251098,7 @@ rDa mrB jQD slc -iWK +dMB rjC qjF pPO @@ -254511,12 +254959,12 @@ wHc aEA dng dAB -ily -ily -ily -ily -ily -ily +ubh +ubh +ubh +ubh +ubh +ubh qLY pnA qFp @@ -254768,12 +255216,12 @@ wHc fPO pTU itt -ily -ily -ily -ily -ily -ily +ubh +ubh +ubh +ubh +ubh +ubh qLY baF fvk @@ -255025,12 +255473,12 @@ wHc oMT emK uvU -ily -ily -ily -ily -ily -ily +ubh +ubh +ubh +ubh +ubh +ubh qLY oCA fvk @@ -257845,7 +258293,7 @@ mbK jQS eNK aYJ -aYJ +sSz aYJ aYJ bXL @@ -258102,10 +258550,10 @@ aYJ aYJ wUt urK -urK +xjU nJT urK -xjs +urK urK iRx pJV @@ -258619,8 +259067,8 @@ oHK oHK vjj fLU -vjj -vjj +rDH +usP wLl wol hnP @@ -258875,8 +259323,8 @@ vvE tJG oHK goq -wnp -kdJ +goq +rDH usP wLl nsZ @@ -259132,7 +259580,7 @@ gXJ wgU oHK pnq -xsD +goq rDH pvU wLl @@ -259390,7 +259838,7 @@ hhP oHK iZl iZl -iZl +ieb iZl wLl tur @@ -260156,7 +260604,7 @@ fOR tFF tia qNn -nAI +hek gNi krY clo @@ -261714,7 +262162,7 @@ rjK nlP xTV imy -suv +dHM auK vaa xLq diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index d399a2c5b353f..f37d9a419f73e 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -588,11 +588,12 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "alA" = ( -/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, +/obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ - dir = 4 + dir = 4; + name = "Quartermaster Junction" }, -/obj/structure/cable, +/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /turf/open/floor/plating, /area/station/maintenance/port/fore) "alE" = ( @@ -655,12 +656,6 @@ /obj/effect/turf_decal/tile/green/anticorner/contrasted, /turf/open/floor/iron, /area/station/security/courtroom) -"amp" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "amy" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -1018,7 +1013,6 @@ dir = 8 }, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) "aum" = ( @@ -1737,6 +1731,20 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) +"aHH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "aHM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -1974,14 +1982,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) -"aLq" = ( -/obj/machinery/camera/motion/directional/south{ - active_power_usage = 0; - c_tag = "Armory - External"; - use_power = 0 - }, -/turf/open/space/basic, -/area/space/nearstation) "aLr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ dir = 1 @@ -2215,9 +2215,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/greater) @@ -2716,6 +2713,14 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) +"aYl" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Test Chamber"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "aYw" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Three"; @@ -3474,25 +3479,6 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/wood, /area/station/service/library) -"blc" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Security Post - Medbay"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/light/small/directional/north, -/obj/structure/table/reinforced, -/obj/machinery/requests_console/directional/north{ - department = "Security"; - name = "Security Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "blu" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/west, @@ -3773,6 +3759,16 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bpY" = ( +/obj/machinery/light/small/directional/west, +/obj/item/clothing/mask/animal/horsehead, +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/south, +/obj/item/cigarette/pipe, +/obj/item/clothing/mask/fakemoustache, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "bqg" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/east, @@ -3789,6 +3785,11 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"bqC" = ( +/obj/structure/table/wood, +/obj/item/cigarette/pipe, +/turf/open/floor/wood, +/area/station/commons/lounge) "bqJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3958,6 +3959,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"btC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "btG" = ( /obj/structure/window/spawner/directional/west, /obj/structure/table, @@ -4202,6 +4209,10 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"bxr" = ( +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "bxE" = ( /obj/machinery/camera/directional/south{ c_tag = "Chemistry South"; @@ -4391,13 +4402,13 @@ "bBy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8 - }, -/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8 + }, +/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, /turf/open/floor/iron, /area/station/hallway/primary/port) "bBA" = ( @@ -4540,6 +4551,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) +"bEv" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "bEA" = ( /obj/structure/cable, /obj/machinery/camera/directional/south{ @@ -4598,10 +4617,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/security/checkpoint/customs) -"bFa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "bFr" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -4628,6 +4643,17 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/science/robotics/lab) +"bFN" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/button/door/directional/north{ + id = "pharmacy_shutters"; + name = "pharmacy shutters control"; + pixel_x = 24; + req_access = list("medical") + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "bGo" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -4830,10 +4856,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"bJH" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/space/basic, -/area/space/nearstation) "bJQ" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/bot, @@ -4852,6 +4874,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bJX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "bKv" = ( /obj/item/pen, /obj/structure/table/reinforced, @@ -5446,15 +5477,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"bVz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "bVB" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.3-Escape-3"; @@ -5691,6 +5713,18 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"bZb" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "bZq" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/stripes/line{ @@ -5752,9 +5786,9 @@ /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "caV" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, +/obj/vehicle/sealed/mecha/ripley/cargo, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron/recharge_floor, /area/station/cargo/warehouse) "cbg" = ( /obj/effect/turf_decal/tile/purple{ @@ -5982,6 +6016,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"cgP" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "cgZ" = ( /obj/machinery/light_switch/directional/east, /obj/structure/cable, @@ -6625,6 +6663,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"cuh" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/port/fore) "cuk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -6985,6 +7027,14 @@ }, /turf/open/floor/wood, /area/station/service/library) +"cyE" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cyG" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -7074,6 +7124,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/spawner/random/structure/crate, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "cAm" = ( @@ -7141,6 +7194,25 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"cCM" = ( +/obj/structure/lattice/catwalk, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/cigarette/rollie/cannabis{ + pixel_y = -3 + }, +/turf/open/space/basic, +/area/space/nearstation) "cCN" = ( /obj/item/stack/sheet/iron/fifty, /obj/item/stack/sheet/iron/fifty, @@ -7571,10 +7643,9 @@ /turf/open/floor/wood, /area/station/service/library) "cLN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/firealarm/directional/west, +/obj/structure/sign/departments/exodrone/directional/east, /turf/open/floor/plating, -/area/station/cargo/drone_bay) +/area/station/maintenance/port/fore) "cMb" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -7703,6 +7774,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) +"cOT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "cOX" = ( /obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -7882,6 +7959,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"cTk" = ( +/obj/machinery/camera/motion/directional/south{ + active_power_usage = 0; + c_tag = "Armory - External"; + use_power = 0 + }, +/turf/open/space/basic, +/area/space/nearstation) "cTl" = ( /obj/structure/table/glass, /obj/item/reagent_containers/syringe, @@ -8054,22 +8139,6 @@ dir = 1 }, /area/station/engineering/atmos/pumproom) -"cWz" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/spawner/directional/south, -/obj/structure/window/spawner/directional/north, -/obj/structure/window/spawner/directional/west, -/obj/machinery/door/window/right/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "cWD" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -8167,10 +8236,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"cYj" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cYx" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -8299,17 +8364,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"dbe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/stripes/corner, -/obj/item/reagent_containers/cup/soda_cans/pwr_game, -/obj/structure/sign/poster/contraband/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "dbh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9440,6 +9494,7 @@ /obj/structure/cable, /obj/effect/spawner/random/maintenance, /obj/machinery/recharge_station, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) "dvn" = ( @@ -9529,6 +9584,22 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dwI" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "dwJ" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -9563,6 +9634,16 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/structure/table, +/obj/item/storage/box/bandages{ + pixel_y = 6; + pixel_x = 4 + }, +/obj/effect/spawner/random/entertainment/deck, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -6; + pixel_y = 8 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "dxq" = ( @@ -9624,14 +9705,6 @@ }, /turf/open/floor/plating, /area/station/science/lab) -"dzs" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron, -/area/station/engineering/atmos) "dzw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -9814,12 +9887,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"dEr" = ( -/obj/machinery/light/small/dim/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "dEx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9830,6 +9897,14 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"dEF" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "dEH" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -10134,10 +10209,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/storage) -"dKx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "dKC" = ( /turf/closed/wall, /area/station/maintenance/aft/lesser) @@ -10199,6 +10270,12 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"dLm" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "dLn" = ( /obj/structure/rack, /obj/item/wrench/medical, @@ -10743,6 +10820,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/locker) +"dTN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "dTQ" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -10776,6 +10857,7 @@ /area/station/medical/chemistry) "dUd" = ( /obj/structure/noticeboard/qm, +/obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/command/heads_quarters/qm) "dUj" = ( @@ -10798,17 +10880,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"dUG" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -7; - pixel_y = 13 - }, -/obj/item/reagent_containers/condiment/flour{ - pixel_x = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dVb" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -11012,6 +11083,9 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"dXU" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "dYa" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, @@ -11200,6 +11274,7 @@ /obj/effect/turf_decal/trimline/brown/warning{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/sorting) "ebg" = ( @@ -11208,10 +11283,6 @@ /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/storage) -"ebq" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ebr" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=0-SecurityDesk"; @@ -12047,6 +12118,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"enG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "enK" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -12570,25 +12647,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"ewr" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ewB" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -12717,6 +12775,23 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"ezw" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/kirbyplants/random{ + pixel_x = -7 + }, +/obj/machinery/camera/directional/north, +/obj/machinery/digital_clock/directional/east, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/item/poster/traitor, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/qm) "ezT" = ( /obj/machinery/door/airlock/research{ name = "Research Division Access" @@ -13067,24 +13142,12 @@ /area/station/commons/lounge) "eIc" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/dim/directional/south, -/obj/machinery/mech_bay_recharge_port{ +/obj/structure/sign/warning/directional/south, +/obj/machinery/computer/mech_bay_power_console{ dir = 8 }, -/obj/structure/sign/warning/directional/south, /turf/open/floor/iron, /area/station/cargo/warehouse) -"eIf" = ( -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/structure/rack, -/obj/item/storage/briefcase/secure, -/obj/item/cigarette/cigar, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "eIy" = ( /obj/structure/cable, /obj/machinery/photocopier, @@ -13356,6 +13419,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eMK" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "eMW" = ( /obj/structure/flora/bush/pale/style_random, /obj/structure/flora/bush/ferny/style_random, @@ -13518,6 +13588,16 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"ePT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Cytology Pen"; + req_access = list("research") + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "ePX" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -13623,6 +13703,10 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) +"eRn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "eRR" = ( /obj/structure/table, /obj/item/screwdriver{ @@ -13700,6 +13784,32 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"eTt" = ( +/obj/structure/cable, +/obj/structure/table/wood/fancy/black, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = 3; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/keycard_auth/directional/north{ + pixel_x = -5 + }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/qm) "eTI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -15047,6 +15157,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"fpD" = ( +/obj/machinery/vatgrower, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "fpE" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen, @@ -15473,15 +15587,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) -"fAk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/arrows/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "fAt" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -15899,6 +16004,10 @@ /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) +"fIR" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/space/basic, +/area/space/nearstation) "fIS" = ( /obj/machinery/airalarm/directional/south, /obj/structure/disposalpipe/segment{ @@ -16153,6 +16262,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) +"fNz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/obj/item/reagent_containers/cup/soda_cans/pwr_game, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "fNI" = ( /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/wood, @@ -16201,9 +16320,6 @@ /turf/open/floor/iron/dark, /area/station/security/range) "fOB" = ( -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /obj/machinery/door/airlock/maintenance{ name = "Brig Maintenance" @@ -16213,6 +16329,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "fOS" = ( @@ -16684,12 +16803,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/library) -"fZt" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/space/basic, -/area/space/nearstation) "fZw" = ( /obj/structure/table, /obj/item/clothing/gloves/latex, @@ -16873,6 +16986,12 @@ }, /turf/open/floor/grass, /area/station/science/research) +"gda" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) "gdb" = ( /turf/closed/wall/r_wall, /area/station/security/range) @@ -17109,6 +17228,18 @@ "ghL" = ( /turf/closed/wall/r_wall, /area/space/nearstation) +"gil" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "giA" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/computer) @@ -17181,6 +17312,18 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/service/hydroponics) +"gkC" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "gkD" = ( /obj/machinery/recharger{ pixel_y = 3 @@ -17373,12 +17516,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"gnW" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "gog" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -17960,23 +18097,6 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"gyc" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_x = -24 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = 24; - pixel_y = -6 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 24; - pixel_y = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "gyg" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 9 @@ -18024,6 +18144,10 @@ /obj/machinery/light/no_nightlight/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) +"gyK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "gyO" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -18051,6 +18175,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"gzO" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "gzW" = ( /obj/structure/chair/office{ dir = 8 @@ -18734,6 +18864,23 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"gLU" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding{ + dir = 9 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron, +/area/station/science/lab) "gLY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -18948,6 +19095,7 @@ }, /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/sorting) "gPY" = ( @@ -18982,9 +19130,6 @@ /obj/effect/spawner/random/trash/janitor_supplies, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gQv" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gQw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -19070,13 +19215,6 @@ "gTt" = ( /turf/open/floor/carpet, /area/station/command/heads_quarters/hos) -"gTx" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "gTC" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -19542,10 +19680,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/main) -"hcj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "hcl" = ( /obj/item/target, /obj/effect/turf_decal/stripes/line{ @@ -20197,9 +20331,6 @@ /obj/machinery/door/airlock/maintenance{ name = "Warehouse Maintenance" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, @@ -20247,10 +20378,6 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) -"hph" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "hpi" = ( /obj/effect/turf_decal/plaque{ icon_state = "L2" @@ -20607,12 +20734,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"hvz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/maintenance/port/fore) "hvB" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/brown/filled/warning, @@ -20933,10 +21054,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) -"hAd" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "hAk" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -22199,11 +22316,12 @@ /turf/open/floor/iron/dark, /area/station/security/office) "hYl" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/sink{ dir = 8; pixel_x = 14 }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) "hYr" = ( @@ -23353,26 +23471,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"isi" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/iron/white, -/area/station/security/prison/mess) "isk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23795,10 +23893,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"izb" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "izd" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24603,6 +24697,18 @@ /obj/item/banner/cargo, /turf/open/space/basic, /area/space/nearstation) +"iNK" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "iNQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -24986,6 +25092,18 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron, /area/station/security/checkpoint/science) +"iTQ" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Doors"; + pixel_y = 1; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "iTX" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ @@ -25846,7 +25964,6 @@ "jjn" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/greater) "jjs" = ( @@ -26522,6 +26639,16 @@ }, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) +"jvo" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jvr" = ( /obj/structure/table/glass, /obj/item/folder/blue, @@ -26979,6 +27106,7 @@ }, /obj/effect/turf_decal/trimline/brown/filled/corner, /obj/effect/turf_decal/trimline/white/corner, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/sorting) "jBC" = ( @@ -27808,9 +27936,6 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -27854,13 +27979,18 @@ "jQr" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jQz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "jQM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -28204,13 +28334,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port) -"jVe" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) "jVl" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -28488,6 +28611,17 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"kaU" = ( +/obj/structure/closet{ + name = "evidence closet 3" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/item/poster/traitor, +/turf/open/floor/iron/dark, +/area/station/security/evidence) "kbo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28576,6 +28710,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/bridge) +"kcu" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "kcF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28764,6 +28901,10 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/virology) +"kgC" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "kgV" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -28825,6 +28966,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/primary/central) +"kif" = ( +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag, +/obj/item/emptysandbag{ + pixel_x = 8 + }, +/obj/item/emptysandbag{ + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "kir" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 @@ -28900,6 +29056,25 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/station/service/theater) +"kkk" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "kkr" = ( /obj/structure/plasticflaps/opaque, /obj/machinery/door/poddoor/preopen{ @@ -29179,16 +29354,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/work) -"koj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "kop" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29405,6 +29570,10 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"ktw" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/space/basic, +/area/space/nearstation) "ktz" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -30005,32 +30174,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"kEk" = ( -/obj/structure/cable, -/obj/structure/table/wood/fancy/black, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_x = 3; - pixel_y = 14 - }, -/obj/item/reagent_containers/cup/glass/bottle/champagne{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/keycard_auth/directional/north{ - pixel_x = -5 - }, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/qm) "kEm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30238,7 +30381,7 @@ /area/station/maintenance/port) "kIJ" = ( /obj/effect/spawner/random/maintenance, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 4 }, /turf/open/floor/plating, @@ -30280,9 +30423,6 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -31442,11 +31582,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"leO" = ( -/obj/structure/table, -/obj/item/cigarette/pipe, -/turf/open/floor/plating, -/area/station/maintenance/port) "leP" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 4 @@ -31656,31 +31791,18 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/pen/red{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/pen/fountain{ - pixel_x = 10 - }, -/obj/item/pen/blue{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = 10 +/obj/structure/cable, +/obj/structure/railing{ + dir = 9 }, -/obj/structure/table, -/obj/item/stamp{ - pixel_x = -9; - pixel_y = -1 +/obj/machinery/disposal/bin/tagger, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/item/stamp/denied{ - pixel_y = -1 +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 }, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron, +/turf/open/floor/iron, /area/station/cargo/storage) "liX" = ( /obj/structure/cable, @@ -31689,16 +31811,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/lobby) -"liZ" = ( -/obj/machinery/light/small/directional/west, -/obj/item/clothing/mask/animal/horsehead, -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/south, -/obj/item/cigarette/pipe, -/obj/item/clothing/mask/fakemoustache, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "lje" = ( /obj/machinery/camera/directional/south{ c_tag = "Starboard Primary Hallway - Auxiliary Tool Storage" @@ -31749,9 +31861,15 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "ljH" = ( -/obj/effect/decal/cleanable/generic, -/obj/vehicle/sealed/mecha/ripley/cargo, -/turf/open/floor/iron/recharge_floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron, /area/station/cargo/warehouse) "ljL" = ( /obj/structure/chair/comfy/black, @@ -32758,12 +32876,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port) -"lHu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "lHx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -33206,6 +33318,7 @@ dir = 4 }, /obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) "lPC" = ( @@ -33225,6 +33338,22 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/security/prison) +"lPS" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 10; + pixel_y = -1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "lPZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -33285,18 +33414,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"lRs" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron, -/area/station/science/xenobiology) "lRA" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33873,6 +33990,20 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"mcF" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology"); + sync_doors = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mcP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34714,23 +34845,6 @@ dir = 1 }, /area/station/medical/treatment_center) -"mtk" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/item/kirbyplants/random{ - pixel_x = -7 - }, -/obj/machinery/camera/directional/north, -/obj/machinery/digital_clock/directional/east, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/poster/traitor, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/qm) "mtu" = ( /turf/open/floor/engine, /area/station/science/xenobiology) @@ -34899,7 +35013,7 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, -/obj/machinery/incident_display/delam/directional/south, +/obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) "mwj" = ( @@ -35081,6 +35195,26 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/cargo/sorting) +"mzm" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "mzu" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35319,6 +35453,19 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"mDC" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mDL" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/delivery, @@ -35498,10 +35645,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mGE" = ( -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/space/basic, -/area/space/nearstation) "mGI" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -35698,14 +35841,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mKr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mKu" = ( /obj/machinery/light_switch/directional/west, /obj/structure/cable, @@ -36050,18 +36185,6 @@ dir = 1 }, /area/station/security/prison) -"mRc" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "mRg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36372,6 +36495,12 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/bar/backroom) +"mWd" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "mWA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36673,18 +36802,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central) -"naD" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "naN" = ( /obj/machinery/button/door/directional/west{ id = "transitlockdown"; @@ -37305,6 +37422,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) +"nnh" = ( +/obj/machinery/light_switch/directional/south, +/obj/structure/table/wood, +/obj/item/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/cigarette/cigar, +/obj/item/reagent_containers/cup/glass/flask/gold, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) "nnl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/disposalpipe/segment{ @@ -37562,12 +37690,12 @@ "nrB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/item/kirbyplants/random, /obj/structure/railing{ - dir = 9 + dir = 8 }, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 + dir = 8 }, /turf/open/floor/iron, /area/station/cargo/storage) @@ -37840,18 +37968,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/cargo/storage) -"nux" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "nuB" = ( /obj/structure/secure_safe/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -37961,6 +38077,17 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer5, /turf/closed/wall, /area/station/engineering/atmos/pumproom) +"nwL" = ( +/obj/machinery/computer/upload/ai, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "nwT" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -38380,19 +38507,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"nDD" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron, -/area/station/science/xenobiology) "nDG" = ( /obj/item/radio/intercom/directional/south, /turf/closed/wall, @@ -38605,17 +38719,6 @@ /obj/effect/turf_decal/siding/purple/corner, /turf/open/floor/iron/white, /area/station/science/cytology) -"nIa" = ( -/obj/machinery/computer/upload/ai, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "nIj" = ( /obj/structure/easel, /turf/open/floor/plating, @@ -38640,6 +38743,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"nJn" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "nJo" = ( /obj/machinery/smartfridge/organ, /obj/machinery/door/poddoor/shutters/preopen{ @@ -38650,6 +38760,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"nJr" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "nJu" = ( /obj/structure/closet/secure_closet/security/sec, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -38657,6 +38771,23 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nJA" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_x = -24 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 24; + pixel_y = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "nJG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -38807,6 +38938,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"nLZ" = ( +/obj/item/toy/beach_ball/branded, +/turf/open/space/basic, +/area/space/nearstation) "nMf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38886,10 +39021,10 @@ /turf/open/floor/iron, /area/station/hallway/secondary/command) "nNB" = ( -/obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/arrows/red{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) "nNH" = ( @@ -39329,13 +39464,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/space, /area/space/nearstation) -"nXb" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron, -/area/station/commons/toilet/auxiliary) "nXm" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -39485,6 +39613,12 @@ /obj/machinery/bookbinder, /turf/open/floor/wood, /area/station/service/library) +"nZL" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "oac" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -39786,6 +39920,12 @@ /obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /turf/open/floor/iron, /area/station/service/hydroponics) +"oet" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "oew" = ( /turf/open/floor/iron, /area/station/commons/fitness/recreation) @@ -40015,6 +40155,7 @@ /obj/effect/turf_decal/arrows/red{ dir = 1 }, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/station/cargo/warehouse) "okj" = ( @@ -40132,12 +40273,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"omf" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "omm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40261,11 +40396,6 @@ /obj/structure/table, /turf/open/floor/iron/dark, /area/station/security/office) -"ooM" = ( -/obj/structure/table/wood, -/obj/item/cigarette/pipe, -/turf/open/floor/wood, -/area/station/commons/lounge) "ooP" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -40556,16 +40686,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"oue" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/item/plunger{ - pixel_x = -7; - pixel_y = 20 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/cytology) "ouj" = ( /obj/structure/bed/medical/emergency, /obj/structure/bed/medical/emergency, @@ -41250,6 +41370,14 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/medical/medbay/central) +"oGj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/portable_atmospherics/canister, +/obj/item/radio/intercom/directional/north, +/obj/structure/sign/warning/gas_mask/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "oGn" = ( /obj/machinery/door/airlock/maintenance{ name = "Fuel Closet" @@ -41457,16 +41585,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"oJK" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "oJL" = ( /obj/machinery/computer/atmos_control/nitrogen_tank{ dir = 1 @@ -42713,15 +42831,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"piy" = ( -/obj/machinery/camera/directional/west{ - active_power_usage = 0; - c_tag = "Turbine Vent"; - network = list("turbine"); - use_power = 0 - }, -/turf/open/space/basic, -/area/space/nearstation) "piz" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -42848,13 +42957,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"pkP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/plumbing/growing_vat, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/cytology) "pkQ" = ( /obj/machinery/door/airlock/external{ name = "Security External Airlock" @@ -43130,9 +43232,6 @@ "pqc" = ( /obj/machinery/door/firedoor, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "pqi" = ( @@ -43838,15 +43937,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/station/command/bridge) -"pCR" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/siding/purple{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/storage) "pDe" = ( /obj/machinery/computer/telecomms/server{ dir = 8; @@ -44191,17 +44281,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"pJc" = ( -/obj/machinery/chem_dispenser, -/obj/machinery/button/door/directional/north{ - id = "pharmacy_shutters"; - name = "pharmacy shutters control"; - pixel_x = 24; - req_access = list("medical") - }, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) "pJf" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -44771,15 +44850,8 @@ /area/station/cargo/warehouse) "pTf" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron/goonplaque, /area/station/hallway/primary/port) -"pTl" = ( -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/space/basic, -/area/space/nearstation) "pTm" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -44910,15 +44982,12 @@ /area/station/security/brig) "pVV" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/effect/spawner/random/entertainment/deck, -/obj/structure/table, -/obj/effect/spawner/random/entertainment/cigarette_pack{ - pixel_x = -6; - pixel_y = 8 +/obj/machinery/disposal/bin{ + name = "Jim Norton's Quebecois Coffee disposal unit" }, -/obj/item/storage/box/bandages{ - pixel_y = 6; - pixel_x = 4 +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) @@ -45796,6 +45865,9 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) +"qmi" = ( +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "qmu" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 @@ -45935,6 +46007,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron, /area/station/cargo/warehouse) "qph" = ( @@ -46212,6 +46285,7 @@ "quT" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) "qvJ" = ( @@ -46416,9 +46490,6 @@ "qzC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "qzE" = ( @@ -46866,6 +46937,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/folder/yellow{ + pixel_y = -5; + pixel_x = 5 + }, +/obj/item/pen/blue{ + pixel_x = 4; + pixel_y = -3 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "qHK" = ( @@ -47579,20 +47663,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) -"qRR" = ( -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag, -/obj/item/emptysandbag{ - pixel_x = 8 - }, -/obj/item/emptysandbag{ - pixel_x = -9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "qRS" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48068,9 +48138,6 @@ "qZO" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "qZV" = ( @@ -48152,6 +48219,15 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/wood, /area/station/commons/lounge) +"rbd" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "rbi" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -48737,7 +48813,6 @@ dir = 6 }, /obj/machinery/light/directional/west, -/obj/structure/disposalpipe/trunk, /turf/open/floor/iron, /area/station/cargo/storage) "rnb" = ( @@ -48851,9 +48926,6 @@ /obj/effect/spawner/random/trash/caution_sign, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rok" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "roF" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -48971,14 +49043,6 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron, /area/station/service/bar) -"rrJ" = ( -/obj/structure/filingcabinet, -/obj/item/folder/documents, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/poster/traitor, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "rrL" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/preopen{ @@ -49083,6 +49147,10 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"rtj" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "rtz" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood{ @@ -49330,17 +49398,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"rwq" = ( -/obj/machinery/light_switch/directional/south, -/obj/structure/table/wood, -/obj/item/razor{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/cigarette/cigar, -/obj/item/reagent_containers/cup/glass/flask/gold, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain/private) "rwx" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -49520,6 +49577,7 @@ "rzo" = ( /obj/structure/cable, /obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) "rzq" = ( @@ -50191,18 +50249,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"rMl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"rMe" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Doors"; + pixel_y = 4; + req_access = list("xenobiology") }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron, -/area/station/hallway/primary/port) +/area/station/science/xenobiology) "rMr" = ( /obj/structure/table/glass, /obj/item/experi_scanner{ @@ -50358,9 +50416,13 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "rPp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution, /turf/open/floor/iron, /area/station/cargo/warehouse) "rPA" = ( @@ -50404,6 +50466,25 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"rQk" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Security Post - Medbay"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/light/small/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/requests_console/directional/north{ + department = "Security"; + name = "Security Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "rQl" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -50801,6 +50882,9 @@ }, /turf/open/floor/iron, /area/station/security/prison/visit) +"rXT" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "rXW" = ( /obj/item/radio/intercom/directional/west, /obj/structure/table/glass, @@ -50993,23 +51077,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"sat" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding{ - dir = 9 - }, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/micro_laser, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron, -/area/station/science/lab) "saB" = ( /obj/machinery/button/door/directional/west{ id = "atmoshfr"; @@ -51044,25 +51111,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/service/cafeteria) -"saK" = ( -/obj/structure/lattice/catwalk, -/obj/item/reagent_containers/cup/glass/bottle/rum{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/glass/colocup{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/glass/colocup{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/cigarette/rollie/cannabis{ - pixel_y = -3 - }, -/turf/open/space/basic, -/area/space/nearstation) "saN" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/wood, @@ -51247,10 +51295,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"sdS" = ( -/obj/item/toy/beach_ball/branded, -/turf/open/space/basic, -/area/space/nearstation) "sdW" = ( /obj/structure/sign/warning/radiation/rad_area/directional/north, /obj/effect/turf_decal/bot_white, @@ -51572,9 +51616,6 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "slC" = ( @@ -51631,13 +51672,13 @@ /area/station/engineering/atmos) "smB" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/autolathe, /obj/structure/railing{ dir = 8 }, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, +/obj/machinery/autolathe, /turf/open/floor/iron, /area/station/cargo/storage) "smG" = ( @@ -51690,25 +51731,15 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) -"snS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "snZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, -/obj/structure/railing{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 }, /turf/open/floor/iron, /area/station/cargo/storage) @@ -51838,10 +51869,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/library) -"sri" = ( -/obj/machinery/duct, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/cytology) "srk" = ( /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, @@ -51912,22 +51939,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"stt" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology") - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 10; - pixel_y = -1 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "stC" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -52148,10 +52159,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"swB" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "swP" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -52425,21 +52432,31 @@ /area/station/engineering/atmos) "sCc" = ( /obj/structure/table, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 2 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 5 +/obj/structure/cable, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = 10 }, -/obj/item/clothing/gloves/cargo_gauntlet{ +/obj/item/pen/blue{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/pen/fountain{ + pixel_x = 10 + }, +/obj/item/pen/red{ + pixel_x = 8; pixel_y = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/item/stamp/denied{ + pixel_y = -1 }, -/obj/structure/cable, -/obj/item/reagent_containers/cup/soda_cans/random{ - pixel_x = -9 +/obj/item/stamp{ + pixel_x = -9; + pixel_y = -1 }, /turf/open/floor/catwalk_floor/iron, /area/station/cargo/storage) @@ -52826,14 +52843,6 @@ "sHu" = ( /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sHJ" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "sHM" = ( /obj/effect/turf_decal/bot/right, /turf/open/floor/engine, @@ -52906,23 +52915,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/supermatter) -"sKb" = ( -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar/cohiba, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/station/command/corporate_showroom) "sKs" = ( /obj/structure/closet/bombcloset/security, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -53186,18 +53178,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sOp" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "sOF" = ( /obj/structure/light_construct/directional/east, /turf/open/floor/wood, @@ -53286,6 +53266,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "sPV" = ( @@ -54041,18 +54024,6 @@ /obj/structure/bookcase/random/nonfiction, /turf/open/floor/wood, /area/station/service/library) -"tcc" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Doors"; - pixel_y = 1; - req_access = list("xenobiology") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "tck" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54359,10 +54330,10 @@ /area/station/cargo/miningoffice) "tik" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, +/obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/iron, /area/station/cargo/storage) "tit" = ( @@ -54509,10 +54480,6 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron, /area/station/security/prison) -"tlg" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "tlh" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -54666,6 +54633,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"tnF" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "tnG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/showcase/machinery/oldpod{ @@ -55828,6 +55801,10 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"tLb" = ( +/obj/structure/sign/warning/electric_shock/directional/south, +/turf/open/space/basic, +/area/space/nearstation) "tLc" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -56495,6 +56472,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"tVk" = ( +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/structure/rack, +/obj/item/storage/briefcase/secure, +/obj/item/cigarette/cigar, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "tVm" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -58096,12 +58084,6 @@ "uwQ" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"uwT" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "uxa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58238,6 +58220,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"uzl" = ( +/obj/machinery/camera/directional/west{ + active_power_usage = 0; + c_tag = "Turbine Vent"; + network = list("turbine"); + use_power = 0 + }, +/turf/open/space/basic, +/area/space/nearstation) "uzJ" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -58341,9 +58332,8 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/storage) "uBG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 }, /obj/effect/turf_decal/siding/purple{ dir = 9 @@ -58359,13 +58349,6 @@ dir = 8 }, /area/station/medical/medbay/lobby) -"uCe" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/plumbing/input{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/cytology) "uCq" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -59801,20 +59784,6 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vap" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Doors"; - pixel_y = 4; - req_access = list("xenobiology"); - sync_doors = 4 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "vaB" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -59844,14 +59813,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/engineering/main) -"vbi" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "vbq" = ( /obj/structure/sign/map/right{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -60124,6 +60085,13 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"vhb" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "vhj" = ( /obj/structure/chair{ name = "Judge" @@ -60188,6 +60156,25 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) +"vis" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/poster/traitor, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"viF" = ( +/obj/machinery/computer/upload/borg, +/obj/machinery/door/window/left/directional/south{ + name = "Cyborg Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "viH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/structure/window/reinforced, @@ -60719,9 +60706,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"vqC" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "vqU" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -60752,20 +60736,6 @@ /obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"vrp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vru" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -61076,6 +61046,11 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"vwi" = ( +/obj/structure/table, +/obj/item/cigarette/pipe, +/turf/open/floor/plating, +/area/station/maintenance/port) "vwn" = ( /obj/item/kirbyplants/organic/plant10, /turf/open/floor/wood/large, @@ -61413,6 +61388,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"vCu" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron, +/area/station/commons/toilet/auxiliary) "vCC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -62106,6 +62088,10 @@ /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, /area/station/maintenance/central) +"vOz" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/cytology) "vOK" = ( /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/bot, @@ -62669,6 +62655,19 @@ dir = 5 }, /obj/structure/cable, +/obj/structure/table, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 8 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 5 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/soda_cans/random{ + pixel_x = -9 + }, /turf/open/floor/catwalk_floor/iron, /area/station/cargo/storage) "vWF" = ( @@ -63107,14 +63106,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/lobby) -"wea" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Test Chamber"; - network = list("ss13","rd","xeno") - }, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "wem" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -63701,6 +63692,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"wpo" = ( +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar/cohiba, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/station/command/corporate_showroom) "wpr" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -64442,14 +64450,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/science/server) -"wCE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/portable_atmospherics/canister, -/obj/item/radio/intercom/directional/north, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) "wCL" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -65471,12 +65471,6 @@ "wXF" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) -"wXO" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "wXP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65967,9 +65961,6 @@ "xgx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/cargo/storage) "xgB" = ( @@ -66664,6 +66655,10 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"xtw" = ( +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "xtz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67120,12 +67115,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"xBp" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xBq" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67428,17 +67417,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xFZ" = ( -/obj/machinery/computer/upload/borg, -/obj/machinery/door/window/left/directional/south{ - name = "Cyborg Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "xGa" = ( /obj/structure/rack, /obj/item/storage/box, @@ -67544,6 +67522,17 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) +"xIK" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 13 + }, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "xIM" = ( /obj/machinery/computer/operating{ dir = 8 @@ -67965,10 +67954,6 @@ "xRZ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"xSq" = ( -/obj/item/stack/rods, -/turf/open/space/basic, -/area/space/nearstation) "xSO" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -68009,17 +67994,6 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron, /area/station/science/research) -"xTr" = ( -/obj/structure/closet{ - name = "evidence closet 3" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/item/poster/traitor, -/turf/open/floor/iron/dark, -/area/station/security/evidence) "xTw" = ( /turf/closed/wall/r_wall, /area/station/medical/medbay/central) @@ -68405,6 +68379,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"xYZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "xZb" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -68604,6 +68582,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ycv" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ycw" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -79492,10 +79474,10 @@ lMJ aaa aaa aaa -omf +mWd aaa aaa -omf +mWd aaa aaa aaa @@ -81369,7 +81351,7 @@ aaa aaa aaa aaa -sdS +nLZ aaa aaa aaa @@ -81857,7 +81839,7 @@ aaa aaa aaa aaa -omf +mWd aaa aaa aaa @@ -82651,7 +82633,7 @@ aaa aaa aaa aaa -tlg +bxr aaa aaa lZV @@ -83687,7 +83669,7 @@ qPC rKQ xjH xjH -mGE +fIR aaa aaa lMJ @@ -84715,7 +84697,7 @@ rKQ rKQ xjH xjH -pTl +ktw aaa aaa lMJ @@ -84857,7 +84839,7 @@ aaa aaa aaa aaa -xSq +xtw aaa fcJ aaa @@ -85165,7 +85147,7 @@ fcq pck lku uEw -snS +nJG jjn jQr kKd @@ -85385,7 +85367,7 @@ aaa aaa aaa aaa -omf +mWd aaa aaa lMJ @@ -85427,8 +85409,8 @@ wUt fcq jPE auh -koj -rMl +crr +crr crr qer crr @@ -85447,7 +85429,7 @@ pOa pOa uOH jUb -dUG +xIK bar nBp dqN @@ -85685,7 +85667,7 @@ vQs iSk nzD uxa -bVz +uxa bNQ aal sEk @@ -85699,7 +85681,7 @@ lMY pOa mrN gXe -leO +vwi tql pOa aDl @@ -85743,7 +85725,7 @@ rKQ rKQ xjH xjH -mGE +fIR aaa aaa aaa @@ -85935,14 +85917,14 @@ eOb gvA vQs ePj -dEr +tnF dKY -qRR +kif vQs dHc dHc bZY -xOw +rEO spH dHc fjD @@ -86181,7 +86163,7 @@ yeq yeq cvv wcy -ewr +kkk fXZ sUc vsO @@ -86204,7 +86186,7 @@ iOc qwG fjD rEj -nXb +vCu cwc kXa fjD @@ -86252,7 +86234,7 @@ aaa aaa lMJ lMJ -saK +cCM cDD lMJ lMJ @@ -86415,7 +86397,7 @@ qvJ nxi bWw mqn -cWz +dwI iPE vfv wXv @@ -86456,7 +86438,7 @@ cJT vQs qlz hyW -xOw +rEO iOc mAs fjD @@ -86713,7 +86695,7 @@ pSY vQs tiD hyW -xOw +rEO iOc rcW fjD @@ -86772,7 +86754,7 @@ gAf tSw tSw aaa -fZt +gda aaa aaa sGL @@ -86966,11 +86948,11 @@ xbZ kZI nbd vKn -dbe +fNz vQs vQs hyW -xOw +rEO xbd pOa pOa @@ -87222,12 +87204,12 @@ fqe vHa nNB qoY -fAk +rPp rPp ljH vQs mQa -xOw +rEO mux pOa qXm @@ -87480,7 +87462,7 @@ vde tGU hYl caV -rPp +eMK eIc vQs hyW @@ -87550,7 +87532,7 @@ gnL ckz dWA ecz -mGE +fIR aaa lMJ aaa @@ -87966,7 +87948,7 @@ bkJ iIE cAf dve -jXu +cuh pVV qqr iId @@ -87998,7 +87980,7 @@ sbF flG bzH hyW -xOw +rEO wAk pOa pOa @@ -88214,7 +88196,7 @@ hTG gJM srk qGP -sHu +cLN pkT sHu eMY @@ -88500,17 +88482,17 @@ bDn xzx hIp qCS -iqt -mmR +bJX +xgx rzo quT -bzH +iev gPN ebd ebd jBy -bzH -bzH +iev +iev bBy qZO pYn @@ -88728,7 +88710,7 @@ aaa tdg hkj sQp -cLN +kuW qHa ujT dYi @@ -88992,7 +88974,7 @@ mUF obF jXu fpn -hvz +jXu jXu jXu jXu @@ -89249,7 +89231,7 @@ xMx qrF jXu vxO -hvz +jXu aaa aaa aaf @@ -89265,7 +89247,7 @@ heR kQP hqD kQP -kEk +eTt nwm izI kQP @@ -89478,7 +89460,7 @@ tGX aXa aKl lds -isi +mzm hXQ bVF fGP @@ -89506,7 +89488,7 @@ phP rgL jXu paU -hvz +jXu aaf rlU rlU @@ -89763,7 +89745,7 @@ jXu jXu jXu otQ -hvz +jXu aaa rlU dfl @@ -90020,7 +90002,7 @@ twr fnJ jXu wgm -mKr +fsQ aaa rlU qrg @@ -90277,7 +90259,7 @@ pOi bMu jXu agi -mKr +fsQ aaa rlU trx @@ -90290,7 +90272,7 @@ wWe aTU jzE kQP -mtk +ezw aSv aLW jle @@ -90534,7 +90516,7 @@ knQ cDV sLf uEA -mKr +fsQ aaa rlU vbF @@ -90794,7 +90776,7 @@ fOB jXu aaa rlU -rrJ +vis dhz ixT oXK @@ -91556,7 +91538,7 @@ eWA sjP aaa aaa -tlg +bxr jXu rOz sHu @@ -92675,7 +92657,7 @@ qXL oqk xZB hIJ -gTx +vhb lrZ kiz nmQ @@ -93160,7 +93142,7 @@ gqX htd oGK qPJ -blc +rQk waH vbV ixr @@ -94148,7 +94130,7 @@ aaa aJS oOl rxx -xFZ +viF aPv oWF eQg @@ -94662,7 +94644,7 @@ aaa aJS bpu wzH -nIa +nwL aPv iIQ aRV @@ -94894,7 +94876,7 @@ lAM aaa aaa rJB -xTr +kaU nqD sfK rTw @@ -95451,7 +95433,7 @@ nxO qXF qXF aMB -eIf +tVk duI jnt cdC @@ -95484,7 +95466,7 @@ keK lXA mVE hxq -jVe +nJn nqB kxa eIO @@ -95736,7 +95718,7 @@ nxy nxy aYJ hEc -pJc +bFN qJn hYA jsh @@ -96177,7 +96159,7 @@ aaa jLw aaa aaa -aLq +cTk aeq dXs tJE @@ -96752,7 +96734,7 @@ jzN wyp gzi cyU -sKb +wpo oSo iXb kdx @@ -96944,7 +96926,7 @@ aaa aaa aaa aaa -bJH +tLb iTZ ahj ahj @@ -99301,7 +99283,7 @@ kGq syo oOz tLi -rwq +nnh tyY vFx tyY @@ -100280,7 +100262,7 @@ aaa aaa aaa aaa -bJH +tLb gdb ikZ gdb @@ -100364,7 +100346,7 @@ otB bdv jXK sQB -sat +gLU buT oOB kZx @@ -100394,12 +100376,12 @@ fhi fhi uEo fiS -rok -bFa -rok -rok -rok -rok +rXT +eRn +rXT +rXT +rXT +rXT lMJ uGg nFa @@ -100651,12 +100633,12 @@ huj fhi xEU iqx -hph -sOp -hph -lHu -vqC -swB +xYZ +gil +xYZ +oet +dXU +kgC lMJ uGg nFa @@ -100908,12 +100890,12 @@ fhi fhi fhi twy -gyc -gnW -vbi -izb -cYj -swB +nJA +nZL +bEv +cgP +rtj +kgC lMJ uGg nFa @@ -101157,20 +101139,20 @@ jVy jTN vAH kIY -pCR +rbd gyQ rbD jwj ujk -oJK -vrp +jvo +aHH iYE -dKx -sHJ -dKx -amp -vqC -swB +dTN +dEF +dTN +cOT +dXU +kgC lMJ uGg wpn @@ -102365,7 +102347,7 @@ fRW qnS uxb hAk -uwT +gzO eqn jSb kAF @@ -105730,7 +105712,7 @@ aSk tlZ lje klZ -ooM +bqC fqD wSs pur @@ -106771,7 +106753,7 @@ rHz aFW dqX qLp -liZ +bpY obG izZ tNQ @@ -107824,7 +107806,7 @@ lMJ lMJ lMJ lMJ -piy +uzl aaa aaa aaa @@ -110372,7 +110354,7 @@ dkC dwz dwz frE -dzs +cyE uwQ siy lgL @@ -111426,7 +111408,7 @@ lMJ aaa aaa uaR -oue +btC wRL tyj myr @@ -111683,10 +111665,10 @@ dxK aaa aaa oMA -pkP -sri -sri -uCe +enG +fpD +qmi +vOz tsy sRa ppC @@ -111943,7 +111925,7 @@ uaR jHX oQk toR -toR +ePT syV jsi eoZ @@ -113228,7 +113210,7 @@ kWc xiL bus hMv -mRc +iTQ vGq avx vBf @@ -113238,7 +113220,7 @@ qQJ vGq bjs gyI -stt +lPS xiL kvO bPB @@ -114769,7 +114751,7 @@ oyj xiL mtu lHh -tcc +iNK faD iWc cXP @@ -114779,7 +114761,7 @@ vvD cXP lVB iWc -nux +gkC xlH mtu xiL @@ -115539,19 +115521,19 @@ hbK hbK oyj xiL -lRs +rMe rwx vFh dac evD pJf -ebq +ycv tIe min min wFy ohD -naD +bZb xiL lmn hbK @@ -115799,13 +115781,13 @@ xiL hWa imw iHH -vap +mcF rrL rSW min ckI sCv -nDD +mDC toM eOP hWa @@ -117085,7 +117067,7 @@ rDf uhs fjd jlU -wCE +oGj sZN msR xkv @@ -117599,11 +117581,11 @@ hbK mgS hbK jlU -gQv -gQv -hcj -gQv -gQv +kcu +kcu +gyK +kcu +kcu jlU hbK mTg @@ -117856,11 +117838,11 @@ tmU fGy wyo jlU -xBp -gQv -hcj -gQv -gQv +dLm +kcu +gyK +kcu +kcu jlU qgn mCV @@ -118113,11 +118095,11 @@ pWT rDf uLa jlU -gQv -gQv -wXO -hAd -gQv +kcu +kcu +jQz +nJr +kcu jlU lUS pHt @@ -118370,11 +118352,11 @@ hbK wrc wrc jlU -gQv -gQv -gQv -gQv -gQv +kcu +kcu +kcu +kcu +kcu jlU wrc wrc @@ -118628,9 +118610,9 @@ aaa lMJ jlU jlU -gQv -wea -gQv +kcu +aYl +kcu jlU jlU lMJ diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 098382a356265..081edcaf67701 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -72,6 +72,13 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/commons/toilet) +"aaN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "aaO" = ( /obj/machinery/computer/atmos_alert{ dir = 4 @@ -202,6 +209,12 @@ /obj/effect/landmark/navigate_destination/dockarrival, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) +"acl" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "acp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -276,6 +289,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/pod/light, /area/station/maintenance/floor3/starboard/fore) +"acL" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar/cohiba, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/carpet/blue, +/area/station/command/meeting_room) "adq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2958,13 +2980,6 @@ dir = 1 }, /area/station/hallway/floor2/aft) -"aOq" = ( -/obj/item/fishing_rod, -/obj/structure/closet, -/obj/effect/spawner/random/maintenance/three, -/obj/item/cigarette/pipe, -/turf/open/floor/pod/light, -/area/station/maintenance/floor2/starboard/fore) "aOt" = ( /obj/structure/railing{ dir = 1 @@ -3365,24 +3380,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/medical/paramedic) -"aTe" = ( -/obj/machinery/computer/upload/ai, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "AI Upload Chamber - Fore"; - network = list("aiupload") - }, -/obj/machinery/door/window/right/directional/south{ - name = "Upload Console Window"; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "aTh" = ( /obj/structure/chair/office{ dir = 8 @@ -3426,6 +3423,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"aTO" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "aTU" = ( /obj/effect/turf_decal/trimline/purple/line, /obj/effect/turf_decal/trimline/purple/line{ @@ -4181,14 +4184,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/command/meeting_room) -"bcE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "bcH" = ( /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 4 @@ -4343,11 +4338,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/fore) -"beK" = ( -/obj/machinery/netpod, -/obj/structure/railing, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "beM" = ( /obj/machinery/vending/drugs, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -6891,6 +6881,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/medical/abandoned) +"bJA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "bJQ" = ( /obj/structure/railing/corner{ dir = 1 @@ -7209,6 +7207,12 @@ }, /turf/open/floor/engine/hull, /area/space/nearstation) +"bOk" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "bOq" = ( /obj/machinery/door/airlock/maintenance/external, /obj/effect/turf_decal/stripes/line{ @@ -7329,15 +7333,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"bQj" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar/cohiba, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line, -/turf/open/floor/carpet/blue, -/area/station/command/meeting_room) "bQn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11435,6 +11430,24 @@ }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"cSb" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/servo{ + pixel_x = 15; + pixel_y = 4 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron/white, +/area/station/science/lab) "cSc" = ( /obj/item/food/cornchips/green{ pixel_x = -8; @@ -12019,12 +12032,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/exit/escape_pod) -"cZk" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/openspace, -/area/space/nearstation) "cZA" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -12679,6 +12686,12 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/port/aft) +"djc" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/space/openspace, +/area/space/nearstation) "djd" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -12780,6 +12793,12 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"dkn" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/space/openspace, +/area/space/nearstation) "dks" = ( /obj/structure/girder, /obj/item/stack/sheet/iron, @@ -13693,14 +13712,6 @@ /obj/structure/cable, /turf/open/floor/engine/hull/reinforced, /area/space/nearstation) -"dyE" = ( -/obj/machinery/plumbing/growing_vat{ - dir = 4 - }, -/obj/machinery/light/cold/no_nightlight/directional/north, -/obj/machinery/status_display/ai/directional/north, -/turf/open/misc/dirt/jungle, -/area/station/science/cytology) "dyG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -14438,6 +14449,11 @@ /obj/structure/cable, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/fore) +"dIJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "dIO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14490,6 +14506,14 @@ /obj/structure/cable, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard/aft) +"dJs" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/machinery/light/cold/no_nightlight/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/misc/sandy_dirt, +/area/station/science/cytology) "dJu" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -15618,6 +15642,15 @@ /obj/structure/closet/firecloset, /turf/open/floor/pod/light, /area/station/maintenance/floor1/port/fore) +"dXy" = ( +/obj/structure/table/glass, +/obj/machinery/defibrillator_mount/directional/east, +/obj/item/storage/box/syringes{ + pixel_y = 6 + }, +/obj/item/stack/medical/mesh, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "dXz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti{ @@ -18004,14 +18037,6 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/carpet/red, /area/station/service/theater) -"eFt" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "eFz" = ( /obj/structure/chair/wood, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -21095,14 +21120,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/escape_pod) -"fAw" = ( -/obj/machinery/door/firedoor/border_only, -/obj/structure/railing, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "fAy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23273,6 +23290,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/warehouse) +"gcm" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/table/reinforced/rglass, +/obj/item/pai_card, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "gcs" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/tile/green/half, @@ -23628,6 +23652,24 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/disposal) +"ghy" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/table/reinforced/rglass, +/obj/machinery/cell_charger{ + pixel_y = 10 + }, +/obj/machinery/cell_charger{ + pixel_y = 1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 9; + pixel_x = -1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "ghH" = ( /obj/effect/turf_decal/tile/blue/half{ dir = 4 @@ -24657,6 +24699,13 @@ /obj/structure/window/reinforced/tinted/spawner/directional/west, /turf/open/floor/carpet, /area/station/commons/vacant_room/office) +"gwe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "gwl" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -25464,10 +25513,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/third) -"gHe" = ( -/obj/machinery/light/cold/no_nightlight/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "gHi" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26823,6 +26868,7 @@ /obj/item/circuitboard/machine/exoscanner, /obj/item/circuitboard/machine/exoscanner, /obj/item/circuitboard/machine/exoscanner, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/corner, /area/station/cargo/drone_bay) "haj" = ( @@ -26995,6 +27041,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"hbW" = ( +/obj/structure/railing, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/closet/firecloset, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/floor4/fore) "hbX" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -28144,11 +28199,6 @@ /obj/structure/sign/poster/contraband/syndicate_pistol, /turf/closed/wall, /area/station/maintenance/floor3/port/aft) -"hrG" = ( -/obj/machinery/holopad, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "hrL" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, @@ -28200,6 +28250,10 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard/aft) +"hsA" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/commons/toilet) "hsG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, @@ -29864,10 +29918,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"hNN" = ( -/obj/structure/railing, -/turf/open/space/openspace, -/area/space/nearstation) "hNO" = ( /obj/machinery/door/window/brigdoor/security/cell/left/directional/west{ id = "cell-3"; @@ -33253,15 +33303,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"iHC" = ( -/obj/structure/table/glass, -/obj/machinery/defibrillator_mount/directional/east, -/obj/item/storage/box/syringes{ - pixel_y = 6 - }, -/obj/item/stack/medical/mesh, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "iHG" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 8 @@ -33746,6 +33787,24 @@ "iOA" = ( /turf/closed/wall/r_wall, /area/station/maintenance/floor2/starboard) +"iOD" = ( +/obj/machinery/computer/upload/ai, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "AI Upload Chamber - Fore"; + network = list("aiupload") + }, +/obj/machinery/door/window/right/directional/south{ + name = "Upload Console Window"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "iOL" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -33942,6 +34001,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/side, /area/station/commons/locker) +"iQR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iQU" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -34688,17 +34752,6 @@ /obj/machinery/atmospherics/pipe/layer_manifold/pink/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) -"jaS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "jbc" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/pod/light, @@ -35238,6 +35291,14 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/tools) +"jjj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "jjo" = ( /obj/machinery/holopad, /turf/open/floor/iron/white/textured_large, @@ -38100,9 +38161,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/floor3/fore) -"jVQ" = ( -/turf/open/space/openspace, -/area/space/nearstation) "jVS" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -38700,6 +38758,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/sign/departments/exodrone/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) "kcZ" = ( @@ -38950,9 +39009,8 @@ }, /area/station/hallway/floor1/aft) "kfg" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer2{ + dir = 1 }, /obj/machinery/light/directional/south, /turf/open/floor/iron, @@ -38987,12 +39045,6 @@ /obj/machinery/light/broken/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) -"kfS" = ( -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "kga" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41245,10 +41297,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) -"kKb" = ( -/obj/machinery/camera/autoname/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "kKd" = ( /obj/structure/railing{ dir = 10 @@ -41331,20 +41379,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"kKR" = ( -/obj/machinery/computer/upload/borg, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/left/directional/south{ - name = "Cyborg Upload Console Window"; - req_access = list("ai_upload") - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "kKU" = ( /obj/structure/railing{ dir = 1 @@ -41737,24 +41771,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"kQG" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/turf/open/floor/iron, -/area/station/security/prison) "kQI" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/bag/trash, @@ -42257,7 +42273,7 @@ pixel_x = -22 }, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/incident_display/delam/directional/north, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron/dark, /area/station/command/bridge) "kWJ" = ( @@ -42418,13 +42434,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) -"kYS" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "kYV" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -42729,11 +42738,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/psychology) -"lbW" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lcg" = ( /obj/effect/decal/cleanable/oil, /obj/item/mop, @@ -42746,12 +42750,6 @@ }, /turf/open/openspace, /area/station/maintenance/floor2/starboard) -"lcj" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/openspace, -/area/space/nearstation) "lcr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -44099,6 +44097,18 @@ dir = 9 }, /area/station/security/prison) +"luo" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/bitrunning/den) "luv" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44163,15 +44173,6 @@ /obj/machinery/light/floor, /turf/open/floor/carpet/red, /area/station/service/library/artgallery) -"luU" = ( -/obj/structure/railing, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/structure/closet/firecloset, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/floor4/fore) "luZ" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -44530,13 +44531,6 @@ /obj/machinery/duct, /turf/open/floor/iron/dark/side, /area/station/security/office) -"lAn" = ( -/obj/structure/table, -/obj/item/cigarette/candy{ - pixel_x = 4 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/floor1/aft) "lAD" = ( /obj/effect/turf_decal/trimline/green/filled/arrow_cw{ dir = 10 @@ -45636,11 +45630,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/white/herringbone, /area/station/medical/patients_rooms) -"lOy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "lOz" = ( /obj/structure/closet/secure_closet/personal/patient, /turf/open/floor/iron/white, @@ -45985,6 +45974,20 @@ /obj/effect/decal/cleanable/plastic, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat) +"lSI" = ( +/obj/machinery/computer/upload/borg, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/left/directional/south{ + name = "Cyborg Upload Console Window"; + req_access = list("ai_upload") + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "lSJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -46269,13 +46272,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) -"lWV" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/table/reinforced/rglass, -/obj/item/pai_card, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "lWY" = ( /obj/machinery/light/small/directional/south, /obj/structure/disposalpipe/trunk{ @@ -46704,10 +46700,6 @@ dir = 4 }, /area/station/hallway/secondary/service) -"mbP" = ( -/obj/structure/railing/corner, -/turf/open/space/openspace, -/area/space/nearstation) "mbS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /obj/effect/spawner/structure/window/hollow/reinforced/plasma/middle, @@ -47534,12 +47526,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/openspace, /area/station/solars/starboard/aft) -"mlU" = ( -/obj/machinery/power/shuttle_engine/huge{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "mlX" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/assistant, @@ -48474,10 +48460,6 @@ "myr" = ( /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) -"myw" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron, -/area/station/commons/toilet) "myO" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/escape_pod) @@ -49368,12 +49350,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/side, /area/station/hallway/floor2/aft) -"mJN" = ( -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) "mKf" = ( /obj/item/radio/intercom/directional/west, /obj/structure/chair/sofa/corner/maroon{ @@ -49725,12 +49701,6 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"mOi" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "mOj" = ( /obj/structure/railing{ dir = 5 @@ -51474,13 +51444,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/floor3/aft) -"njL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "njQ" = ( /obj/structure/railing{ dir = 1 @@ -52062,12 +52025,6 @@ "nrm" = ( /turf/closed/wall, /area/station/medical/medbay/central) -"nrr" = ( -/obj/machinery/camera/motion/directional/west{ - c_tag = "Minisat - Aft" - }, -/turf/open/space/openspace, -/area/space/nearstation) "nrt" = ( /obj/machinery/conveyor{ dir = 6; @@ -53043,6 +53000,13 @@ "nEI" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat_interior) +"nEM" = ( +/obj/item/fishing_rod, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/three, +/obj/item/cigarette/pipe, +/turf/open/floor/pod/light, +/area/station/maintenance/floor2/starboard/fore) "nEO" = ( /obj/structure/table, /obj/item/screwdriver, @@ -53411,9 +53375,8 @@ }, /area/station/hallway/floor3/aft) "nJb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer2{ + dir = 1 }, /turf/open/floor/iron, /area/station/engineering/atmos) @@ -59583,6 +59546,17 @@ dir = 8 }, /area/station/hallway/floor3/fore) +"pqH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "pqO" = ( /obj/effect/decal/cleanable/glass, /obj/item/shard, @@ -60337,9 +60311,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/floor4/fore) -"pAl" = ( -/turf/open/space/basic, -/area/space/nearstation) "pAn" = ( /obj/effect/mapping_helpers/airlock/access/any/medical/general, /obj/machinery/door/airlock/medical{ @@ -60810,6 +60781,10 @@ dir = 8 }, /area/station/security/office) +"pGz" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "pGG" = ( /obj/structure/ladder, /obj/structure/lattice/catwalk, @@ -61364,6 +61339,12 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/security/evidence) +"pNV" = ( +/obj/machinery/power/shuttle_engine/large{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "pNW" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -62766,24 +62747,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"qga" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/table/reinforced/rglass, -/obj/machinery/cell_charger{ - pixel_y = 10 - }, -/obj/machinery/cell_charger{ - pixel_y = 1 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 9; - pixel_x = -1 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -1 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "qgb" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -63252,12 +63215,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/floor2/starboard/fore) -"qnL" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "qnN" = ( /obj/machinery/chem_heater/withbuffer, /turf/open/floor/circuit, @@ -65655,6 +65612,12 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) +"qRS" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "qRW" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -67065,6 +67028,10 @@ /obj/structure/railing/corner/end, /turf/open/floor/iron/dark, /area/station/hallway/floor1/aft) +"rjB" = ( +/obj/machinery/light/cold/no_nightlight/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "rjD" = ( /turf/closed/wall, /area/station/hallway/floor1/aft) @@ -69623,18 +69590,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) -"rWv" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/structure/railing, -/obj/effect/decal/cleanable/robot_debris, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/bitrunning/den) "rWx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69901,6 +69856,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) +"sav" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "saA" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 1 @@ -69960,7 +69920,6 @@ pixel_y = 2 }, /obj/structure/rack, -/obj/machinery/firealarm/directional/east, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/corner{ dir = 1 @@ -70034,13 +69993,6 @@ /obj/structure/sign/poster/official/cleanliness/directional/east, /turf/open/floor/iron/white/textured, /area/station/medical/storage) -"scE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "scG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -72542,6 +72494,12 @@ /obj/structure/cable, /turf/open/floor/pod/light, /area/station/maintenance/solars/port/aft) +"sKZ" = ( +/obj/machinery/camera/motion/directional/west{ + c_tag = "Minisat - Aft" + }, +/turf/open/space/openspace, +/area/space/nearstation) "sLe" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -72762,12 +72720,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) -"sOb" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/space/openspace, -/area/space/nearstation) "sOj" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/pod/light, @@ -73487,11 +73439,6 @@ }, /turf/open/floor/wood, /area/station/commons/dorms/apartment2) -"sXk" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "sXp" = ( /obj/structure/rack, /obj/item/radio/off{ @@ -74606,6 +74553,10 @@ "tlt" = ( /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/port/fore) +"tlJ" = ( +/obj/machinery/camera/autoname/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "tlK" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -78163,9 +78114,8 @@ /turf/open/floor/iron/checker, /area/station/commons/vacant_room/commissary) "uhC" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, @@ -78307,9 +78257,8 @@ /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/fore) "ujl" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer4{ + dir = 1 }, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, @@ -78343,6 +78292,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured, /area/station/cargo/storage) +"ujI" = ( +/obj/structure/railing, +/turf/open/space/openspace, +/area/space/nearstation) "ujQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -78630,9 +78583,8 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "unQ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) @@ -80158,6 +80110,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) +"uJq" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/machinery/light/cold/no_nightlight/directional/north, +/obj/machinery/status_display/ai/directional/north, +/turf/open/misc/dirt/jungle, +/area/station/science/cytology) "uJr" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/grass/fairy, @@ -80580,6 +80540,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/floor2/starboard/aft) +"uOc" = ( +/obj/effect/turf_decal/tile/neutral/full, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "uOd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -81809,14 +81775,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/kitchen/diner) -"vex" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "veA" = ( /obj/structure/railing{ dir = 8 @@ -82591,6 +82549,14 @@ "voT" = ( /turf/closed/wall, /area/station/maintenance/floor4/port/fore) +"voX" = ( +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "vpa" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, @@ -83462,6 +83428,11 @@ /obj/effect/turf_decal/trimline/brown/arrow_ccw, /turf/open/floor/iron/dark/side, /area/station/cargo/lobby) +"vzo" = ( +/obj/machinery/netpod, +/obj/structure/railing, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "vzu" = ( /obj/effect/landmark/start/psychologist, /obj/structure/sign/poster/official/random/directional/south, @@ -84942,6 +84913,13 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/port) +"vTV" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/sign/warning/gas_mask/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "vTY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -85610,6 +85588,12 @@ }, /turf/open/floor/iron/white, /area/station/science/lower) +"wbT" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/space/openspace, +/area/space/nearstation) "wci" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -85965,14 +85949,6 @@ dir = 4 }, /area/station/command/bridge) -"wfG" = ( -/obj/machinery/plumbing/growing_vat{ - dir = 4 - }, -/obj/machinery/light/cold/no_nightlight/directional/south, -/obj/machinery/status_display/evac/directional/south, -/turf/open/misc/sandy_dirt, -/area/station/science/cytology) "wfI" = ( /obj/machinery/light_switch/directional/west, /turf/open/floor/wood, @@ -86344,6 +86320,24 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/escape_pod) +"wkP" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/iron, +/area/station/security/prison) "wkX" = ( /turf/open/floor/catwalk_floor, /area/station/hallway/floor2/fore) @@ -87546,7 +87540,7 @@ /turf/open/floor/iron/dark, /area/station/security/holding_cell) "wzt" = ( -/obj/item/kirbyplants/random, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/iron/white/textured_large, /area/station/service/chapel/office) "wzB" = ( @@ -88761,12 +88755,6 @@ dir = 1 }, /area/station/hallway/floor1/fore) -"wOo" = ( -/obj/machinery/power/shuttle_engine/large{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "wOt" = ( /obj/machinery/door/morgue{ name = "Confession Booth" @@ -89479,24 +89467,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/maintenance/disposal) -"wYb" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/servo{ - pixel_x = 15; - pixel_y = 4 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron/white, -/area/station/science/lab) "wYd" = ( /obj/effect/turf_decal/tile/blue/anticorner{ dir = 1 @@ -90462,6 +90432,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"xln" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "xlu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -90668,6 +90644,9 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden/abandoned) +"xpw" = ( +/turf/open/space/basic, +/area/space/nearstation) "xpA" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -90809,7 +90788,7 @@ }, /obj/machinery/shower/directional/south, /obj/structure/fluff/shower_drain, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "xrh" = ( /obj/effect/turf_decal/tile/blue{ @@ -91137,6 +91116,14 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"xvN" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "xvO" = ( /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt, @@ -91275,6 +91262,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/vacant_room/office) +"xxA" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "xxC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -92223,6 +92215,9 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor4/starboard) +"xIV" = ( +/turf/open/space/openspace, +/area/space/nearstation) "xJk" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/tile/green/full, @@ -92306,6 +92301,13 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor3/port) +"xJX" = ( +/obj/structure/table, +/obj/item/cigarette/candy{ + pixel_x = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/floor1/aft) "xKa" = ( /obj/effect/turf_decal/stripes/white/corner, /turf/open/floor/iron/dark/corner, @@ -92336,18 +92338,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/evidence) +"xKt" = ( +/obj/structure/railing/corner, +/turf/open/space/openspace, +/area/space/nearstation) "xKy" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"xKW" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "xKZ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/shower/directional/west, @@ -93021,6 +93021,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xUk" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/space/openspace, +/area/space/nearstation) "xUB" = ( /obj/machinery/light/floor, /turf/open/floor/iron/dark/side{ @@ -94060,12 +94066,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"yjm" = ( -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/openspace, -/area/space/nearstation) "yjJ" = ( /obj/effect/turf_decal/siding/wideplating_new/dark/corner, /turf/open/floor/engine/co2, @@ -94282,10 +94282,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/herringbone, /area/station/medical/patients_rooms) -"ymh" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) (1,1,1) = {" owI @@ -117521,7 +117517,7 @@ tXe tXe cOT sxb -rWv +luo hTP lNW qZU @@ -117778,7 +117774,7 @@ tXe tXe pjw scn -beK +vzo dqM bED qZU @@ -135005,7 +135001,7 @@ oIJ hRR qXk hHB -lbW +iQR gmw hOy lHR @@ -135278,7 +135274,7 @@ eIr oyH xnr fvO -lAn +xJX oaa uYB tLa @@ -143240,7 +143236,7 @@ mjv tZD oIy owI -xKW +bOk owI cHX owI @@ -143250,7 +143246,7 @@ biH owI cHX owI -xKW +bOk owI dEc xMY @@ -143755,7 +143751,7 @@ gxT fmg owI jkM -xKW +bOk jkM owI caC @@ -143763,7 +143759,7 @@ wqD mdr owI jkM -xKW +bOk jkM owI oyh @@ -144012,7 +144008,7 @@ teq teq owI jkM -xKW +bOk jkM owI caC @@ -144020,7 +144016,7 @@ wqD mdr owI jkM -xKW +bOk jkM owI oyh @@ -144783,7 +144779,7 @@ sKt teq owI jkM -xKW +bOk jkM owI caC @@ -144791,7 +144787,7 @@ wqD mdr owI jkM -xKW +bOk jkM owI oyh @@ -145040,7 +145036,7 @@ xqr gIz owI jkM -xKW +bOk jkM owI caC @@ -145048,7 +145044,7 @@ wqD mdr owI jkM -xKW +bOk jkM owI oyh @@ -147070,17 +147066,17 @@ owI owI owI owI -qnL +aTO rcO -wOo -qnL +pNV +aTO rcO rcO -mlU -qnL +xln +aTO rcO rcO -mlU +xln teq teq teq @@ -147122,15 +147118,15 @@ iSU iSU rcO rcO -mlU -qnL +xln +aTO rcO rcO -mlU -qnL +xln +aTO rcO -wOo -qnL +pNV +aTO owI owI owI @@ -147588,13 +147584,13 @@ owI owI owI owI -pAl -pAl -pAl +xpw +xpw +xpw owI -pAl -pAl -pAl +xpw +xpw +xpw owI owI owI @@ -147634,13 +147630,13 @@ owI owI owI owI -pAl -pAl -pAl +xpw +xpw +xpw owI -pAl -pAl -pAl +xpw +xpw +xpw owI owI owI @@ -174624,7 +174620,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -174881,7 +174877,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -175138,7 +175134,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -175395,7 +175391,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -175652,7 +175648,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -175909,7 +175905,7 @@ oyh oyh oyh oyh -jVQ +xIV ucA ucA ucA @@ -180750,7 +180746,7 @@ wwu wwu wwu wwu -aOq +nEM qdW sbw wwu @@ -185131,7 +185127,7 @@ mhT jFr sif lvS -wYb +cSb mUJ jnV sif @@ -191801,13 +191797,13 @@ iuW eHf dGa rkM -dyE +uJq nuv cLA npF lcT aAE -wfG +dJs qun nVT iCi @@ -196713,7 +196709,7 @@ tOW rwv bCd dzM -lWV +gcm txp aaU coZ @@ -197225,7 +197221,7 @@ woE biz dzM kUl -qga +ghy dzM dYM scx @@ -197999,7 +197995,7 @@ iDr thd bYb bnC -iHC +dXy thd aHK aZW @@ -204664,7 +204660,7 @@ mPw uZF svu uZF -kKR +lSI biR vLx vpA @@ -204921,7 +204917,7 @@ mPw uZF svu uZF -aTe +iOD biR nqb xAu @@ -251204,7 +251200,7 @@ sFt oEU oSA sFt -eFt +xvN fWl bQG vZF @@ -256820,9 +256816,9 @@ umb nqi fXR yhT -kYS -gHe -sXk +vTV +rjB +sav iHm sSB ccV @@ -261711,7 +261707,7 @@ isU cdj eAi spT -myw +hsA fmK plX bex @@ -276116,11 +276112,11 @@ ucA ucA ucA ucA -mbP -lcj -lcj -lcj -sOb +xKt +djc +djc +djc +dkn ucA ucA ucA @@ -276373,11 +276369,11 @@ ucA ucA ucA ucA -hNN +ujI edA pRs pRs -yjm +wbT ucA ucA ucA @@ -276630,11 +276626,11 @@ ucA ucA ucA ucA -hNN +ujI pRs pRs pRs -yjm +wbT ucA ucA ucA @@ -276887,11 +276883,11 @@ ucA ucA ucA ucA -mOi -kfS +qRS +acl pRs -kfS -cZk +acl +xUk ucA ucA ucA @@ -307209,7 +307205,7 @@ ucA ucA ucA ucA -kKb +tlJ ucA gMe gMe @@ -307219,7 +307215,7 @@ gMe gMe gMe ucA -kKb +tlJ ucA ucA ucA @@ -311844,7 +311840,7 @@ lgD ykw hIb fKZ -luU +hbW dbZ hKg raq @@ -313386,7 +313382,7 @@ rti vuU wgO rZb -bQj +acL jKF fXa sFa @@ -315416,14 +315412,14 @@ mSG mSG aSX aSX -jaS -vex +pqH +bJA mKu hHi fMc gOF ddH -mJN +uOc nPE pDq vfi @@ -315674,10 +315670,10 @@ dWz lYx unQ wMU -njL -ymh -bcE -lOy +aaN +pGz +jjj +dIJ oTq jjT hmM @@ -315934,7 +315930,7 @@ hAH eSq tHk bDn -scE +gwe eoI nPE nPE @@ -316191,7 +316187,7 @@ wMU aqm kFy xTG -hrG +xxA xdE nPE uZr @@ -316445,7 +316441,7 @@ oOA tyR tyR xqB -fAw +voX kFy eTV auO @@ -330618,7 +330614,7 @@ yeU jVK vWn mRa -kQG +wkP uTc nOa vVW @@ -337557,7 +337553,7 @@ oyh oyh fMl sWs -yjm +wbT ucA ucA ucA @@ -337812,9 +337808,9 @@ oyh oyh oyh oyh -kfS -kfS -cZk +acl +acl +xUk ucA ucA ucA @@ -338563,7 +338559,7 @@ ucA ucA ucA ucA -nrr +sKZ ucA ucA ucA @@ -338574,7 +338570,7 @@ ucA ucA ucA ucA -nrr +sKZ ucA ucA ucA @@ -341652,11 +341648,11 @@ ucA ucA ucA ucA -mbP -lcj -lcj -lcj -sOb +xKt +djc +djc +djc +dkn ucA ucA ucA @@ -341909,11 +341905,11 @@ ucA ucA ucA ucA -hNN +ujI edA pRs pRs -yjm +wbT ucA ucA ucA @@ -342166,7 +342162,7 @@ ucA ucA ucA ucA -hNN +ujI pRs pRs ucA diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 7d949fb043d0c..23937b91f979e 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -61,63 +61,32 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"at" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "av" = ( /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) "aw" = ( /turf/open/floor/plating, /area/station/engineering/atmos) -"aA" = ( -/turf/open/floor/iron, -/area/station/engineering/main) -"aB" = ( +"ax" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"aC" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/glass/ruin, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) -"aD" = ( -/turf/open/floor/iron, -/area/station/security/brig) -"aE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 +"ay" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/engineering/main) -"aF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, +/area/station/commons/storage/primary) +"aA" = ( /turf/open/floor/iron, /area/station/engineering/main) -"aG" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/closet/radiation, -/obj/structure/cable, +"aD" = ( /turf/open/floor/iron, -/area/station/engineering/gravity_generator) +/area/station/security/brig) "aH" = ( /obj/machinery/light/directional/east, /obj/machinery/recharge_station, @@ -150,12 +119,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"aP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "aS" = ( /obj/structure/table, /obj/item/flashlight{ @@ -165,36 +128,6 @@ /obj/item/stock_parts/power_store/cell/infinite, /turf/open/floor/iron, /area/station/engineering/main) -"aT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) -"aU" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) -"aV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "aX" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Gravity Generator" @@ -208,10 +141,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"ba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/station/engineering/atmos) "bb" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -235,11 +164,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"be" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) "bf" = ( /obj/machinery/suit_storage_unit/captain, /turf/open/floor/iron, @@ -258,19 +182,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"bk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/door/airlock, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/atmos) -"bl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/station/engineering/atmos) "bm" = ( /obj/machinery/atmospherics/components/binary/valve/on{ dir = 4 @@ -305,11 +216,6 @@ /obj/machinery/announcement_system, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"bt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science) "bu" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) @@ -321,12 +227,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/brig) -"bx" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) "by" = ( /turf/closed/wall/r_wall, /area/station/medical/medbay) @@ -353,10 +253,6 @@ /obj/machinery/computer/rdconsole, /turf/open/floor/iron, /area/station/science) -"bH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron, -/area/station/security/brig) "bI" = ( /obj/structure/table, /obj/item/card/emag, @@ -395,10 +291,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"bN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "bO" = ( /obj/machinery/door/poddoor, /turf/open/floor/engine, @@ -425,35 +317,6 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"bV" = ( -/obj/machinery/light/directional/north, -/mob/living/carbon/human, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"bW" = ( -/obj/machinery/camera/directional/north, -/mob/living/carbon/human, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"bX" = ( -/obj/machinery/sleeper/syndie/fullupgrade, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) "bY" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -489,18 +352,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"ch" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/medical/chemistry) -"ci" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/brig) "cj" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -536,11 +387,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"cq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "cr" = ( /obj/machinery/light/directional/south, /obj/structure/closet/secure_closet/hos{ @@ -553,107 +399,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/medical/chemistry) -"cu" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"cw" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/command/bridge) -"cx" = ( -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/iron, -/area/station/medical/medbay) -"cy" = ( -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/medical/medbay) -"cz" = ( -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/station/medical/medbay) -"cA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"cB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"cC" = ( -/obj/machinery/camera/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"cD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"cE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/medical/chemistry) -"cF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/medical/chemistry) -"cG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/medical/medbay) -"cH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/table, -/obj/item/gun/magic/wand/resurrection/debug, -/obj/item/gun/magic/wand/death/debug{ - pixel_y = 10 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/debug/human_spawner{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) "cI" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -668,62 +413,16 @@ }, /turf/open/floor/iron/cafeteria, /area/station/medical/medbay) -"cK" = ( -/obj/machinery/light/directional/south, -/obj/structure/table/glass, -/obj/item/disk/surgery/debug, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/disk/data/debug{ - pixel_y = 9; - pixel_x = 7 - }, -/turf/open/floor/iron/white/corner, -/area/station/medical/medbay) -"cL" = ( -/obj/item/surgery_tray/full/advanced, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/white/corner, -/area/station/medical/medbay) "cN" = ( /turf/closed/wall/r_wall, /area/station/construction) -"cP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/construction) "cS" = ( /turf/closed/wall/r_wall, /area/station/commons/storage/primary) -"cT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/medical/chemistry) "cV" = ( /obj/machinery/door/airlock/public/glass, /turf/open/floor/iron, /area/station/commons/storage/primary) -"cX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/construction) "cY" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, @@ -734,10 +433,6 @@ }, /turf/open/floor/iron, /area/station/construction) -"da" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/commons/storage/primary) "db" = ( /turf/closed/wall/mineral/plastitanium, /area/station/hallway/secondary/entry) @@ -766,14 +461,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"dk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dl" = ( /turf/open/floor/plating, /area/station/commons/storage/primary) @@ -856,13 +543,6 @@ }, /turf/open/floor/iron, /area/station/construction) -"dA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dB" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, @@ -884,20 +564,10 @@ }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"dF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dG" = ( /obj/machinery/door/airlock, /turf/open/floor/iron, /area/station/commons/storage/primary) -"dH" = ( -/obj/machinery/door/airlock, -/turf/open/floor/plating, -/area/station/maintenance/department/bridge) "dI" = ( /obj/effect/landmark/start, /turf/open/floor/iron, @@ -923,17 +593,6 @@ }, /turf/open/floor/iron, /area/station/construction) -"dN" = ( -/obj/structure/table, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"dO" = ( -/obj/structure/table, -/obj/machinery/light/directional/south, -/obj/item/storage/medkit/regular, -/obj/item/healthanalyzer/advanced, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dP" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -959,16 +618,6 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"dU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera/directional/north, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "dV" = ( /turf/open/floor/plating, /area/station/hallway/secondary/entry) @@ -1021,30 +670,13 @@ /obj/machinery/door/airlock, /turf/open/floor/iron, /area/station/construction) -"eg" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/brig) "eh" = ( /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"ei" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ej" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"ek" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "el" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/engine, @@ -1056,13 +688,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ep" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 +"er" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/obj/structure/closet/secure_closet/medical3{ + locked = 0 + }, +/obj/item/healthanalyzer/advanced, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "es" = ( /obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -1080,11 +717,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/cargo/storage) -"ew" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/turf/open/floor/plating, -/area/station/cargo/storage) "ex" = ( /obj/machinery/door/airlock/external/ruin{ name = "Escape Pod One" @@ -1092,17 +724,6 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ez" = ( -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "eA" = ( /obj/machinery/conveyor{ dir = 1; @@ -1110,6 +731,14 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"eB" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron, +/area/station/engineering/main) "eC" = ( /obj/machinery/conveyor{ dir = 8; @@ -1134,14 +763,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"eH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "eJ" = ( /obj/docking_port/stationary{ dir = 4; @@ -1153,10 +774,6 @@ }, /turf/open/space/basic, /area/space) -"eL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "eN" = ( /obj/machinery/conveyor{ dir = 9; @@ -1176,36 +793,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"eR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/ruin{ - name = "Supply Dock Airlock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) -"eS" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/ruin{ - name = "Supply Dock Airlock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "eT" = ( /obj/machinery/conveyor{ dir = 5; @@ -1234,19 +821,6 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"eZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) -"fa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fb" = ( /obj/machinery/door/airlock/external/ruin{ name = "Departure Lounge Airlock" @@ -1266,23 +840,6 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"fe" = ( -/obj/machinery/computer/cargo{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = "cargounload"; - name = "Loading Doors"; - pixel_y = 8 - }, -/obj/machinery/button/door/directional/east{ - id = "cargoload"; - name = "Loading Doors"; - pixel_y = -8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ff" = ( /obj/docking_port/stationary{ dir = 2; @@ -1364,125 +921,21 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ft" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/hallway/primary/central) -"fw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fx" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fy" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/plaque{ - icon_state = "L3" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fz" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L5" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fA" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L7" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "fB" = ( /obj/machinery/status_display/supply, /turf/closed/wall/r_wall, /area/station/cargo/storage) -"fC" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fD" = ( -/obj/machinery/light/directional/north, -/obj/machinery/camera/directional/north, -/obj/effect/turf_decal/plaque{ - icon_state = "L11" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fE" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L13" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fF" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/fans/tiny, -/turf/open/floor/iron, -/area/station/cargo/storage) -"fH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "fI" = ( /obj/machinery/door/airlock, /turf/open/floor/plating, /area/station/maintenance/aft) -"fK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 +"fL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/obj/structure/cable, +/obj/item/storage/part_replacer/bluespace/tier4, /turf/open/floor/iron, -/area/station/commons/storage/primary) +/area/station/cargo/bitrunning/den) "fM" = ( /obj/structure/sign/directions/supply{ dir = 4; @@ -1499,14 +952,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"fN" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/commons/storage/primary) "fO" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) @@ -1522,24 +967,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fR" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/commons/storage/primary) "fS" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "fX" = ( /obj/structure/sign/directions/supply{ dir = 4; @@ -1561,21 +993,9 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) -"fZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ga" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) -"gb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "gc" = ( /obj/machinery/door/airlock/external/ruin{ name = "Auxiliary Airlock" @@ -1607,75 +1027,24 @@ }, /turf/open/floor/plating, /area/station/commons/storage/primary) -"gk" = ( -/obj/structure/sign/departments/evac, +"gi" = ( +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/item/debug/omnitool, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"gk" = ( +/obj/structure/sign/departments/evac, /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) -"gl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"gm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "gn" = ( /obj/machinery/camera/directional/north, /turf/open/floor/iron, /area/station/security/brig) -"go" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"gp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/cargo/miningoffice) -"gq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "gv" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"gw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "gy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1689,27 +1058,6 @@ /obj/machinery/keycard_auth/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"gB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gD" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "gE" = ( /obj/machinery/camera/directional/north, /turf/open/floor/iron, @@ -1725,6 +1073,10 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/construction) +"gH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) "gI" = ( /obj/machinery/light/directional/north, /obj/machinery/camera/directional/north, @@ -1741,25 +1093,23 @@ /obj/structure/sign/warning/radiation/rad_area/directional/north, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"gY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science) "hm" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/plating, /area/station/engineering/atmos) -"hv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"hp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/obj/item/storage/part_replacer/bluespace/tier4, /turf/open/floor/iron, -/area/station/cargo/bitrunning/den) +/area/station/hallway/primary/central) +"hr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "hD" = ( /obj/structure/closet/secure_closet/chemical/heisenberg{ locked = 0 @@ -1773,31 +1123,69 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/construction) -"is" = ( -/obj/structure/sign/warning/vacuum/external/directional/east, -/turf/open/floor/iron, -/area/station/medical/medbay) -"jb" = ( +"io" = ( /obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"jg" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, /obj/structure/cable, /turf/open/floor/iron, -/area/station/science) -"jE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/area/station/commons/storage/primary) +"jk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"jz" = ( +/obj/structure/table/glass, +/obj/item/disk/surgery/debug, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plating, -/area/station/engineering/atmos) +/obj/item/disk/data/debug{ + pixel_y = 9; + pixel_x = 7 + }, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"jL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "jU" = ( /obj/structure/table, /obj/item/melee/energy/axe, /turf/open/floor/iron, /area/station/commons/storage/primary) -"kj" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, +"jZ" = ( +/obj/machinery/sleeper/syndie/fullupgrade, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"kf" = ( +/obj/machinery/vending/subtype_vendor, /turf/open/floor/iron, -/area/station/cargo/miningoffice) +/area/station/commons/storage/primary) "kn" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, @@ -1806,128 +1194,191 @@ /obj/structure/server, /turf/open/floor/iron/dark, /area/station/science/explab) -"kQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"kS" = ( +/turf/closed/wall/r_wall, +/area/station/medical/chemistry) "lc" = ( /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"lg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) -"lH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) -"lX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"lu" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/light/directional/north, +"mb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"mE" = ( +/area/station/medical/chemistry) +"mk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/chem_mass_spec, /turf/open/floor/iron, -/area/station/medical/chemistry) -"nn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/area/station/engineering/main) +"mC" = ( +/turf/open/floor/iron/dark, +/area/station/medical/medbay) +"nb" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/science/explab) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"ng" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) "nq" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"ny" = ( +"nT" = ( /obj/structure/table, -/obj/item/storage/toolbox/syndicate, +/obj/machinery/light/directional/south, +/obj/item/storage/medkit/regular, +/obj/item/healthanalyzer/advanced, +/obj/item/debug/omnitool/item_spawner, /turf/open/floor/iron, /area/station/commons/storage/primary) -"nI" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/cargo/bitrunning/den) "od" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"oV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"os" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"ou" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/medical/chemistry) +/area/station/construction) +"oK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"pe" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/commons/storage/primary) +"pr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "pv" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"pA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/science) -"pI" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"pw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"pL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/caution/stand_clear{ dir = 8 }, -/obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/plating, -/area/station/medical/medbay) +/turf/open/floor/iron, +/area/station/cargo/storage) +"pZ" = ( +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/north, +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "qb" = ( /obj/machinery/door/airlock, /turf/open/floor/plating, /area/station/engineering/atmos) +"qg" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"qv" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"qw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "qx" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/cargo/storage) +"qH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/iron, +/area/station/medical/chemistry) "qQ" = ( /turf/open/floor/engine, /area/station/cargo/miningoffice) -"rn" = ( +"rh" = ( +/obj/machinery/door/airlock, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) +"ru" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rC" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "rK" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"rL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "rT" = ( /turf/open/floor/circuit/green, /area/station/cargo/bitrunning/den) @@ -1935,6 +1386,29 @@ /obj/machinery/door/airlock/shell, /turf/open/floor/iron/dark, /area/station/construction) +"sN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sT" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/main) +"tn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"tz" = ( +/obj/machinery/status_display/supply, +/turf/closed/wall/r_wall, +/area/station/commons/storage/primary) "tE" = ( /obj/machinery/door/airlock/research, /turf/open/floor/iron/dark, @@ -1946,6 +1420,13 @@ }, /turf/open/space/basic, /area/space) +"tQ" = ( +/obj/machinery/door/airlock/public/glass, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/medical/chemistry) "tV" = ( /obj/structure/bot, /turf/open/floor/iron/dark, @@ -1971,6 +1452,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos) +"uL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/bitrunning/den) "uO" = ( /obj/machinery/door/airlock/public/glass, /obj/structure/cable, @@ -1992,11 +1478,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) -"vb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/cargo/bitrunning/den) "vm" = ( /mob/living/circuit_drone, /turf/open/floor/iron/dark, @@ -2011,43 +1492,127 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"vP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"vB" = ( +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/door/airlock/public/glass, -/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"vQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/medical/chemistry) -"wb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/area/station/cargo/storage) +"vS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/airlock_pump{ dir = 4 }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/blue/half/contrasted{ +/turf/open/floor/iron, +/area/station/engineering/main) +"wa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ dir = 1 }, +/area/station/medical/medbay) +"wc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/science) +"wk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/medical/medbay) +"wl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"wp" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/bitrunning/den) "wB" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"wM" = ( +"wD" = ( +/obj/machinery/door/airlock, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/area/station/cargo/miningoffice) "wU" = ( /turf/closed/wall/r_wall, /area/station/science/explab) +"xD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) +"xK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"xY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"ya" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 8 + }, +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"yi" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"yl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "yA" = ( /obj/docking_port/stationary/laborcamp_home{ dir = 8 }, /turf/open/space/basic, /area/space) +"yH" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) "yK" = ( /obj/structure/fans/tiny/invisible, /obj/effect/turf_decal/stripes/line{ @@ -2060,6 +1625,12 @@ /obj/machinery/power/rtg/debug, /turf/open/floor/plating/airless, /area/space/nearstation) +"zg" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "zo" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -2070,16 +1641,57 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/science) +"zY" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "Aj" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) -"AP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"An" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"Ao" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear{ dir = 8 }, /turf/open/floor/iron, -/area/station/science) +/area/station/cargo/storage) +"AD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"Bp" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"Bz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"BB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/medical/medbay) "BD" = ( /obj/structure/closet/secure_closet/chief_medical{ locked = 0 @@ -2093,13 +1705,44 @@ /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/iron, /area/station/command/bridge) +"BM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "Ce" = ( /turf/open/floor/iron, /area/station/medical/chemistry) +"Cg" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "Ct" = ( /obj/structure/closet/syndicate/resources/everything, /turf/open/floor/iron, /area/station/science) +"CF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"CG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) +"CJ" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/dark, +/area/station/medical/medbay) "CQ" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/stripes/line{ @@ -2111,11 +1754,6 @@ /obj/machinery/component_printer, /turf/open/floor/iron/dark, /area/station/science/explab) -"CV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/medical/chemistry) "Df" = ( /obj/machinery/light/directional/east, /obj/item/integrated_circuit/loaded/hello_world, @@ -2123,6 +1761,35 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/science/explab) +"DC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"DD" = ( +/mob/living/carbon/human, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"DO" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"DT" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "DW" = ( /obj/machinery/computer/scan_consolenew{ dir = 1 @@ -2132,15 +1799,19 @@ }, /turf/open/floor/iron/white/corner, /area/station/medical/medbay) -"EA" = ( +"Ef" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"Es" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/construction) -"EB" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/medical/medbay) "EG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2163,13 +1834,21 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"ES" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"EN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/meter/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"ER" = ( +/mob/living/carbon/human, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "EX" = ( /obj/structure/table, /obj/item/screwdriver{ @@ -2193,6 +1872,70 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/command/bridge) +"Fy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"FA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"FC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"FE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"GC" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"GN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"GQ" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/brig) +"GV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) +"GZ" = ( +/obj/machinery/chem_mass_spec, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"Hb" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/construction) +"Hc" = ( +/obj/machinery/camera/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"Hg" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "HW" = ( /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/unlocked, @@ -2210,6 +1953,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/explab) +"Is" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/commons/storage/primary) "Iy" = ( /obj/structure/closet/secure_closet/research_director{ locked = 0 @@ -2238,25 +1986,52 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"IV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"IX" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargounload" + }, +/obj/structure/sign/warning/vacuum/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) +"Jd" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/commons/storage/primary) "Jp" = ( /obj/machinery/gravity_generator/main, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"JF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +"JV" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/medical/chemistry) -"JS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/unlocked, +/area/station/commons/storage/primary) +"Kg" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/full, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/engineering/main) +"Ks" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Kx" = ( /obj/structure/table, /obj/item/analyzer, @@ -2264,45 +2039,87 @@ /obj/machinery/light/directional/south, /turf/open/floor/plating, /area/station/engineering/atmos) +"Lb" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plating, +/area/station/medical/medbay) +"Lq" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/turf/open/floor/iron, +/area/station/medical/medbay) "Ly" = ( /obj/machinery/chem_dispenser/chem_synthesizer, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"LH" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +"LD" = ( +/obj/item/surgery_tray/full/advanced, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/machinery/door/airlock/research, -/turf/open/floor/iron/dark, -/area/station/science/explab) +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) "LS" = ( /obj/machinery/quantum_server, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) +"LU" = ( +/obj/machinery/vending/subtype_vendor, +/turf/open/floor/iron, +/area/station/medical/chemistry) "LW" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"Ma" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"Mg" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) "Mh" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"Ml" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"My" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) "ME" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"MM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "MN" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"MY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "Nb" = ( /obj/machinery/bci_implanter, /turf/open/floor/iron/dark, @@ -2311,11 +2128,26 @@ /obj/machinery/chem_recipe_debug, /turf/open/floor/iron, /area/station/medical/chemistry) +"Ni" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/explab) "Ns" = ( /obj/machinery/door/airlock/public/glass, /obj/structure/cable, /turf/open/floor/iron, /area/station/medical/medbay) +"Nu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"NG" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "NZ" = ( /obj/machinery/rnd/production/protolathe/department, /turf/open/floor/iron, @@ -2341,15 +2173,58 @@ /obj/item/stock_parts/power_store/cell/bluespace, /turf/open/floor/iron/dark, /area/station/science/explab) +"OF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"OI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"OO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"OS" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/unlocked, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "OU" = ( /obj/item/disk/tech_disk/debug, /turf/open/floor/iron, /area/station/science) +"Pc" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "Pk" = ( /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron/dark, /area/station/science/explab) +"Pr" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 8 + }, +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/medbay) +"Pv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/meter/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Px" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -2362,19 +2237,11 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/security/brig) -"Qi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"Qt" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"PK" = ( +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/plating, +/turf/open/floor/iron/white/corner, /area/station/medical/medbay) "Qu" = ( /obj/docking_port/stationary/mining_home{ @@ -2382,6 +2249,35 @@ }, /turf/open/floor/engine, /area/station/cargo/miningoffice) +"QM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) +"QP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/east{ + id = "cargoload"; + name = "Loading Doors"; + pixel_y = -9 + }, +/obj/machinery/button/door/directional/east{ + id = "cargounload"; + name = "Unloading Doors"; + pixel_y = 8 + }, +/obj/machinery/computer/cargo{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) +"QV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "QY" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -2400,6 +2296,41 @@ /obj/machinery/byteforge, /turf/open/floor/circuit/green, /area/station/cargo/bitrunning/den) +"Ru" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"Rx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/closet/radiation, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"RD" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/table, +/obj/item/debug/omnitool{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/debug/omnitool/item_spawner{ + pixel_x = 4; + pixel_y = -6 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"RE" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "RM" = ( /obj/structure/closet/secure_closet/hop{ locked = 0 @@ -2428,6 +2359,14 @@ /obj/item/bitrunning_debug, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) +"SU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/brig) +"SX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "Td" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -2439,28 +2378,50 @@ /obj/machinery/door/poddoor, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"Ts" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "Tt" = ( /turf/open/floor/plating, /area/station/maintenance/aft) +"TJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "TR" = ( /obj/machinery/netpod, /turf/open/floor/iron, -/area/station/cargo/bitrunning/den) -"TV" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/construction) +/area/station/cargo/bitrunning/den) +"TT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 8 + }, +/turf/open/space, +/area/space/nearstation) "Ue" = ( /turf/closed/wall/r_wall, /area/station/cargo/bitrunning/den) -"Ut" = ( -/obj/structure/closet/secure_closet/medical3{ - locked = 0 - }, -/obj/item/healthanalyzer/advanced, +"Un" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/medical/medbay) +"Uy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "Va" = ( /obj/machinery/power/smes/full, /obj/effect/turf_decal/stripes/line{ @@ -2476,23 +2437,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"Vr" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/explab) "Vy" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"VA" = ( -/obj/structure/fans/tiny, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) "We" = ( /obj/machinery/newscaster/directional/west, /turf/open/floor/iron, @@ -2501,32 +2449,20 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"Wq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"Wx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "WK" = ( /obj/structure/money_bot, /turf/open/floor/iron/dark, /area/station/science/explab) -"WT" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/glass/ruin, +"WL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) +"WR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) +/turf/open/floor/iron, +/area/station/security/brig) "Xg" = ( /obj/machinery/light/directional/east, /obj/machinery/vending/syndichem{ @@ -2542,10 +2478,44 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"Xy" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/hallway/primary/central) +"XA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) "XC" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/science) +"XF" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargoload" + }, +/obj/structure/sign/warning/vacuum/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) +"XG" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"XK" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "XN" = ( /obj/structure/table, /obj/item/organ/internal/cyberimp/bci{ @@ -2559,12 +2529,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) -"XR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "XU" = ( /obj/machinery/atmospherics/components/tank/air, /obj/machinery/light/directional/north, @@ -2588,6 +2552,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) +"Yt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Yy" = ( /obj/machinery/light/directional/north, /obj/machinery/rnd/production/circuit_imprinter/department, @@ -2595,6 +2564,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science) +"Yz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/medical/medbay) "YL" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -2607,6 +2581,28 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"Zl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/main) +"Zo" = ( +/obj/structure/table, +/obj/item/gun/magic/wand/resurrection/debug, +/obj/item/gun/magic/wand/death/debug{ + pixel_y = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/debug/human_spawner{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "Zz" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/stripes/line, @@ -2615,6 +2611,12 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/commons/storage/primary) +"ZB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ZD" = ( /obj/machinery/suit_storage_unit/ce, /turf/open/floor/iron, @@ -3389,7 +3391,7 @@ aa Ue LS Yd -hv +fL TR Ue aa @@ -3481,7 +3483,7 @@ aa Ue IF Aj -vb +uL SC Ue aa @@ -3573,7 +3575,7 @@ em Ue Ue Ue -nI +wp QY Ue Tj @@ -3665,7 +3667,7 @@ rK rK vy em -aB +jL eh LW lc @@ -3757,7 +3759,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -3849,7 +3851,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -3941,7 +3943,7 @@ qQ qQ CQ em -mi +OF eh LW lc @@ -4033,7 +4035,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -4125,7 +4127,7 @@ qQ qQ YL em -aB +jL eh LW lc @@ -4214,11 +4216,11 @@ II Td II II -gl -gD -kj -aB -wM +Uy +Cg +wD +jL +jL LW lc lc @@ -4306,11 +4308,11 @@ em em em EM -gm -go -gp -eL -gr +yi +yi +em +eh +ax LW lc lc @@ -4402,7 +4404,7 @@ dY dY dY eh -gu +ax LW lc lc @@ -4494,7 +4496,7 @@ od dj ed eh -gu +ax LW lc lc @@ -4586,7 +4588,7 @@ fi dP ex eh -gu +ax LW lc lc @@ -4678,7 +4680,7 @@ Re dV dY ej -gu +ax LW lc lc @@ -4770,7 +4772,7 @@ dY dY dY eh -gu +ax LW lc lc @@ -4862,7 +4864,7 @@ aa aa dY gE -gu +ax LW lc lc @@ -4953,8 +4955,8 @@ aa aa aa dY -gq -ei +SX +ax LW lc lc @@ -4965,7 +4967,7 @@ lc lc wB eh -gw +GN dY aa aa @@ -4973,7 +4975,7 @@ aa aa aa dY -gB +ru eh en aa @@ -5046,7 +5048,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5057,7 +5059,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5065,7 +5067,7 @@ aa aa aa en -ek +BM eh dY aa @@ -5138,7 +5140,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5149,7 +5151,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5157,7 +5159,7 @@ aa aa aa en -ek +BM eh en aa @@ -5230,7 +5232,7 @@ aa aa dY ej -gu +ax LW lc lc @@ -5241,7 +5243,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5249,7 +5251,7 @@ aa aa aa en -ek +BM eh dY aa @@ -5322,7 +5324,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5333,7 +5335,7 @@ lc lc wB eh -gx +Ml dY aa aa @@ -5341,7 +5343,7 @@ aa aa aa dY -gC +OI eh dY aa @@ -5414,7 +5416,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5425,7 +5427,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5433,7 +5435,7 @@ eE aa aa en -ek +BM eh dY aa @@ -5506,7 +5508,7 @@ bw ag ag eh -gu +ax LW dh en @@ -5517,7 +5519,7 @@ en dY wB eh -ek +BM dY dY fn @@ -5525,7 +5527,7 @@ fs en dY dY -ek +BM eh dY aa @@ -5598,7 +5600,7 @@ aD dR ag eh -gu +ax eh eV eh @@ -5609,7 +5611,7 @@ eh eV eh eh -ek +BM eh eV eh @@ -5617,7 +5619,7 @@ eh eh eV eh -ek +BM eh dY aa @@ -5682,34 +5684,34 @@ ag gn aD aD -bH -ci -ci -ci -ci -ci -eg -ei -gu -ei -ep -ei -ei -ei -ei -ei -ei -ei -ei -gu -ei -ei -ei -ei -ei -ei -Qi -fZ +SU +WR +WR +WR +WR +WR +GQ +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +jL +BM eh dY aa @@ -5784,7 +5786,7 @@ ag eh eh eh -gu +ax eh eh eh @@ -5800,7 +5802,7 @@ eh eh eh eh -rn +jL eh eh dY @@ -5876,7 +5878,7 @@ bA gd bA bZ -ft +Xy bZ cN cN @@ -5892,7 +5894,7 @@ cN cN cN cN -LH +os en dY dY @@ -5959,7 +5961,7 @@ ut aw hm aw -aw +hr Kx ah zS @@ -5968,7 +5970,7 @@ ca If bA kn -ES +xK bE cN Sg @@ -5984,7 +5986,7 @@ dy dm dM cN -Vr +Ni vm uQ Ov @@ -6048,22 +6050,22 @@ aa aa ah am -aw -aw -ba -jE -MY -bk -bt -bt -bt -AP -pA -kQ -ES -rL -cP -cX +EN +FC +FC +Nu +xY +Ks +My +My +My +bD +bA +XK +xK +Mh +cN +ou dn dn dn @@ -6076,7 +6078,7 @@ dn dn dL sr -nn +OO ZP ZP WK @@ -6140,22 +6142,22 @@ aa aa ah dS -aw +GC aN bb -bl +Ru zo ah Yy bD -XC -gY -jb -ES -bE -Mh -TV -EA +QM +QM +rh +ZB +QV +FA +Hb +Es dn dn dn @@ -6232,19 +6234,19 @@ aa aa ah am -aw +bm aO bc -bm +Ru ZD ah bF OU -XC +wc Ct gd -cA bE +QV bE ef cY @@ -6324,10 +6326,10 @@ aa aa ah XU -bl -aP -aP -XR +Yt +FE +FE +Pv Xp ah NZ @@ -6335,8 +6337,8 @@ bD XC co bA -JS -bE +OS +QV bE cN dW @@ -6415,11 +6417,11 @@ aa aa aa ah -Wh -ah ah Wh -ah +Wh +Wh +TJ ah ah bu @@ -6427,8 +6429,8 @@ bu cd bu bu -cB -bE +Ef +QV bE cN cY @@ -6511,7 +6513,7 @@ ab ab ab ab -ab +TT ab ab bu @@ -6519,9 +6521,9 @@ Fd ce cp bu -cC -lX -bE +Hc +QV +hp cN cY dn @@ -6611,8 +6613,8 @@ bI cf EI bv -dU -bE +Hc +QV bE cN cY @@ -6703,8 +6705,8 @@ BG cf BD bu -dU -bE +Hc +QV bE cN cY @@ -6793,10 +6795,10 @@ ab bv bJ cf -cq -cw -Wq -bE +xD +io +lu +QV bE ef cY @@ -6887,8 +6889,8 @@ bK cf Iy bu -cD -bE +XG +QV bE ef cY @@ -6970,7 +6972,7 @@ ae ac ac aj -aC +Kg aj ac ac @@ -6979,8 +6981,8 @@ aK cf RM bv -cD -bE +XG +QV bE cN dK @@ -7062,7 +7064,7 @@ aj aj aj aj -VA +vS aj ac ac @@ -7071,8 +7073,8 @@ bM cg cr bu -wb -bE +DO +QV bE cS cS @@ -7154,7 +7156,7 @@ aj al aA aj -WT +eB aj aj aj @@ -7163,8 +7165,8 @@ bu cd bu bu -cE -bE +kS +QV bE cS Zz @@ -7246,7 +7248,7 @@ aj ap aA We -Vy +Ma aS bd bo @@ -7255,8 +7257,8 @@ hD cj ct Nc -cF -bE +qH +QV bE cS dc @@ -7337,21 +7339,21 @@ aa aj aq Vy -Vy -aE -aT -be -be -bx -CV -CV -ch -CV -cT -bN -bN -da -fK +Zl +Ma +oK +oK +oK +sT +IV +IV +Ce +Ce +qH +QV +bE +cS +qv dJ dJ dJ @@ -7430,20 +7432,20 @@ aj IH aA aH -aF -lg +aA +mk bf bp aj Px +tn Ce -JF -mE -oV -bE +GZ +qH +QV bE cS -fx +jg dq dJ dJ @@ -7454,7 +7456,7 @@ dJ dJ dJ dJ -ny +gi cS fI ga @@ -7523,19 +7525,19 @@ ad ak ak ak -aU +Ts ak ak ak bQ -Ce -Ce -cj -vP -Mh +tn +tn +tn +tQ +sN Vg cS -fy +rC dr dJ dJ @@ -7546,7 +7548,7 @@ dJ dJ dJ dJ -dO +nT cS fO fO @@ -7614,20 +7616,20 @@ ad af ak Va -aG -aV +Bp +nb bg bq ak bR cj +mb cj -cj -oV -bE +qH +QV Mh uO -fz +Hg ds dJ dJ @@ -7705,21 +7707,21 @@ aa bY af ak -at -Wx +Rx +bh bh bh br ak bS Ce -Ce +LU cj -oV -bE -bE -cV -fA +qH +QV +QV +zg +ay dt dJ dD @@ -7807,11 +7809,11 @@ Ly EX Xg cj -oV -bE +qH +QV bE cV -fC +pw du dJ dJ @@ -7899,11 +7901,11 @@ by ck by Ns -cG -cx by +Mg by -fD +by +pZ dv dJ dJ @@ -7989,13 +7991,13 @@ av by Ot cl +RD cl -cl -cH -cu +Zo +wa cJ by -fE +Pc dw dJ dJ @@ -8006,7 +8008,7 @@ dJ dJ dJ dJ -dN +kf cS fQ fO @@ -8079,20 +8081,20 @@ av Jp av by -bV -cm +DD cm cm cm cm +WL Sj by -dA +jk dJ dJ dJ dJ -dF +yl dJ dJ dJ @@ -8101,8 +8103,8 @@ dJ dJ cS fS -lH -gb +fO +AD fO gk aa @@ -8171,30 +8173,30 @@ MN MN av by -bW -cm -cm +ER cm cm cm -cL +Un +WL +LD by -dk -eH -eH -eH -eH -fH -fw -eH -eH -eH -eH -fH -fR -fW -lH -fO +DC +Bz +Bz +Bz +Bz +wl +DC +MM +MM +MM +MM +qw +pe +pr +Fy +Fy fO ga aa @@ -8263,21 +8265,21 @@ aY av av by -bX +jZ +cm cm -is -cy -Ut cm -cK +cm +WL +jz by dB dx dl dl gg -ez -dB +JV +zY dl dl dl @@ -8355,12 +8357,12 @@ ak ak ak by -by -dH -by -Qt -by -EB +er +cm +cm +cm +cm +WL DW by cS @@ -8368,9 +8370,9 @@ cS cS cS cS -fN -vv -cS +Is +Jd +tz cS cS cS @@ -8446,13 +8448,13 @@ af af af af -af -af -af -by -cz -by -cm +Lb +wk +PK +PK +CF +XA +vB es by eu @@ -8460,8 +8462,8 @@ eu qx eP fY -eZ -eu +NG +vQ fq fr eu @@ -8538,13 +8540,13 @@ ad ad ad ad -ad -ad -ad by -pI by by +Lq +yH +by +ck by by eu @@ -8552,8 +8554,8 @@ eu eu eQ eu -fa -eu +CG +vQ eu eu fo @@ -8630,25 +8632,25 @@ fg fg fg fg -fg -fg -fg -fg -fg -fg -fg -fg -et +aa +aa +ck +mC +BB +Yz +mC +mC +by ev eA eA -eA +IX eN -ev -fe -ev +Ao +QP +pL eT -fm +XF fm ev et @@ -8724,23 +8726,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +ck +mC +mC +Pr +mC +mC +by et -fB -fh fh fh +et eY -eR -fh -eR +DT +et +RE fc -fh +et fh fh et @@ -8816,23 +8818,23 @@ aa aa aa aa +by +ck +ck +by +CJ +CJ +by aa aa aa -aa -aa -aa -aa -aa -aa -aa -ew +fh eC -fF -fB -fF +gH +ng +GV fl -ew +fh aa aa aa @@ -8919,11 +8921,11 @@ aa aa aa fh -eY -eS -fh -eS -fc +eC +An +ya +An +fl fh aa aa @@ -9010,13 +9012,13 @@ aa aa aa aa -aa -aa -eJ -aa -aa -aa -aa +et +eY +qg +fB +qg +fc +et aa aa aa @@ -9104,7 +9106,7 @@ aa aa aa aa -aa +eJ aa aa aa diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 41d9c412d4d95..efc6e69075a45 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -664,8 +664,9 @@ /turf/open/floor/iron/stairs/medium, /area/station/escapepodbay) "act" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/railing, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 }, /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -740,21 +741,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/service) "acF" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /obj/machinery/door/airlock/public/glass{ name = "Primary Tool Storage" }, -/obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/commons/storage/primary) "acG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /turf/open/floor/iron, @@ -1163,9 +1156,18 @@ /turf/open/floor/iron, /area/station/maintenance/tram/right) "adE" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/structure/cable, -/turf/open/floor/iron, +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/fyellow{ + pixel_x = 5 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "adF" = ( /obj/effect/turf_decal/siding/thinplating/dark{ @@ -1248,11 +1250,13 @@ /turf/open/floor/iron/dark, /area/station/escapepodbay) "adU" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, -/obj/structure/cable, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "adV" = ( @@ -1960,6 +1964,11 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/commons/vacant_room) +"agG" = ( +/obj/structure/dresser, +/obj/item/cigarette/cigar/havana, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room) "agH" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/reagent_dispensers/beerkeg, @@ -2950,6 +2959,14 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) +"aoN" = ( +/obj/machinery/elevator_control_panel{ + pixel_y = 2; + linked_elevator_id = "tram_xeno_lift"; + preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") + }, +/turf/closed/wall, +/area/station/science/xenobiology) "aoV" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/iron/dark, @@ -3570,10 +3587,6 @@ }, /turf/open/floor/iron, /area/station/security/processing) -"avE" = ( -/obj/structure/lattice, -/turf/open/space/openspace, -/area/space/nearstation) "avG" = ( /obj/structure/chair{ dir = 1 @@ -3742,8 +3755,7 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/cargo/drone_bay) "axC" = ( @@ -3848,12 +3860,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/checker, /area/station/commons/lounge) -"ayE" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/light/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ayG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -5047,6 +5053,12 @@ }, /turf/open/openspace, /area/station/hallway/primary/tram/center) +"aKG" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/commons/storage/primary) "aKL" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/door/firedoor/border_only, @@ -5304,7 +5316,7 @@ }, /obj/machinery/light/warm/directional/north, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "aMM" = ( @@ -5732,6 +5744,7 @@ /area/station/medical/virology) "aQL" = ( /obj/machinery/airalarm/directional/south, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) "aQM" = ( @@ -6057,18 +6070,16 @@ /turf/open/floor/iron/white, /area/station/science/lower) "aWJ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /obj/machinery/door/airlock/public/glass{ name = "Primary Tool Storage" }, -/obj/machinery/door/firedoor, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination/tools, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "aWL" = ( @@ -6778,7 +6789,7 @@ /area/station/command/bridge) "bpn" = ( /mob/living/carbon/human/species/monkey, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "bpu" = ( /obj/structure/cable, @@ -7166,7 +7177,7 @@ "bwU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "bxd" = ( /obj/structure/table, @@ -7497,17 +7508,6 @@ /obj/effect/turf_decal/tile/dark_green/fourcorners, /turf/open/floor/iron/white, /area/station/science/genetics) -"bDH" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "bEo" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 9 @@ -8147,6 +8147,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"bNm" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "bNp" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -8207,11 +8215,11 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "bNG" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, +/obj/machinery/vending/modularpc, +/obj/structure/table, /turf/open/floor/iron, /area/station/commons/storage/primary) "bNI" = ( @@ -8922,10 +8930,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"bZJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bZN" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -9051,15 +9055,6 @@ /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron, /area/station/cargo/office) -"cco" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/landmark/event_spawn, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "ccx" = ( /obj/structure/rack, /obj/item/storage/toolbox/electrical{ @@ -9181,6 +9176,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"cdM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + name = "Test Chamber Blast Door"; + id = "Xenolab" + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/plating, +/area/station/science/xenobiology) "cdN" = ( /obj/machinery/button/ignition/incinerator/atmos, /turf/closed/wall/r_wall, @@ -9690,6 +9695,14 @@ /obj/machinery/vending/modularpc, /turf/open/floor/iron/white, /area/station/science/lobby) +"coB" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron, +/area/station/engineering/atmos) "coI" = ( /obj/machinery/door/airlock{ name = "Room 1"; @@ -9727,10 +9740,14 @@ /turf/open/floor/wood, /area/station/service/library) "coV" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/table, /obj/machinery/cell_charger, +/obj/item/screwdriver{ + pixel_x = 2; + pixel_y = 11 + }, /obj/item/stock_parts/power_store/cell/high, -/obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/iron, /area/station/commons/storage/primary) "cpl" = ( @@ -10175,7 +10192,7 @@ name = "The Monkey Pit"; req_access = list("science") }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "cxc" = ( /obj/structure/chair, @@ -10492,6 +10509,12 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/wood/large, /area/station/service/barber) +"cAK" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/light/directional/north, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "cBo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -10696,6 +10719,31 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"cFH" = ( +/obj/structure/table/wood, +/obj/structure/sign/picture_frame/showroom/two{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/one{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/cigarette/cigar{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/cigarette/cigar/cohiba, +/turf/open/floor/wood, +/area/station/command/meeting_room) "cFP" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -11518,10 +11566,10 @@ /turf/closed/wall, /area/station/hallway/primary/tram/center) "cTl" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 }, +/obj/machinery/vending/assist, /turf/open/floor/iron, /area/station/commons/storage/primary) "cTw" = ( @@ -11748,12 +11796,6 @@ /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"cXC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/airless, -/area/space/nearstation) "cXL" = ( /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) @@ -13154,6 +13196,20 @@ /obj/structure/flora/bush/leavy/style_random, /turf/open/floor/grass, /area/station/medical/virology) +"dyp" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "dys" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 @@ -13878,23 +13934,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/engineering/main) -"dLz" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/micro_laser, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/white, -/area/station/science/lab) "dLD" = ( /obj/effect/turf_decal/bot, /obj/item/mop, @@ -14228,31 +14267,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"dQD" = ( -/obj/structure/table/wood, -/obj/structure/sign/picture_frame/showroom/two{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/sign/picture_frame/showroom/one{ - pixel_x = -8; - pixel_y = 32 - }, -/obj/item/storage/box/matches{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/item/cigarette/cigar{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/cigarette/cigar/cohiba, -/turf/open/floor/wood, -/area/station/command/meeting_room) "dQI" = ( /obj/machinery/disposal/bin, /obj/machinery/airalarm/directional/south, @@ -14503,6 +14517,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, /area/station/hallway/secondary/service) "dUK" = ( @@ -14802,17 +14819,19 @@ /turf/open/floor/iron/dark, /area/station/command/teleporter) "eaZ" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/wrench{ + pixel_x = 3; + pixel_y = 4 }, -/obj/item/t_scanner, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 +/obj/item/assembly/prox_sensor{ + pixel_x = 10; + pixel_y = 11 }, -/obj/structure/sign/clock/directional/east, -/turf/open/floor/iron, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "ebq" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -16401,15 +16420,12 @@ /turf/open/openspace, /area/station/asteroid) "eHj" = ( -/obj/machinery/vending/tool, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/warning{ dir = 4 }, -/obj/machinery/camera/directional/east{ - c_tag = "Civilian - Primary Tool Storage" - }, -/turf/open/floor/iron, +/obj/structure/sign/clock/directional/east, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "eHr" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, @@ -17923,13 +17939,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) -"flO" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/netpod, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/bitrunning/den) "flP" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -18724,6 +18733,10 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/cargo/warehouse) +"fCy" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fCO" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -18776,14 +18789,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/commons/storage/tools) -"fDz" = ( -/obj/machinery/elevator_control_panel{ - pixel_y = 2; - linked_elevator_id = "tram_xeno_lift"; - preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") - }, -/turf/closed/wall, -/area/station/science/xenobiology) "fDS" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Laser Room" @@ -18848,7 +18853,7 @@ /area/station/engineering/storage/tech) "fEM" = ( /obj/machinery/light/warm/directional/south, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "fEQ" = ( /obj/structure/cable, @@ -18980,7 +18985,7 @@ "fGK" = ( /mob/living/carbon/human/species/monkey, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "fHg" = ( /obj/structure/chair{ @@ -19414,6 +19419,13 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"fPp" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/vatgrower{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fPv" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/window/left/directional/north{ @@ -19664,28 +19676,11 @@ /turf/closed/wall/r_wall, /area/station/science/xenobiology) "fUP" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, /obj/machinery/firealarm/directional/west{ - pixel_y = -3 - }, -/obj/item/storage/belt/utility, -/obj/machinery/light_switch/directional/west{ - pixel_x = -23; - pixel_y = 8 + pixel_y = -5 }, /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -20220,6 +20215,15 @@ "geG" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit) +"geJ" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "geX" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -20351,6 +20355,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "ghs" = ( @@ -20539,7 +20544,7 @@ name = "The Monkey Pit"; req_access = list("science") }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "gkQ" = ( /obj/machinery/computer/atmos_control/mix_tank{ @@ -20673,16 +20678,19 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom/holding) "gms" = ( -/obj/structure/rack, -/obj/item/weldingtool, -/obj/item/crowbar, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 +/obj/structure/table, +/obj/item/wirecutters{ + pixel_y = 7; + pixel_x = -4 }, -/turf/open/floor/iron, +/obj/item/stack/cable_coil{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/item/stack/cable_coil{ + pixel_y = 4 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "gmu" = ( /obj/effect/decal/cleanable/dirt, @@ -21404,9 +21412,8 @@ /turf/open/floor/carpet, /area/station/commons/dorms) "gBr" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -21657,13 +21664,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/cargo/miningdock) -"gFm" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/plumbing/input{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "gFt" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -22240,9 +22240,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"gQc" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) "gQk" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 4 @@ -22292,6 +22289,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/secondary/service) "gRQ" = ( @@ -22572,7 +22572,7 @@ /area/station/security/checkpoint/supply) "gXo" = ( /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "gXA" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, @@ -22745,6 +22745,19 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) +"hbk" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "hbQ" = ( /obj/machinery/camera/directional/north{ c_tag = "Civilian - Holodeck Controls" @@ -23813,13 +23826,6 @@ dir = 1 }, /area/station/hallway/secondary/service) -"hwQ" = ( -/obj/effect/turf_decal/box/red, -/obj/machinery/plumbing/growing_vat{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hxL" = ( /obj/structure/transport/linear/public, /obj/effect/turf_decal/caution/stand_clear/red, @@ -23840,7 +23846,6 @@ /turf/open/floor/iron/dark/smooth_corner, /area/station/commons/fitness) "hze" = ( -/obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 }, @@ -23848,6 +23853,8 @@ pixel_x = -22; pixel_y = -8 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/drone_bay) "hzk" = ( @@ -26242,6 +26249,10 @@ }, /turf/open/floor/wood/large, /area/station/service/library) +"iuV" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine, +/area/station/science/xenobiology) "iva" = ( /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 9 @@ -26414,6 +26425,17 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"ixH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/openspace, +/area/space/nearstation) "ixO" = ( /obj/structure/chair/comfy/brown{ dir = 8; @@ -27257,7 +27279,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/incident_display/dual/directional/south, +/obj/machinery/incident_display/tram/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) "iOC" = ( @@ -27401,10 +27423,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) -"iRb" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/storage) "iRe" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/reagent_dispensers/foamtank, @@ -28518,6 +28536,15 @@ }, /turf/open/space/basic, /area/space/nearstation) +"jjM" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 9 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "jjP" = ( /obj/effect/spawner/random/structure/billboard/nanotrasen, /obj/effect/turf_decal/sand/plating, @@ -28862,13 +28889,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"jpt" = ( -/obj/machinery/duct, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "jpB" = ( /obj/structure/sign/clock/directional/north, /obj/structure/cable, @@ -29047,7 +29067,7 @@ /obj/machinery/camera/directional/north{ c_tag = "Command - Bridge North" }, -/obj/machinery/incident_display/dual/directional/north, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron, /area/station/command/bridge) "jsW" = ( @@ -30857,12 +30877,18 @@ /turf/open/floor/wood, /area/station/commons/dorms) "jYJ" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/analyzer{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/t_scanner{ + pixel_x = -6; + pixel_y = 6 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "jYO" = ( @@ -31645,6 +31671,7 @@ /obj/effect/spawner/random/vending/snackvend{ pixel_x = -5 }, +/obj/machinery/incident_display/delam/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) "kkg" = ( @@ -32127,6 +32154,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"ksk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "ksm" = ( /obj/machinery/door/airlock/atmos{ name = "Turbine Access" @@ -32491,6 +32527,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "kzx" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) "kzC" = ( @@ -32733,13 +32776,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"kEm" = ( -/obj/machinery/camera/motion/directional/south{ - network = list("ss13","minisat"); - c_tag = "Secure - AI Lower External North" - }, -/turf/open/space/basic, -/area/space/nearstation) "kEN" = ( /obj/structure/stairs/north, /turf/open/floor/iron/stairs/right, @@ -32875,6 +32911,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/security/execution/education) +"kGv" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "kGA" = ( /obj/structure/railing, /obj/machinery/door/firedoor/border_only, @@ -33528,7 +33571,7 @@ pixel_x = 5; pixel_y = 16 }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "kQX" = ( /obj/machinery/computer/security{ @@ -33577,7 +33620,7 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "kRR" = ( -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "kRW" = ( /obj/effect/decal/cleanable/dirt, @@ -37173,6 +37216,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"mbe" = ( +/obj/machinery/camera/motion/directional/south{ + network = list("ss13","minisat"); + c_tag = "Secure - AI Lower External North" + }, +/turf/open/space/basic, +/area/space/nearstation) "mbk" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -37832,7 +37882,7 @@ /area/station/command/meeting_room) "mmy" = ( /obj/structure/flora/bush/jungle/c/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "mmH" = ( /obj/effect/turf_decal/delivery, @@ -38297,17 +38347,6 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat_interior) -"mwP" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/openspace, -/area/space/nearstation) "mxf" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -38746,6 +38785,12 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) +"mFh" = ( +/obj/machinery/sparker/directional/west{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "mFo" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -39258,10 +39303,7 @@ /turf/open/floor/iron, /area/station/hallway/secondary/service) "mOB" = ( -/obj/structure/table, -/obj/item/analyzer, -/obj/item/wrench, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/shrink_ccw{ dir = 8 }, /turf/open/floor/iron, @@ -41287,7 +41329,7 @@ "nzO" = ( /mob/living/carbon/human/species/monkey, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "nzR" = ( @@ -41449,6 +41491,23 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"nDR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/white, +/area/station/science/lab) "nDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41935,7 +41994,7 @@ /area/station/engineering/supermatter/room) "nNh" = ( /obj/structure/flora/bush/sunny/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "nNi" = ( /obj/structure/table/wood, @@ -42165,7 +42224,7 @@ "nRd" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "nRw" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -42264,13 +42323,6 @@ /obj/structure/fluff/tram_rail/electric, /turf/open/openspace, /area/station/hallway/primary/tram/center) -"nSR" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/plumbing/input{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nSV" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 @@ -43795,8 +43847,8 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/disposalpipe/junction{ + dir = 2 }, /turf/open/floor/iron, /area/station/hallway/secondary/service) @@ -44516,11 +44568,10 @@ /turf/open/floor/plating/elevatorshaft, /area/station/maintenance/tram/mid) "oOb" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, +/obj/structure/railing, +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "oOd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44651,7 +44702,7 @@ /area/station/ai_monitored/command/nuke_storage) "oQU" = ( /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "oQW" = ( /obj/effect/turf_decal/siding/thinplating{ @@ -44739,9 +44790,18 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "oSl" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "oSu" = ( @@ -46096,8 +46156,9 @@ /turf/open/floor/iron/white, /area/station/science/explab) "prW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, +/turf/open/floor/iron/stairs{ + dir = 8 + }, /area/station/commons/storage/primary) "psa" = ( /obj/structure/tank_holder/anesthetic, @@ -46345,6 +46406,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) +"pvL" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "pvU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46813,13 +46879,15 @@ /turf/open/floor/plating, /area/station/cargo/miningdock) "pCM" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) "pCU" = ( @@ -46847,14 +46915,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/cargo/lobby) -"pDn" = ( -/obj/machinery/elevator_control_panel{ - pixel_y = 2; - linked_elevator_id = "tram_xeno_lift"; - preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") - }, -/turf/closed/wall/r_wall, -/area/station/science/xenobiology) "pDu" = ( /obj/machinery/duct, /obj/structure/cable, @@ -46951,12 +47011,19 @@ /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) "pFw" = ( -/obj/machinery/vending/modularpc, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/machinery/airalarm/directional/east, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = 17 }, -/turf/open/floor/iron, +/obj/item/storage/toolbox/electrical{ + pixel_y = 10; + pixel_x = 4 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 5 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "pFE" = ( /obj/structure/table, @@ -47091,10 +47158,6 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/science/lower) -"pHM" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "pHX" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 @@ -47538,10 +47601,15 @@ /turf/open/floor/plating, /area/station/maintenance/tram/mid) "pOQ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/commons/storage/primary) "pOZ" = ( @@ -47619,14 +47687,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/brig) -"pQa" = ( -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron, -/area/station/engineering/atmos) "pQx" = ( /turf/open/misc/asteroid/dug, /area/station/science/explab) @@ -47738,7 +47798,7 @@ "pTj" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "pTl" = ( @@ -48395,7 +48455,7 @@ /turf/open/floor/iron/dark, /area/station/commons/lounge) "qeD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/shrink_cw{ dir = 8 }, /turf/open/floor/iron, @@ -49231,9 +49291,6 @@ }, /turf/open/floor/wood, /area/station/command/meeting_room) -"qtq" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "qtB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -49431,15 +49488,10 @@ /turf/open/floor/iron, /area/station/security/office) "qxU" = ( -/obj/structure/table, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/wirecutters, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 }, +/obj/machinery/vending/tool, /turf/open/floor/iron, /area/station/commons/storage/primary) "qxZ" = ( @@ -49604,6 +49656,12 @@ /obj/machinery/door/window/right/directional/east, /turf/open/floor/iron, /area/station/security/brig) +"qAC" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 10 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "qBg" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) @@ -51670,10 +51728,13 @@ /turf/open/floor/iron/dark, /area/station/command/gateway) "rkq" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 +/obj/structure/table, +/obj/item/flashlight{ + pixel_x = 9; + pixel_y = 13 }, -/turf/open/floor/iron, +/obj/item/storage/belt/utility, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "rks" = ( /obj/effect/spawner/structure/window, @@ -51981,13 +52042,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"rpm" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "rpp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -52162,6 +52216,14 @@ "run" = ( /turf/closed/wall/r_wall, /area/station/security/medical) +"ruo" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "rup" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -53742,6 +53804,9 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) +"rYE" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) "rYL" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -54260,6 +54325,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/lower) +"siX" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/airless, +/area/space/nearstation) "siZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55594,7 +55665,7 @@ /area/station/cargo/miningdock) "sGF" = ( /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "sGG" = ( @@ -55863,6 +55934,16 @@ /obj/structure/railing/corner, /turf/open/space/openspace, /area/station/solars/starboard/fore) +"sLp" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "sLz" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -56547,17 +56628,15 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) "sXV" = ( -/obj/structure/table, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter{ - pixel_x = -8; - pixel_y = -4 - }, -/obj/item/screwdriver{ - pixel_y = 16 +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/rack, +/obj/machinery/light_switch/directional/south{ + pixel_x = 13 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/light/directional/south, +/obj/item/crowbar, +/obj/item/weldingtool, /turf/open/floor/iron, /area/station/commons/storage/primary) "sXW" = ( @@ -56872,7 +56951,7 @@ "tdY" = ( /obj/structure/flora/bush/jungle/c/style_random, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "tdZ" = ( @@ -57734,6 +57813,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) +"ttj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "tto" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -57777,6 +57860,7 @@ /obj/structure/closet/crate/preopen, /obj/item/stock_parts/power_store/cell/empty, /obj/effect/spawner/random/engineering/flashlight, +/obj/structure/sign/departments/exodrone/directional/east, /turf/open/floor/iron, /area/station/cargo/warehouse) "tuf" = ( @@ -58193,6 +58277,9 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"tBo" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "tBu" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -58348,6 +58435,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"tEx" = ( +/obj/machinery/camera/directional/north{ + network = list("ss13","rd","xeno"); + c_tag = "Science - Xenobiology Lower Containment Chamber" + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "tED" = ( /obj/effect/turf_decal/tile/neutral/tram, /obj/effect/turf_decal/stripes/white/line, @@ -59030,7 +59127,7 @@ c_tag = "Civilian - Recreational Area North-West" }, /obj/item/toy/plush/lizard_plushie/space/green, -/obj/machinery/incident_display/dual/directional/north, +/obj/machinery/incident_display/tram/directional/north, /turf/open/floor/iron, /area/station/commons/fitness/recreation) "tRo" = ( @@ -61150,15 +61247,15 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "uAC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "uAF" = ( @@ -61434,6 +61531,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "uEw" = ( @@ -62434,7 +62532,7 @@ "uVa" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/jungle/c/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "uVb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64388,7 +64486,7 @@ /area/station/engineering/atmos) "vCY" = ( /obj/structure/flora/tree/palm/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "vCZ" = ( /turf/closed/wall, @@ -64428,7 +64526,7 @@ /obj/structure/flora/bush/fullgrass/style_random, /obj/effect/landmark/event_spawn, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "vDu" = ( @@ -64478,7 +64576,7 @@ /area/station/maintenance/central/greater) "vEl" = ( /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "vEq" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ @@ -64539,7 +64637,9 @@ /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) "vFp" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 }, /turf/open/floor/iron, @@ -66442,6 +66542,10 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"wrn" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "wru" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -66466,6 +66570,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) +"wrJ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/netpod, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/bitrunning/den) "wrT" = ( /obj/structure/table/glass, /obj/item/grenade/chem_grenade, @@ -66494,16 +66605,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"wso" = ( -/obj/machinery/camera/directional/north{ - network = list("ss13","rd","xeno"); - c_tag = "Science - Xenobiology Lower Containment Chamber" - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "wsq" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -66586,7 +66687,7 @@ /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/tree/palm/style_random, /obj/structure/flora/coconuts, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "wtS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -66656,12 +66757,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) -"wvL" = ( -/obj/machinery/sparker/directional/west{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "wvQ" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -67168,6 +67263,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "wEu" = ( @@ -67429,6 +67525,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"wIP" = ( +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) "wIT" = ( /obj/structure/chair/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67892,7 +67992,7 @@ /area/station/commons/dorms) "wSp" = ( /obj/structure/flora/bush/jungle/b/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "wSx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -68058,15 +68158,11 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "wXB" = ( -/obj/machinery/vending/assist, -/obj/machinery/requests_console/directional/east{ - name = "Tool Department Requests Console"; - department = "Tool Storage" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 6 }, -/turf/open/floor/iron, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "wXC" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -68358,11 +68454,6 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/cargo/miningfoundry) -"xdc" = ( -/obj/structure/dresser, -/obj/item/cigarette/cigar/havana, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room) "xdx" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -68894,16 +68985,6 @@ "xnI" = ( /turf/open/floor/iron, /area/station/maintenance/tram/left) -"xnL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - name = "Test Chamber Blast Door"; - id = "Xenolab" - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/science/xenobiology) "xnS" = ( /obj/machinery/door/airlock/highsecurity{ name = "AI Upload Access" @@ -69573,6 +69654,14 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"xAM" = ( +/obj/machinery/elevator_control_panel{ + pixel_y = 2; + linked_elevator_id = "tram_xeno_lift"; + preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") + }, +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) "xAR" = ( /obj/machinery/door/airlock/security{ name = "Prison Workshop" @@ -70380,6 +70469,10 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/tram/left) +"xRm" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "xRn" = ( /turf/open/floor/plating, /area/station/hallway/secondary/service) @@ -87610,10 +87703,10 @@ jcT jcT ncE aek -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm fYW vXM vXM @@ -89410,10 +89503,10 @@ ncE jcT jcT aek -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm fYW vXM vXM @@ -92238,10 +92331,10 @@ jcT jcT ncE aek -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm fYW fYW fYW @@ -92498,7 +92591,7 @@ aac aac aac vXM -pHM +xRm vXM vXM vXM @@ -92508,7 +92601,7 @@ vXM vXM vXM vXM -pHM +xRm fYW fYW fYW @@ -92755,7 +92848,7 @@ aac aac aac vXM -pHM +xRm vXM vXM vXM @@ -92765,14 +92858,14 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM fYW vXM @@ -93012,9 +93105,9 @@ jcT jcT aac aek -pHM -pHM -pHM +xRm +xRm +xRm rWa vXM vXM @@ -93022,14 +93115,14 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -93273,12 +93366,12 @@ vXM rWa vXM qdd -pHM -pHM +xRm +xRm rWa -pHM -pHM -pHM +xRm +xRm +xRm rWa vXM vXM @@ -93286,7 +93379,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -93537,17 +93630,17 @@ vXM rWa vXM qdd -pHM -pHM +xRm +xRm rWa -pHM -pHM -pHM +xRm +xRm +xRm rWa -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm fYW vXM vXM @@ -94554,12 +94647,12 @@ ncE ncE aac aek -pHM -pHM -pHM +xRm +xRm +xRm rWa -pHM -pHM +xRm +xRm qdd vXM rWa @@ -94814,16 +94907,16 @@ aac aac vXM vXM -pHM +xRm vXM vXM rWa -pHM -pHM -pHM +xRm +xRm +xRm rWa -pHM -pHM +xRm +xRm qdd vXM rWa @@ -95071,25 +95164,25 @@ aac aac aac aac -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM rWa -pHM -pHM -pHM +xRm +xRm +xRm rWa -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm fYW vXM vXM @@ -95335,14 +95428,14 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -95599,7 +95692,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -95856,7 +95949,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -96113,7 +96206,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -97890,9 +97983,9 @@ aak aak aak aak -pHM -pHM -pHM +xRm +xRm +xRm aak aak aak @@ -98924,7 +99017,7 @@ aeL aeL aeL aeJ -pHM +xRm aak aaN igy @@ -99171,7 +99264,7 @@ vOU ney vNH aen -pHM +xRm aey aey aey @@ -99181,7 +99274,7 @@ aeL aeL aeL aeH -pHM +xRm aak aak amq @@ -99428,7 +99521,7 @@ dnE ney vNH aak -pHM +xRm aey aey aey @@ -99438,7 +99531,7 @@ aeL aeL aeL aeJ -pHM +xRm aak aaN igy @@ -99695,7 +99788,7 @@ aeL aeL aeL aeH -pHM +xRm aak aaa aaa @@ -99952,7 +100045,7 @@ aeL aeL aeL aeJ -pHM +xRm aak aaa aaa @@ -100086,19 +100179,19 @@ vXM vXM vXM cAd -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm aai aac aac @@ -101631,19 +101724,19 @@ vXM vXM vXM cAd -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm aai aac aac @@ -104049,7 +104142,7 @@ sHH sHH hZr hZr -pQa +coB mRs jaW mAx @@ -104060,7 +104153,7 @@ kgg eEp hzQ qHs -pHM +xRm aeV aeV prq @@ -104306,7 +104399,7 @@ rvh jUz ivk hZr -pQa +coB mRs woR mAx @@ -105012,13 +105105,13 @@ pGy dUH uDT wEl -jpt -jpt -jpt -jpt -jpt +aHR +aHR +aHR +aHR +aHR ghp -jpt +aHR ovY aHR sJQ @@ -105083,7 +105176,7 @@ mfB qga exl oNq -pHM +xRm ahD fKg hVy @@ -105775,9 +105868,9 @@ aaa aaa sNs cTl -qeD +mOB acG -bDH +qeD fUP mOB uAC @@ -106032,13 +106125,13 @@ aaa aaa sNs bNG -kzx -kzx -kzx +eJZ +bNm +ruo pCM kzx oSl -kzx +ive coV alg aes @@ -106289,13 +106382,13 @@ aaa aaa sNs jYJ -eJZ -prW -prW +pvL +sLp +aKG oOb prW -oSl -ive +dyp +hbk sXV alg bug @@ -106548,9 +106641,9 @@ sNs vFp act rkq -kzx -kzx -kzx +jjM +geJ +qAC adE pOQ adU @@ -107139,7 +107232,7 @@ ssw fja cPD oNq -pHM +xRm ahD gMi hNI @@ -107294,9 +107387,9 @@ vXM vXM vXM fYW -pHM -pHM -pHM +xRm +xRm +xRm aac aam hlS @@ -107408,8 +107501,8 @@ aaa aaa aac aai -pHM -pHM +xRm +xRm rge vXM vXM @@ -107653,7 +107746,7 @@ wIY pKo vaK hZr -pHM +xRm fjQ fjQ fjQ @@ -107910,7 +108003,7 @@ hZr hZr lCk hZr -pHM +xRm hZr vXM mQi @@ -108147,19 +108240,19 @@ aaa abM abM wQP -pHM +xRm oFH -pHM +xRm bWv -pHM +xRm oFH -pHM +xRm bWv -pHM +xRm oFH -pHM +xRm bWv -pHM +xRm oFH nYX jUW @@ -108167,7 +108260,7 @@ mHw orh uxn oNq -pHM +xRm hZr aaa oEf @@ -108177,8 +108270,8 @@ aac aac vXM vXM -pHM -pHM +xRm +xRm rge vXM vXM @@ -108945,8 +109038,8 @@ hYn aac aac vXM -pHM -pHM +xRm +xRm rge vXM vXM @@ -109351,9 +109444,9 @@ vXM vXM vXM fYW -pHM -pHM -pHM +xRm +xRm +xRm aac aam hlS @@ -110887,12 +110980,12 @@ vXM fYW vXM vXM -pHM +xRm vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -111144,12 +111237,12 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -111401,12 +111494,12 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -111654,18 +111747,18 @@ vXM vXM vXM fYW -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm bwp -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm bwp -pHM +xRm aai aac aac @@ -113196,20 +113289,20 @@ vXM vXM vXM fYW -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm bwp -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm bwp -pHM -pHM -pHM +xRm +xRm +xRm aai hlS hlS @@ -113457,14 +113550,14 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -113714,14 +113807,14 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -113971,14 +114064,14 @@ vXM fYW vXM vXM -pHM +xRm vXM vXM vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -115521,9 +115614,9 @@ vXM vXM vXM fYW -pHM -pHM -pHM +xRm +xRm +xRm aac aac aam @@ -117161,7 +117254,7 @@ hDT keT iEF fof -fDz +aoN knb hQk aHT @@ -117578,9 +117671,9 @@ vXM vXM vXM fYW -pHM -pHM -pHM +xRm +xRm +xRm aac aac aac @@ -117710,7 +117803,7 @@ vXM rxw rxw vXM -pHM +xRm vXM vXM vXM @@ -117721,7 +117814,7 @@ vXM vXM vXM vXM -pHM +xRm vXM rxw rxw @@ -117967,7 +118060,7 @@ rxw rxw vXM vXM -pHM +xRm oqp oqp oqp @@ -117978,7 +118071,7 @@ oqp oqp oqp oqp -pHM +xRm vXM vXM rxw @@ -118476,7 +118569,7 @@ vXM vXM vXM vXM -pHM +xRm vXM oqp oqp @@ -118753,7 +118846,7 @@ mYt oqp oqp oqp -pHM +xRm rxw vXM vXM @@ -119485,22 +119578,22 @@ aaa aaa aaa aaa -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm xvl xvl xvl @@ -119757,7 +119850,7 @@ vXM vXM vXM vXM -kEm +mbe xvl fLB xly @@ -119996,25 +120089,25 @@ vwd pRm pRm pRm -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm dBj wXI jqs @@ -120446,8 +120539,8 @@ aac aac aac aai -pHM -pHM +xRm +xRm vle aaS aaa @@ -120510,25 +120603,25 @@ aGY pRm pRm pRm -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm dBj fMK fMK @@ -121022,27 +121115,27 @@ hJl iix iix iix -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm +xRm xvl xvl xvl @@ -121837,7 +121930,7 @@ mYt oqp oqp oqp -pHM +xRm rxw vXM vXM @@ -122023,7 +122116,7 @@ dfz mpd lEt glc -pHM +xRm pAT cHH bNp @@ -122074,7 +122167,7 @@ vXM vXM vXM vXM -pHM +xRm vXM oqp oqp @@ -122280,7 +122373,7 @@ dfz txW iMt glc -pHM +xRm hkN gIj loa @@ -122593,7 +122686,7 @@ rxw rxw vXM vXM -pHM +xRm oqp oqp oqp @@ -122604,7 +122697,7 @@ oqp oqp oqp oqp -pHM +xRm vXM vXM rxw @@ -122796,7 +122889,7 @@ aaa aaa aaa dfz -iRb +wrn ure bKT bqU @@ -122850,7 +122943,7 @@ vXM rxw rxw vXM -pHM +xRm vXM vXM vXM @@ -122861,7 +122954,7 @@ vXM vXM vXM vXM -pHM +xRm vXM rxw rxw @@ -123015,11 +123108,11 @@ aaP aaQ aac aaS -pHM -pHM -pHM -pHM -pHM +xRm +xRm +xRm +xRm +xRm aaS aaa aaa @@ -123268,7 +123361,7 @@ vXM vXM vXM vXM -pHM +xRm aaH aac aac @@ -123517,7 +123610,7 @@ aaa aaa aaa aaH -pHM +xRm vXM vXM vXM @@ -123525,7 +123618,7 @@ vXM vXM vXM vXM -pHM +xRm aaH aac aac @@ -123774,7 +123867,7 @@ aaa aaa aaa aaI -pHM +xRm vXM vXM vXM @@ -123782,7 +123875,7 @@ vXM vXM vXM vXM -pHM +xRm aaI aac aac @@ -124031,7 +124124,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -124039,7 +124132,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -124288,7 +124381,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -124296,7 +124389,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM aac @@ -124545,7 +124638,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -124553,7 +124646,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -124802,7 +124895,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -124810,7 +124903,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125059,7 +125152,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125067,7 +125160,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125316,7 +125409,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125324,7 +125417,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125367,9 +125460,9 @@ aac aac aac aac -pHM +xRm vXM -pHM +xRm aac aac vXM @@ -125573,7 +125666,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125581,7 +125674,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125624,9 +125717,9 @@ vXM aac aac aac -pHM +xRm vXM -pHM +xRm aac aac vXM @@ -125830,7 +125923,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125838,7 +125931,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -125881,9 +125974,9 @@ vXM vXM aac vXM -pHM +xRm vXM -pHM +xRm aac vXM vXM @@ -126087,7 +126180,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126095,7 +126188,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126138,9 +126231,9 @@ vXM vXM vXM vXM -pHM -pHM -pHM +xRm +xRm +xRm vXM vXM vXM @@ -126344,7 +126437,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126352,7 +126445,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126395,9 +126488,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -126601,7 +126694,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126609,7 +126702,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126652,9 +126745,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -126858,7 +126951,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126866,7 +126959,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -126909,9 +127002,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -127115,7 +127208,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127123,7 +127216,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127166,9 +127259,9 @@ vXM vXM vXM vXM -pHM -pHM -pHM +xRm +xRm +xRm vXM vXM vXM @@ -127372,7 +127465,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127380,7 +127473,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127423,9 +127516,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -127629,7 +127722,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127637,7 +127730,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127680,9 +127773,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -127886,7 +127979,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -127937,9 +128030,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -128194,9 +128287,9 @@ vXM vXM vXM vXM -pHM -pHM -pHM +xRm +xRm +xRm vXM vXM vXM @@ -128451,9 +128544,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM fjj vXM @@ -128708,9 +128801,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -128965,9 +129058,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -129222,9 +129315,9 @@ vXM vXM vXM vXM -pHM -pHM -pHM +xRm +xRm +xRm vXM vXM vXM @@ -129479,9 +129572,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -129736,9 +129829,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -129993,9 +130086,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -130250,9 +130343,9 @@ vXM vXM vXM vXM -pHM -pHM -pHM +xRm +xRm +xRm vXM vXM vXM @@ -130507,9 +130600,9 @@ vXM vXM vXM vXM -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -130764,9 +130857,9 @@ vXM aaa aaa aaa -pHM +xRm vXM -pHM +xRm vXM vXM vXM @@ -130817,8 +130910,8 @@ vXM vXM vXM vXM -pHM -gQc +xRm +rYE vXM vXM vXM @@ -131021,9 +131114,9 @@ aaa aaa aaa aaa -pHM +xRm vXM -pHM +xRm vXM vXM aaa @@ -131073,9 +131166,9 @@ vXM vXM vXM vXM -pHM -gQc -gQc +xRm +rYE +rYE vXM vXM vXM @@ -131330,9 +131423,9 @@ vXM vXM vXM vXM -pHM -cXC -pHM +xRm +siX +xRm vXM vXM vXM @@ -131588,7 +131681,7 @@ vXM vXM vXM vXM -pHM +xRm vXM vXM vXM @@ -139204,7 +139297,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -139461,7 +139554,7 @@ pMW pMW cAd pMW -avE +wIP pMW pMW pMW @@ -139481,7 +139574,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -139716,9 +139809,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -139738,7 +139831,7 @@ pMW pMW pMW pMW -avE +wIP pMW cAd pMW @@ -139973,9 +140066,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -139995,9 +140088,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -140232,7 +140325,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -140252,9 +140345,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -140489,7 +140582,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -140509,7 +140602,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -140746,7 +140839,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -140766,7 +140859,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -141003,7 +141096,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -141023,7 +141116,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -141774,7 +141867,7 @@ pMW pMW pMW pMW -pHM +xRm pMW pMW pMW @@ -141794,7 +141887,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -142031,7 +142124,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -142051,7 +142144,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -142802,8 +142895,8 @@ pMW pMW pMW pMW -avE -avE +wIP +wIP rOy rOy oKl @@ -142821,8 +142914,8 @@ pMW oKl rOy rOy -avE -avE +wIP +wIP pMW pMW pMW @@ -143063,7 +143156,7 @@ oKl pMW pMW pMW -avE +wIP pMW pMW pMW @@ -143075,7 +143168,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -143577,7 +143670,7 @@ oKl pMW pMW pMW -avE +wIP pMW pMW pMW @@ -143589,7 +143682,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -143673,7 +143766,7 @@ aaa aaa gcp agw -xdc +agG gcp aaa aaa @@ -143830,8 +143923,8 @@ pMW pMW pMW pMW -avE -pHM +wIP +xRm rOy rOy rOy @@ -143849,8 +143942,8 @@ oKl rOy rOy rOy -pHM -avE +xRm +wIP pMW pMW pMW @@ -143861,7 +143954,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -144118,7 +144211,7 @@ pMW oKl rOy rOy -pHM +xRm rOy rOy pMW @@ -144349,7 +144442,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -144359,7 +144452,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -144372,12 +144465,12 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -144601,12 +144694,12 @@ pMW pMW pMW pMW -avE +wIP tPE tPE tPE tPE -avE +wIP pMW pMW pMW @@ -144616,12 +144709,12 @@ pMW pMW pMW pMW -avE +wIP tPE tPE tPE tPE -avE +wIP pMW pMW pMW @@ -144629,12 +144722,12 @@ pMW pMW pMW pMW -avE +wIP tPE tPE tPE tPE -avE +wIP pMW pMW pMW @@ -144858,7 +144951,7 @@ oKl oKl oKl oKl -avE +wIP tPE qnv tld @@ -144878,7 +144971,7 @@ nmY cPH dfL nmY -avE +wIP pMW pMW pMW @@ -144886,7 +144979,7 @@ pMW pMW pMW pMW -avE +wIP nmY hng xnH @@ -145110,7 +145203,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -145367,7 +145460,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -153396,10 +153489,10 @@ jFJ aHp qgS jFJ -avE -avE -avE -avE +wIP +wIP +wIP +wIP pMW pMW pMW @@ -153910,10 +154003,10 @@ jYe gnr bIJ jFJ -avE -avE -avE -avE +wIP +wIP +wIP +wIP pMW pMW pMW @@ -156415,7 +156508,7 @@ blo fxK lpg qyZ -dQD +cFH xcH oho bPp @@ -156737,8 +156830,8 @@ vCZ wAA vCZ vCZ -avE -avE +wIP +wIP esT mAG tMW @@ -156746,9 +156839,9 @@ byH tMW tMW esT -avE -avE -avE +wIP +wIP +wIP kFx pMW pMW @@ -157765,8 +157858,8 @@ aaa aaa aaa aai -avE -avE +wIP +wIP esT tMW tMW @@ -157774,10 +157867,10 @@ sOg mAG mAG esT -avE -avE -avE -avE +wIP +wIP +wIP +wIP kFx kFx kFx @@ -158034,7 +158127,7 @@ sdb pMW pMW pMW -avE +wIP pMW pMW pMW @@ -158044,7 +158137,7 @@ pMW pMW pMW pMW -avE +wIP kFx kFx kFx @@ -158291,7 +158384,7 @@ sdb pMW pMW pMW -avE +wIP pMW pMW pMW @@ -158301,14 +158394,14 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW pMW pMW -avE +wIP pMW kFx pMW @@ -158558,14 +158651,14 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -158822,7 +158915,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -159080,10 +159173,10 @@ sdb sdb sdb esT -avE -avE -avE -avE +wIP +wIP +wIP +wIP kFx pMW pMW @@ -159583,7 +159676,7 @@ opb oOJ oOJ stK -mwP +ixH sOg oOJ uXM @@ -160622,10 +160715,10 @@ sdb sdb sdb esT -avE -avE -avE -avE +wIP +wIP +wIP +wIP kFx pMW pMW @@ -160878,7 +160971,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -161135,7 +161228,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -161386,13 +161479,13 @@ pMW pMW pMW sdb -avE +wIP pMW pMW pMW pMW pMW -avE +wIP pMW kFx pMW @@ -172830,10 +172923,10 @@ pMW pMW pMW kFx -avE -avE -avE -avE +wIP +wIP +wIP +wIP aTY iCA fZL @@ -174887,10 +174980,10 @@ pMW pMW pMW kFx -avE -avE -avE -avE +wIP +wIP +wIP +wIP aTY iCA iCA @@ -176423,12 +176516,12 @@ pMW kFx pMW pMW -avE +wIP pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -176680,12 +176773,12 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -176937,12 +177030,12 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -177190,10 +177283,10 @@ pMW pMW pMW kFx -avE -avE -avE -avE +wIP +wIP +wIP +wIP aTY uRv uRv @@ -178732,10 +178825,10 @@ pMW pMW pMW kFx -avE -avE -avE -avE +wIP +wIP +wIP +wIP aTY uRv uRv @@ -178993,14 +179086,14 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -179250,14 +179343,14 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -179507,14 +179600,14 @@ pMW kFx pMW pMW -avE +wIP pMW pMW pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -180314,7 +180407,7 @@ aaa aaa eSQ eSQ -flO +wrJ dRY cTU cTU @@ -180895,8 +180988,8 @@ aaa aaa aaa qVr -gFm -hwQ +iuV +fPp soq abM abM @@ -181057,11 +181150,11 @@ pMW pMW pMW kFx -avE -avE -avE -avE -avE +wIP +wIP +wIP +wIP +wIP aTY iCA iCA @@ -181899,7 +181992,7 @@ oxL fJQ mlM bxG -dLz +nDR fFR tPZ pqV @@ -181917,9 +182010,9 @@ uvU umu qVr qVr -wvL -qtq -qtq +mFh +tBo +tBo qVr gYw cHY @@ -182173,12 +182266,12 @@ pbH mAL nKU qVr -wso -qtq -qtq -qtq +tEx +tBo +tBo +tBo qVr -xnL +cdM eiy itq qyQ @@ -182430,11 +182523,11 @@ pbH bmz pIx qVr -bZJ -qtq -qtq -qtq -qtq +ttj +tBo +tBo +tBo +tBo pNa qNk xmY @@ -182443,7 +182536,7 @@ eJQ bNx aSt aSt -pDn +xAM aaa aaa aaa @@ -182687,14 +182780,14 @@ qKE chE pHX qVr -ayE -bZJ -bZJ -bZJ -bZJ +cAK +ttj +ttj +ttj +ttj nzg cwj -cco +ksk bsh rQr aMh @@ -182944,11 +183037,11 @@ pbH kBo kJA qVr -qtq -qtq -qtq -qtq -rpm +tBo +tBo +tBo +tBo +kGv qSS cFQ xmY @@ -183114,12 +183207,12 @@ pMW pMW pMW kFx -avE -avE -avE -avE -avE -avE +wIP +wIP +wIP +wIP +wIP +wIP aTY iCA fZL @@ -183201,10 +183294,10 @@ pbH mAL nKU qVr -qtq -qtq -qtq -qtq +tBo +tBo +tBo +tBo qVr jqK ijR @@ -183248,14 +183341,14 @@ rxw rxw pMW pMW -avE +wIP pMW pMW pMW bGh pMW pMW -avE +wIP pMW pMW rxw @@ -183459,9 +183552,9 @@ vSa cJR qVr qVr -qtq -qtq -qtq +tBo +tBo +tBo qVr gYw vav @@ -183757,7 +183850,7 @@ pMW pMW pMW pMW -avE +wIP pMW gFf gFf @@ -184289,7 +184382,7 @@ oMI gFf gFf gFf -avE +wIP rxw pMW pMW @@ -184493,8 +184586,8 @@ aaa aaa aaa qVr -nSR -hwQ +fCy +fPp qVr aaa aaa @@ -185020,23 +185113,23 @@ aaa aaa aaa aaS -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP vUu vUu lwj @@ -185279,7 +185372,7 @@ aaa pMW pMW pMW -avE +wIP pMW pMW pMW @@ -185289,7 +185382,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -185536,7 +185629,7 @@ aaa pMW pMW pMW -avE +wIP pMW pMW pMW @@ -185546,7 +185639,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -185790,24 +185883,24 @@ aaa aaa aaa aaS -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP xSS lwj tqN @@ -186055,7 +186148,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -186312,7 +186405,7 @@ pMW pMW pMW pMW -avE +wIP pMW pMW pMW @@ -186557,28 +186650,28 @@ aac aaa aaa aaS -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE -avE +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP +wIP vUu vUu lwj @@ -187373,7 +187466,7 @@ oMI gFf gFf gFf -avE +wIP rxw pMW pMW @@ -187869,7 +187962,7 @@ pMW pMW pMW pMW -avE +wIP pMW gFf gFf @@ -188388,14 +188481,14 @@ rxw rxw pMW pMW -avE +wIP pMW pMW pMW ylt pMW pMW -avE +wIP pMW pMW rxw @@ -191160,9 +191253,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -191417,9 +191510,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -191674,9 +191767,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -191931,9 +192024,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -192188,9 +192281,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -192445,9 +192538,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -192702,9 +192795,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -192959,9 +193052,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -193216,9 +193309,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -193473,9 +193566,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -193730,9 +193823,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -193987,9 +194080,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -194244,9 +194337,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -194501,9 +194594,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW pMW @@ -194758,9 +194851,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP pMW pMW pMW @@ -195015,9 +195108,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP pMW pMW aaa @@ -195272,9 +195365,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP aac aaa aac @@ -195529,9 +195622,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP aac aac aac @@ -195786,9 +195879,9 @@ pMW pMW pMW pMW -avE -avE -avE +wIP +wIP +wIP aac aac aac @@ -196043,9 +196136,9 @@ pMW pMW pMW pMW -avE +wIP pMW -avE +wIP aac aac aaa @@ -196300,9 +196393,9 @@ pMW aac aac aac -avE +wIP pMW -avE +wIP aaa aaa aaa @@ -196557,9 +196650,9 @@ aac aac aac aac -avE +wIP pMW -avE +wIP aaa aaa aaa diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index b19afd0ba14af..2250cc17d409b 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -458,7 +458,7 @@ /obj/machinery/door/firedoor, /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "agO" = ( /obj/effect/decal/cleanable/dirt, @@ -959,18 +959,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/storage) -"apA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "apH" = ( /obj/structure/chair/comfy/beige{ dir = 1 @@ -1052,11 +1040,22 @@ /obj/item/lighter, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"aqz" = ( +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "aqG" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/purple/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "aqM" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -1226,16 +1225,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/textured_large, /area/station/service/hydroponics/garden) -"auA" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "auB" = ( /turf/open/floor/engine, /area/station/medical/chemistry) @@ -1368,6 +1357,10 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"awf" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "awi" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, @@ -1797,10 +1790,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"aDF" = ( -/obj/structure/broken_flooring/singular/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "aDI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -2049,6 +2038,12 @@ /obj/structure/railing/corner, /turf/open/floor/iron, /area/station/security/prison) +"aHZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "aIc" = ( /obj/structure/table, /obj/effect/spawner/random/bureaucracy/paper, @@ -2259,6 +2254,32 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"aKU" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Tertiary AI Core Access"; + req_access = list("ai_upload"); + pixel_y = 3 + }, +/obj/item/radio/intercom/directional/south{ + pixel_x = -27; + freerange = 1; + listening = 0; + name = "Common Channel" + }, +/obj/item/radio/intercom/directional/south{ + pixel_x = 27; + frequency = 1447; + freerange = 1; + listening = 0; + name = "Private Channel" + }, +/obj/machinery/flasher/directional/east{ + pixel_y = 8; + id = "AI" + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "aLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2346,11 +2367,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/commons/lounge) -"aMS" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "aMU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/fullgrass/style_random, @@ -2385,7 +2401,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "aNH" = ( /obj/machinery/door/airlock/security/glass{ @@ -2527,14 +2543,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white/textured_large, /area/station/science/xenobiology) -"aPM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "aPO" = ( /obj/machinery/door/poddoor/shutters/window{ id = "maintbridge" @@ -2638,11 +2646,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/parquet, /area/station/service/theater) -"aSn" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "aSE" = ( /obj/structure/bodycontainer/morgue{ dir = 2 @@ -2853,7 +2856,7 @@ /obj/effect/mapping_helpers/apc/full_charge, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "aXg" = ( /obj/structure/railing{ @@ -3303,6 +3306,17 @@ }, /turf/open/misc/asteroid, /area/station/maintenance/department/science) +"bfq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "bfD" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3314,6 +3328,16 @@ "bfN" = ( /turf/open/floor/iron/dark, /area/station/maintenance/radshelter/civil) +"bfX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "bga" = ( /obj/structure/chair/wood{ dir = 4 @@ -3717,6 +3741,14 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"bpN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "bpW" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -3736,6 +3768,10 @@ }, /turf/open/floor/iron, /area/station/security/interrogation) +"bqs" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "bqz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, @@ -4087,10 +4123,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/security/detectives_office/private_investigators_office) -"bwC" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "bwQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4238,16 +4270,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/misc/asteroid, /area/station/asteroid) -"bzx" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/effect/spawner/random/entertainment/cigarette_pack, -/obj/item/cigarette/rollie/mindbreaker, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "bzB" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/recharger, @@ -4425,16 +4447,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bBJ" = ( -/obj/machinery/processor/slime, -/obj/effect/turf_decal/bot_red, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white/textured_corner{ - dir = 4 - }, -/area/station/science/xenobiology) "bBX" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4608,11 +4620,6 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"bEY" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "bFa" = ( /obj/machinery/duct, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -4865,6 +4872,15 @@ /obj/machinery/door/window/right/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"bIP" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "bJc" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5111,25 +5127,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"bPx" = ( -/obj/structure/ladder, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 3 - }, -/obj/machinery/door/window/brigdoor/left/directional/south{ - pixel_y = -3; - name = "Monkey Pen"; - req_one_access = list("genetics") - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/obj/effect/turf_decal/siding/purple/corner, -/obj/structure/sign/poster/random/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/textured, -/area/station/science/genetics) "bPH" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow{ @@ -5572,6 +5569,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"bXM" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "bYa" = ( /obj/structure/filingcabinet/employment, /turf/open/floor/carpet, @@ -5703,7 +5704,6 @@ /turf/open/floor/iron/white, /area/station/science/lobby) "caH" = ( -/obj/effect/turf_decal/sand/plating, /obj/structure/sign/warning/directional/west, /turf/closed/wall/rust, /area/station/medical/chemistry/minisat) @@ -6189,6 +6189,11 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"ckb" = ( +/obj/effect/turf_decal/siding/dark_blue, +/obj/machinery/holopad, +/turf/open/floor/iron/textured_large, +/area/station/command/bridge) "ckc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/grass, @@ -6429,17 +6434,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"cqt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "ordauxgarage" - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "cqH" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -6467,6 +6461,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) +"cra" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "crb" = ( /obj/machinery/door/poddoor/shutters/window{ id = "armory"; @@ -6611,8 +6611,20 @@ "ctf" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 16; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/white, /area/station/maintenance/department/medical) "cti" = ( @@ -6694,10 +6706,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"cuA" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "cuE" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/chair/plastic{ @@ -6786,6 +6794,9 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"cxg" = ( +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "cxr" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -6949,6 +6960,18 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"cAG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "cAQ" = ( /obj/vehicle/sealed/mecha/ripley/cargo, /obj/effect/decal/cleanable/dirt, @@ -6995,6 +7018,7 @@ "cBB" = ( /obj/machinery/airalarm/directional/east, /obj/structure/table/reinforced, +/obj/item/stack/sheet/iron/fifty, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/head/utility/welding, /obj/effect/turf_decal/siding/purple{ @@ -7317,6 +7341,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"cIk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "cIx" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ dir = 4 @@ -7413,6 +7443,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) +"cKD" = ( +/mob/living/basic/mining/basilisk, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "cLd" = ( /obj/machinery/oven/range, /obj/machinery/light/directional/north, @@ -7681,6 +7715,15 @@ "cPt" = ( /turf/closed/wall/r_wall, /area/station/science/lab) +"cPu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cPx" = ( /obj/structure/table, /obj/item/hfr_box/corner, @@ -7753,6 +7796,22 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"cQu" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) +"cQx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/pipe_dispenser{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cQK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -7783,13 +7842,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"cQX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "cRa" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/chair/office{ @@ -7886,13 +7938,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"cSI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "cSJ" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/snack, @@ -8305,6 +8350,12 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/robotics/lab) +"daT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "dba" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -8402,16 +8453,8 @@ /area/station/cargo/miningoffice) "dci" = ( /obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) -"dck" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_half{ - dir = 8 - }, -/area/station/science/xenobiology) "dcl" = ( /obj/effect/turf_decal/sand/plating, /obj/item/pickaxe, @@ -8539,10 +8582,6 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"deV" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "deX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -8644,7 +8683,7 @@ }, /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "dgS" = ( /obj/structure/cable, @@ -8791,7 +8830,7 @@ /area/station/hallway/secondary/entry) "dir" = ( /obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab" + name = "Chemistry Minisat" }, /obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, /obj/structure/cable, @@ -9354,7 +9393,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "drz" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -9395,6 +9434,16 @@ dir = 8 }, /area/station/science/robotics/lab) +"drZ" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/chair{ + name = "Defense" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/courtroom) "dsa" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -9657,6 +9706,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dxZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/item/flashlight/glowstick/blue{ + start_on = 1; + light_range = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "dyb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -9686,6 +9746,29 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"dyS" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Interior Airlock"; + id_tag = "ordmix_airlock_interior" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = -26 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "dyV" = ( /obj/structure/railing{ dir = 1 @@ -9829,10 +9912,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/main) -"dAn" = ( -/obj/structure/broken_flooring/pile/directional/east, -/turf/open/space/openspace, -/area/space/nearstation) "dAo" = ( /obj/structure/table, /obj/item/electronics/airalarm{ @@ -10059,6 +10138,12 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"dCv" = ( +/obj/structure/railing, +/obj/structure/dresser, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "dCG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -10212,6 +10297,23 @@ /obj/structure/cable, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) +"dGi" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + req_access = list("ordnance"); + name = "Ordnance Storage Shutter Control"; + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "dGq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -10271,13 +10373,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/misc/asteroid, /area/station/maintenance/department/cargo) -"dGX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "dHa" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -10441,6 +10536,14 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"dJr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/xenobiology) "dJJ" = ( /obj/structure/plasticflaps, /obj/machinery/navbeacon{ @@ -10458,6 +10561,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"dJM" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "dKp" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10484,12 +10592,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/textured, /area/station/engineering/atmos/upper) -"dLd" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "dLf" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Tank - Plasma" @@ -10524,6 +10626,10 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"dLY" = ( +/obj/structure/broken_flooring/singular/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "dMa" = ( /obj/structure/chair/office, /obj/effect/turf_decal/tile/brown/fourcorners, @@ -10628,12 +10734,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/cytology) -"dOt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "dOv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -10697,9 +10797,8 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) "dPh" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /obj/effect/turf_decal/box/red, /obj/machinery/light/directional/south, @@ -10790,16 +10889,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"dQJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "dQQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -11039,6 +11128,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/warden) +"dUc" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "dUi" = ( /turf/closed/wall/r_wall, /area/station/engineering/lobby) @@ -11275,6 +11368,11 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/south, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"dYY" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "dYZ" = ( /obj/effect/spawner/random/maintenance/two, /obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, @@ -11328,6 +11426,15 @@ dir = 1 }, /area/station/command/meeting_room) +"dZQ" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "eam" = ( /obj/structure/chair{ dir = 8 @@ -11357,7 +11464,7 @@ /area/station/command/heads_quarters/qm) "eaL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "eaS" = ( /obj/effect/turf_decal/siding/wood{ @@ -11464,6 +11571,14 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ebE" = ( +/obj/effect/spawner/structure/window/hollow/end, +/turf/open/floor/plating, +/area/station/security/courtroom) +"ebN" = ( +/obj/structure/broken_flooring/pile/directional/east, +/turf/open/space/openspace, +/area/space/nearstation) "ebP" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/mapping_helpers/apc/cell_5k, @@ -11620,6 +11735,10 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"efL" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "efQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -11631,12 +11750,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"egj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "ego" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -11668,6 +11781,12 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/station/command/gateway) +"egV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "egY" = ( /obj/machinery/light_switch/directional/west, /turf/open/openspace, @@ -11704,12 +11823,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"ehN" = ( -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib5-old" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ehO" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -11949,11 +12062,6 @@ /obj/structure/door_assembly, /turf/open/misc/asteroid, /area/station/asteroid) -"elG" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "elT" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -12023,18 +12131,6 @@ /obj/structure/stairs/north, /turf/open/floor/iron, /area/station/command/corporate_showroom) -"enX" = ( -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "eon" = ( /obj/effect/spawner/random/structure/chair_comfy{ dir = 4 @@ -12134,16 +12230,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"epy" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/cleanable/blood/footprints{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "epA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12156,6 +12242,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"epB" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "epE" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -12486,15 +12577,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/maintenance/department/science) -"evA" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 4; - name = "euthanization chamber freezer" - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron, -/area/station/science/xenobiology) "evN" = ( /obj/machinery/rnd/server/master, /obj/effect/turf_decal/siding/blue{ @@ -12619,6 +12701,8 @@ /obj/structure/cable, /obj/effect/turf_decal/sand/plating, /obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/asteroid) "exT" = ( @@ -12657,6 +12741,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/security/prison/work) +"eyx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "eyN" = ( /obj/structure/table, /obj/item/grenade/chem_grenade/smart_metal_foam{ @@ -12933,6 +13022,15 @@ /obj/structure/marker_beacon/yellow, /turf/open/space/openspace, /area/space/nearstation) +"eCJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "eCO" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/stripes/line, @@ -13071,12 +13169,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"eEX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "eFj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13114,6 +13206,12 @@ /obj/structure/table, /turf/open/floor/iron/textured, /area/station/security/processing) +"eFJ" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "eFK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13233,6 +13331,12 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"eIo" = ( +/obj/structure/statue/sandstone/venus{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/science/research) "eIy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -13332,6 +13436,14 @@ "eKR" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) +"eLb" = ( +/obj/machinery/door/airlock/command{ + name = "Research Director's Observatory" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) "eLe" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13421,10 +13533,6 @@ /obj/effect/spawner/costume/sexyclown, /turf/open/floor/plating, /area/station/maintenance/aft/upper) -"eNk" = ( -/obj/item/stack/cable_coil, -/turf/open/space/openspace, -/area/space/nearstation) "eNr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13434,6 +13542,15 @@ }, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"eNt" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8; + name = "Oxygen Chamber Injection Port" + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "eNS" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/disposalpipe/segment{ @@ -13682,12 +13799,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"eTi" = ( -/obj/structure/closet/crate/critter, -/mob/living/basic/mothroach, -/obj/item/stack/spacecash/c100, -/turf/open/space/basic, -/area/space/nearstation) "eTn" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, @@ -13698,6 +13809,12 @@ /obj/item/trash/waffles, /turf/open/floor/iron, /area/station/hallway/primary/central) +"eTG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) "eTZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -13711,7 +13828,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/science) "eUB" = ( -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "eUD" = ( /obj/effect/turf_decal/plaque{ @@ -14074,10 +14191,6 @@ /obj/item/coin/plasma, /turf/open/misc/asteroid, /area/station/maintenance/department/science) -"fcC" = ( -/mob/living/basic/mining/basilisk, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "fcH" = ( /obj/structure/frame/computer{ anchored = 1; @@ -14246,19 +14359,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) -"ffK" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ffT" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/no_decals/two, @@ -14419,6 +14519,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured, /area/station/construction/mining/aux_base) +"fjb" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fjg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -14490,12 +14595,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry/minisat) -"fkG" = ( -/obj/structure/railing, -/obj/structure/dresser, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "flc" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/door/window/right/directional/east{ @@ -14526,6 +14625,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"flF" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) "flH" = ( /obj/structure/closet/boxinggloves, /obj/effect/landmark/start/hangover/closet, @@ -14982,6 +15087,12 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"fsV" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "gib3-old" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "fsZ" = ( /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Research Director Observation"; @@ -15027,10 +15138,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) -"ftW" = ( -/obj/structure/girder, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "ftX" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15084,15 +15191,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"fuF" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" +"fuZ" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white, -/area/station/science/ordnance/storage) +/area/station/hallway/secondary/entry) "fvd" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/dark_green/opposingcorners, @@ -15590,17 +15695,6 @@ "fDz" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) -"fDI" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "fDK" = ( /obj/machinery/door/morgue{ name = "Relic Closet"; @@ -15713,6 +15807,11 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/command/corporate_showroom) +"fEW" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) "fFb" = ( /obj/structure/railing{ dir = 1 @@ -16166,6 +16265,13 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron, /area/station/commons/storage/tools) +"fNi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/scrubber/huge/movable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "fNk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, @@ -16225,6 +16331,10 @@ /obj/effect/landmark/carpspawn, /turf/open/space/openspace, /area/space) +"fOe" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/openspace, +/area/space/nearstation) "fOi" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -16247,14 +16357,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/bar) -"fOu" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Secure Pen"; - network = list("ss13","rd","xeno") - }, -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fOv" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/girder, @@ -16421,10 +16523,6 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"fQE" = ( -/obj/structure/sign/warning/biohazard/directional/east, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "fQG" = ( /obj/machinery/door/airlock/virology/glass{ name = "Virology Lab"; @@ -16501,19 +16599,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"fSi" = ( -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/item/pen{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/item/hand_labeler{ - pixel_y = 10; - pixel_x = -13 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "fSk" = ( /obj/structure/chair/office{ dir = 1 @@ -16556,14 +16641,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"fSD" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "fSK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -16632,6 +16709,14 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"fTO" = ( +/obj/machinery/processor/slime, +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "fTX" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) @@ -16854,6 +16939,16 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"fYW" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fYX" = ( /obj/machinery/power/solar{ id = "foreport"; @@ -17115,14 +17210,6 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) -"gdj" = ( -/obj/structure/chair{ - name = "Defense" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/courtroom) "gdA" = ( /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron/white, @@ -17137,7 +17224,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "gdP" = ( /obj/structure/lattice, @@ -17430,7 +17517,7 @@ /obj/structure/window/reinforced/spawner/directional/south, /obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "gjt" = ( /obj/machinery/pdapainter/medbay, @@ -17606,7 +17693,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "gmd" = ( /obj/effect/spawner/structure/window/reinforced, @@ -17624,6 +17711,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"gmm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "gms" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -17634,10 +17731,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) -"gmC" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "gmH" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, @@ -17709,10 +17802,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"goL" = ( -/obj/effect/turf_decal/siding/dark_blue, -/turf/open/floor/iron/textured_large, -/area/station/command/bridge) "goX" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -17899,6 +17988,27 @@ }, /turf/open/openspace, /area/station/engineering/supermatter/room) +"gsi" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "gsm" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm/directional/north, @@ -17910,16 +18020,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"gsw" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "gsM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -18022,6 +18122,10 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"guJ" = ( +/obj/item/radio/intercom/chapel/directional/west, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "guN" = ( /obj/structure/table/glass, /obj/item/folder/white, @@ -18594,10 +18698,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"gEp" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space/openspace, -/area/space/nearstation) "gEr" = ( /obj/effect/turf_decal/arrows{ dir = 8; @@ -18646,10 +18746,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"gFe" = ( -/obj/structure/fluff/iced_abductor, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "gFg" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/purple{ @@ -19328,6 +19424,16 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/iron/white, /area/station/science/research) +"gTF" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/item/cigarette/rollie/mindbreaker, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "gTI" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -20162,11 +20268,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hfX" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/directional/south, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hgi" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -20260,10 +20361,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) -"him" = ( -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/cargo/storage) "his" = ( /obj/effect/decal/cleanable/greenglow/radioactive, /obj/machinery/light/small/directional/west, @@ -20372,20 +20469,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/library) -"hkG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "hld" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "hle" = ( /obj/machinery/light/directional/south, @@ -20430,6 +20520,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hmd" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "hmg" = ( /obj/machinery/requests_console/directional/north{ name = "Bar Requests Console"; @@ -20963,6 +21063,16 @@ }, /turf/open/floor/iron, /area/station/security) +"htn" = ( +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "htw" = ( /obj/effect/spawner/random/structure/closet_empty/crate, /obj/effect/spawner/random/maintenance, @@ -21400,6 +21510,16 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/hallway/primary/central) +"hCB" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/airlock/research{ + name = "Ordnance Auxiliary Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hCJ" = ( /obj/structure/railing{ dir = 8 @@ -21519,7 +21639,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "hED" = ( /turf/closed/wall/r_wall, @@ -21568,6 +21688,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) +"hFN" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "hFO" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -21893,6 +22019,13 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) +"hNI" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hNN" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -21987,6 +22120,15 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) +"hPn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "hPp" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -22147,10 +22289,6 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) -"hQR" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "hQY" = ( /obj/structure/table, /obj/effect/spawner/random/bureaucracy/folder, @@ -22312,6 +22450,10 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"hTv" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hTQ" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1; @@ -22336,6 +22478,14 @@ dir = 1 }, /area/station/engineering/atmos/pumproom) +"hTZ" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/enzyme, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "hUm" = ( /obj/machinery/light/cold/dim/directional/south, /turf/open/floor/catwalk_floor/iron_dark, @@ -22410,14 +22560,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) -"hVm" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "hVs" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -22447,6 +22589,11 @@ /obj/machinery/telecomms/hub/preset, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"hWl" = ( +/obj/effect/turf_decal/sand/plating, +/obj/structure/broken_flooring/pile, +/turf/open/floor/plating, +/area/station/science/ordnance) "hWt" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -22890,7 +23037,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "ifc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -22898,6 +23045,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/engineering/lobby) +"ifd" = ( +/turf/open/floor/engine/airless, +/area/space/nearstation) "ifj" = ( /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) @@ -22905,12 +23055,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/storage) -"ift" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "ifE" = ( /obj/machinery/vending/medical, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -23137,6 +23281,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/reinforced, /area/station/maintenance/port/greater) +"ikJ" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "ilb" = ( /obj/effect/turf_decal/tile/red/diagonal_edge, /turf/open/floor/iron/dark, @@ -23312,7 +23461,7 @@ /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "iol" = ( /turf/closed/wall/r_wall, @@ -23337,16 +23486,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"iox" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/storage/box/monkeycubes, -/turf/open/floor/iron/white/textured_half, -/area/station/science/xenobiology) "ioL" = ( /obj/item/radio/intercom/directional/east, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -23384,6 +23523,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"ipq" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "ipu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, @@ -23483,6 +23641,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) +"irf" = ( +/obj/structure/ladder, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 3 + }, +/obj/machinery/door/window/brigdoor/left/directional/south{ + pixel_y = -3; + name = "Monkey Pen"; + req_one_access = list("genetics") + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/obj/effect/turf_decal/siding/purple/corner, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured, +/area/station/science/genetics) "irx" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -23691,6 +23868,14 @@ "ivx" = ( /turf/open/floor/glass/reinforced/airless, /area/station/asteroid) +"ivy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ivC" = ( /obj/machinery/camera/autoname/directional/north{ network = list("ss13","engine") @@ -23941,14 +24126,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) -"iAx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/box/red, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "iAE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24151,13 +24328,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"iEq" = ( -/obj/machinery/camera/motion/directional/west{ - network = list("aicore"); - c_tag = "Secure - AI Upper External East" - }, -/turf/open/space/openspace, -/area/space/nearstation) "iEA" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/light/cold/directional/south, @@ -24346,6 +24516,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/asteroid) +"iHV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "iHY" = ( /obj/structure/sign/warning/explosives/directional/east, /obj/effect/turf_decal/siding/purple/corner{ @@ -24389,6 +24564,10 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"iII" = ( +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/showroomfloor, +/area/station/cargo/storage) "iIR" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -24693,7 +24872,7 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "iOE" = ( /obj/item/pickaxe/mini, @@ -24787,13 +24966,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) -"iPW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 8 +"iQo" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "iQt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/food_packaging, @@ -25091,7 +25273,7 @@ /obj/structure/cable, /obj/effect/turf_decal/siding/purple, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "iXR" = ( /obj/structure/cable, @@ -25251,14 +25433,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"jbK" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5 - }, -/obj/item/reagent_containers/condiment/enzyme, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) +"jbL" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted, +/turf/open/floor/iron/white, +/area/station/science/lobby) "jbM" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/reinforced, @@ -25415,7 +25594,7 @@ /obj/effect/turf_decal/siding/purple{ dir = 1 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "jer" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -25442,12 +25621,12 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "jeV" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/medical/chemistry) "jeY" = ( @@ -25526,12 +25705,6 @@ /obj/item/clothing/glasses/meson, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"jgl" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/holosign_creator/atmos, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jgs" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -25689,6 +25862,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/item/pickaxe, /turf/open/floor/plating, /area/station/asteroid) "jjp" = ( @@ -25794,12 +25968,6 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/dark, /area/station/security/lockers) -"jky" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "jkF" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -25988,16 +26156,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) -"jnL" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "jnP" = ( /obj/machinery/mech_bay_recharge_port{ dir = 8 @@ -26041,15 +26199,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"joD" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "joH" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -26271,11 +26420,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/medical/chemistry/minisat) -"jsr" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jss" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/chair/sofa/bench/left{ @@ -26303,13 +26447,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) -"jsX" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white, -/area/station/hallway/secondary/entry) "jtc" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, @@ -26320,6 +26457,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/disposal) +"jtp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "jtv" = ( /obj/structure/chair/plastic, /obj/effect/decal/cleanable/dirt/dust, @@ -26413,6 +26558,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"jvp" = ( +/obj/structure/window/spawner/directional/east, +/obj/machinery/power/apc/auto_name/directional/south{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "jvt" = ( /obj/structure/closet/secure_closet/chemical, /obj/effect/turf_decal/stripes/line{ @@ -26450,6 +26604,10 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) +"jvV" = ( +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "jwa" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -27309,6 +27467,14 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"jIY" = ( +/obj/structure/chair{ + name = "Defense" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/courtroom) "jJb" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) @@ -27836,14 +28002,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"jSR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jSV" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -28085,10 +28243,6 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/textured_large, /area/station/cargo/sorting) -"jXv" = ( -/obj/structure/broken_flooring/singular/directional/south, -/turf/open/space/openspace, -/area/space/nearstation) "jXL" = ( /obj/effect/spawner/random/trash/garbage{ spawn_scatter_radius = 1 @@ -28274,6 +28428,9 @@ }, /turf/open/floor/iron, /area/station/security/breakroom) +"kbc" = ( +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "kbg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -28532,7 +28689,7 @@ id = "Xenolab"; name = "Test Chamber Blast Door" }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "ked" = ( /obj/structure/cable, @@ -28668,6 +28825,12 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/station/commons/storage/primary) +"khJ" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "gib5-old" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "khL" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/status_display/evac/directional/south, @@ -28840,13 +29003,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"kke" = ( -/obj/structure/tank_dispenser, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kkf" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plating, @@ -28862,9 +29018,6 @@ /obj/structure/table/wood/fancy/orange, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"kkx" = ( -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "kkA" = ( /obj/machinery/light_switch/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29390,6 +29543,15 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/security/prison) +"krz" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4; + name = "euthanization chamber freezer" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron, +/area/station/science/xenobiology) "krJ" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 10 @@ -29400,7 +29562,7 @@ /area/station/engineering/atmos) "krO" = ( /obj/structure/cable, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "krP" = ( /turf/closed/wall/r_wall, @@ -29540,12 +29702,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/engine) -"kuk" = ( -/obj/item/toy/plush/lizard_plushie/space/green{ - name = "Delaminates-The-Supermatter" - }, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "kuy" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/wood{ @@ -29568,12 +29724,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/service/cafeteria) -"kuW" = ( -/obj/structure/statue/sandstone/venus{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/science/research) "kuX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -29940,24 +30090,6 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) -"kBr" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/item/flashlight/glowstick/blue{ - start_on = 1; - light_range = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) -"kBs" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "kBt" = ( /obj/machinery/modular_computer/preset/civilian, /obj/machinery/button/door/directional/north{ @@ -30035,6 +30167,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) +"kCh" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "kCn" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -30483,15 +30625,6 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central) -"kKC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kKJ" = ( /obj/machinery/rnd/destructive_analyzer, /obj/machinery/light/directional/north, @@ -30538,11 +30671,6 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) -"kLQ" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "kLU" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/yellow{ @@ -30754,12 +30882,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/station/engineering/lobby) -"kQB" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/sign/poster/official/wtf_is_co2/directional/north, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "kQF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/engine, @@ -30882,7 +31004,9 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 }, -/obj/machinery/light/small/dim/directional/north, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, /turf/open/floor/iron/white, /area/station/medical/chemistry) "kSm" = ( @@ -31099,9 +31223,14 @@ /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) "kVh" = ( -/obj/effect/turf_decal/sand/plating, -/turf/closed/wall/rust, -/area/station/medical/chemistry/minisat) +/obj/structure/closet/crate/freezer, +/obj/item/food/icecreamsandwich, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/sign/departments/chemistry/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "kVF" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -31244,20 +31373,6 @@ }, /turf/open/floor/iron/herringbone, /area/station/hallway/primary/central) -"kYN" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/clothing/glasses/science, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/item/multitool, -/turf/open/floor/iron/white, -/area/station/science/lab) "kYT" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical) @@ -31306,6 +31421,7 @@ }, /obj/structure/fireaxecabinet/mechremoval/directional/east, /obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/iron/fifty, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) "kZg" = ( @@ -31490,6 +31606,7 @@ /area/station/science/ordnance) "lcj" = ( /obj/item/stack/sheet/glass, +/obj/item/stack/sheet/iron/fifty, /obj/item/clothing/glasses/welding, /obj/item/disk/tech_disk{ pixel_y = 6 @@ -31563,7 +31680,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/hallway/secondary/entry) "lfd" = ( /obj/machinery/door/airlock/external/glass, @@ -31601,6 +31718,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/brig/entrance) +"lfq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "lfu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/landmark/start/bartender, @@ -31996,6 +32119,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"lny" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "lnG" = ( /obj/structure/bed, /obj/machinery/airalarm/directional/north, @@ -32280,6 +32408,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"luh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "luq" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -32487,11 +32619,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"lxy" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/purple/anticorner/contrasted, -/turf/open/floor/iron/white, -/area/station/science/lobby) "lxI" = ( /obj/item/kirbyplants/random, /turf/open/floor/wood/parquet, @@ -32697,15 +32824,6 @@ dir = 4 }, /area/station/command/meeting_room) -"lBm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 9 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "lBu" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -32740,7 +32858,7 @@ "lBZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "lCk" = ( /obj/effect/turf_decal/siding/dark_blue{ @@ -32781,6 +32899,10 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) +"lCK" = ( +/obj/effect/turf_decal/siding/dark_blue, +/turf/open/floor/iron/textured_large, +/area/station/command/bridge) "lCO" = ( /obj/structure/chair/pew{ dir = 4 @@ -32797,6 +32919,18 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/iron, /area/station/maintenance/central/greater) +"lCS" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "lCY" = ( /obj/effect/spawner/random/maintenance/two, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -32946,6 +33080,14 @@ "lFG" = ( /turf/open/floor/glass, /area/station/command/meeting_room) +"lFI" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light_switch/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lFJ" = ( /obj/effect/decal/cleanable/blood/old, /obj/item/flashlight/flare/candle, @@ -33060,6 +33202,10 @@ "lHm" = ( /turf/closed/wall, /area/station/engineering/storage/tech) +"lHp" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "lHx" = ( /obj/machinery/door/airlock/engineering{ name = "Auxiliary Base Construction" @@ -33349,12 +33495,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"lNx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "lNz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -33714,7 +33854,7 @@ /obj/effect/landmark/navigate_destination/dockarrival, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/hallway/secondary/entry) "lUF" = ( /obj/structure/transport/linear/public, @@ -33769,14 +33909,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"lVy" = ( -/obj/machinery/door/airlock/command{ - name = "Research Director's Observatory" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/command/heads_quarters/rd) "lVB" = ( /turf/closed/mineral/random/stationside/asteroid/porus, /area/station/maintenance/department/science) @@ -34169,13 +34301,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/commons/locker) -"mdv" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet, -/area/station/commons/dorms) "mdw" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -34276,17 +34401,6 @@ /obj/effect/baseturf_helper/reinforced_plating/ceiling, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"mgi" = ( -/obj/machinery/door/poddoor/shutters{ - id = "ordauxgarage"; - dir = 1 - }, -/obj/effect/turf_decal/sand/plating, -/obj/effect/turf_decal/stripes/asteroid/end{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "mgn" = ( /obj/docking_port/stationary{ dir = 8; @@ -34298,14 +34412,6 @@ }, /turf/open/space/basic, /area/space) -"mgF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer1, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/turf/open/floor/iron/textured, -/area/station/engineering/atmos) "mgH" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -34471,11 +34577,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"miM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "miR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -34734,6 +34845,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine) +"mnm" = ( +/obj/machinery/chem_dispenser, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 1 + }, +/area/station/medical/pharmacy) "mnt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34786,14 +34910,6 @@ "mnP" = ( /turf/open/floor/iron, /area/station/service/hydroponics) -"mnS" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "mnU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -34901,6 +35017,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"mqn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "mqz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/east, @@ -35638,6 +35761,10 @@ /obj/machinery/holopad, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"mDx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "mDF" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -35712,35 +35839,10 @@ /obj/item/computer_disk/maintenance/spectre_meter, /turf/open/misc/asteroid/airless, /area/station/asteroid) -"mEO" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/pipe_dispenser{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/pipe_dispenser, -/obj/machinery/power/apc/auto_name/directional/south{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mEQ" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"mFa" = ( -/obj/machinery/door/firedoor/heavy, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/airlock/research{ - name = "Ordnance Auxiliary Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mFb" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor/massdriver_chapel, @@ -35841,11 +35943,6 @@ }, /turf/open/floor/engine, /area/station/command/heads_quarters/captain/private) -"mHc" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "mHf" = ( /obj/structure/table, /obj/item/controller, @@ -35873,15 +35970,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mHx" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "mHG" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -36407,7 +36495,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "mRI" = ( /obj/effect/mob_spawn/corpse/human/clown, @@ -36729,7 +36817,7 @@ /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "mYs" = ( /obj/machinery/door/airlock/public/glass{ @@ -36951,6 +37039,9 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"nbS" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "ncc" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/window/spawner/directional/north, @@ -37238,18 +37329,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"nfk" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "nfn" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -37534,6 +37613,9 @@ dir = 1 }, /area/station/engineering/atmos) +"nkM" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "nli" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/airalarm/directional/east, @@ -37555,8 +37637,8 @@ /area/station/medical/medbay/central) "nlx" = ( /obj/structure/cable, -/obj/effect/turf_decal/sand/plating, /obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical) "nlI" = ( @@ -37944,6 +38026,9 @@ }, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) +"ntd" = ( +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/qm) "ntQ" = ( /obj/structure/sign/warning/docking, /turf/closed/wall, @@ -37965,6 +38050,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/chapel, /area/station/service/chapel) +"nur" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/station/commons/dorms) "nuu" = ( /obj/machinery/bouldertech/refinery, /obj/machinery/conveyor{ @@ -38291,13 +38383,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"nAt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "nAu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38570,6 +38655,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/detectives_office) +"nGb" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/item/holosign_creator/atmos, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nGd" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -38651,7 +38743,7 @@ }, /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "nIb" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -38688,10 +38780,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/misc/asteroid, /area/station/maintenance/department/cargo) -"nIQ" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "nIS" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -38926,12 +39014,6 @@ "nMI" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port/lesser) -"nMK" = ( -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib3-old" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "nMP" = ( /obj/structure/sign/poster/random/directional/south, /obj/machinery/light/small/directional/south, @@ -38971,12 +39053,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) -"nNl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "nNo" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -38997,6 +39073,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"nNF" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "nNK" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -39071,17 +39154,13 @@ "nPW" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nQl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") +"nQm" = ( +/obj/machinery/camera/motion/directional/west{ + network = list("aicore"); + c_tag = "Secure - AI Upper External East" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/turf/open/space/openspace, +/area/space/nearstation) "nQs" = ( /obj/machinery/light/small/directional/north, /turf/open/misc/asteroid, @@ -39227,10 +39306,17 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) -"nUJ" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"nUN" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -39470,6 +39556,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"oaz" = ( +/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/hand_labeler{ + pixel_y = 10; + pixel_x = -13 + }, +/obj/item/folder, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "oaF" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -39485,6 +39581,12 @@ "oaP" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"oaR" = ( +/obj/structure/closet/crate/critter, +/mob/living/basic/mothroach, +/obj/item/stack/spacecash/c100, +/turf/open/space/basic, +/area/space/nearstation) "oaY" = ( /obj/effect/landmark/start/medical_doctor, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -39844,12 +39946,6 @@ }, /turf/open/floor/iron/textured, /area/station/cargo/drone_bay) -"ojR" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "oka" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -39969,13 +40065,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"oma" = ( -/obj/structure/chair/wood{ - dir = 1 +"olY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8; + name = "Oxygen Chamber Injection Port" }, -/obj/structure/railing, -/turf/open/floor/carpet, -/area/station/service/theater) +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "omv" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/backpack, @@ -40144,25 +40243,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"oql" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/book/manual/chef_recipes, -/obj/effect/turf_decal/tile/red/opposingcorners, -/turf/open/floor/iron/white, -/area/station/security/prison/mess) "oqp" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -40290,6 +40370,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"orY" = ( +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "osd" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -40357,7 +40440,7 @@ "osT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "osX" = ( /obj/effect/decal/cleanable/dirt, @@ -40604,6 +40687,26 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/service/bar) +"oxW" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance) +"oyd" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "ordauxgarage" + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plating, +/area/station/science/ordnance) "oyq" = ( /obj/machinery/light/cold/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -40995,17 +41098,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"oFp" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "oFu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -41168,18 +41260,6 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"oIu" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white/textured_corner{ - dir = 1 - }, -/area/station/science/xenobiology) "oID" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -41499,8 +41579,8 @@ /area/station/command/bridge) "oOP" = ( /obj/structure/cable, -/obj/structure/fireaxecabinet/directional/south, /obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron, /area/station/command/bridge) "oOR" = ( @@ -41782,6 +41862,14 @@ /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron, /area/station/hallway/primary/central) +"oTP" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "oTW" = ( /obj/structure/closet/secure_closet/quartermaster, /obj/machinery/light/small/directional/east, @@ -41828,6 +41916,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"oUk" = ( +/obj/effect/spawner/random{ + loot = list(/obj/item/cardboard_cutout/nuclear_operative,/obj/item/cardboard_cutout/nuclear_operative,/obj/structure/fluff/balloon_nuke); + spawn_all_loot = 1; + spawn_loot_chance = 5; + spawn_loot_double = 0; + spawn_scatter_radius = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) "oUm" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 8 @@ -41908,6 +42006,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"oVV" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Secure Pen"; + network = list("ss13","rd","xeno") + }, +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "oVX" = ( /obj/structure/table, /obj/structure/window/spawner/directional/east, @@ -42427,12 +42533,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) -"pfe" = ( -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "pfg" = ( /obj/structure/barricade/wooden, /turf/open/misc/asteroid, @@ -42496,6 +42596,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/detectives_office) +"pgI" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "pgJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/red/fourcorners, @@ -42532,16 +42637,6 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"phq" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_y = -24 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "phA" = ( /obj/machinery/computer/exodrone_control_console{ dir = 8 @@ -42657,7 +42752,7 @@ /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "piS" = ( /obj/structure/girder/displaced, @@ -42717,14 +42812,13 @@ dir = 8 }, /area/station/service/theater) -"pjL" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 6 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) +"pjK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light_switch/directional/east, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "pjN" = ( /obj/structure/transit_tube/horizontal{ dir = 2 @@ -43054,10 +43148,6 @@ /obj/item/pickaxe/improvised, /turf/open/misc/asteroid, /area/station/maintenance/port/greater) -"ppO" = ( -/obj/effect/spawner/structure/window/hollow/end, -/turf/open/floor/plating, -/area/station/security/courtroom) "ppR" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -43095,12 +43185,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"pqX" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "prc" = ( /obj/machinery/field/generator, /turf/open/floor/plating, @@ -43256,10 +43340,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"pti" = ( -/obj/machinery/plumbing/growing_vat, -/turf/open/misc/asteroid, -/area/station/asteroid) "ptq" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, @@ -43473,6 +43553,10 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) +"pwU" = ( +/obj/structure/fluff/iced_abductor, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "pwV" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -43513,9 +43597,15 @@ /turf/open/floor/plating/airless, /area/station/maintenance/department/medical/central) "pxU" = ( -/obj/effect/turf_decal/sand/plating, -/turf/closed/wall, -/area/station/medical/chemistry/minisat) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "pxY" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, @@ -43669,6 +43759,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/break_room) +"pAK" = ( +/obj/item/stack/cable_coil, +/turf/open/space/openspace, +/area/space/nearstation) "pAP" = ( /obj/effect/spawner/random/food_or_drink/seed{ spawn_all_loot = 1; @@ -43853,7 +43947,7 @@ /area/station/medical/chemistry) "pDr" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, +/turf/open/floor/iron/white, /area/station/maintenance/department/medical) "pDs" = ( /obj/structure/chair, @@ -43927,6 +44021,16 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/storage/tech) +"pEq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pEH" = ( /turf/closed/wall/rock/porous, /area/station/cargo/miningoffice) @@ -44053,9 +44157,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/security/detectives_office) -"pGt" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "pGH" = ( /obj/machinery/door/airlock/external{ name = "Server Room" @@ -44145,11 +44246,6 @@ }, /turf/open/floor/plating, /area/station/security/warden) -"pIM" = ( -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "pIN" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, @@ -44218,10 +44314,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) -"pKn" = ( -/obj/structure/lattice, -/turf/open/floor/engine/airless, -/area/space/nearstation) "pKH" = ( /obj/effect/landmark/start/hangover, /obj/machinery/duct, @@ -44231,6 +44323,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) +"pKI" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "pLd" = ( /obj/machinery/door/airlock/security, /obj/machinery/door/firedoor, @@ -44413,6 +44511,12 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"pNW" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/chem_dispenser, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "pOd" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44545,13 +44649,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/carpet, /area/station/commons/dorms) -"pQG" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pQM" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 1; @@ -44566,10 +44663,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/wood, /area/station/commons/lounge) -"pRb" = ( -/obj/machinery/light/floor, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "pRk" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -44856,6 +44949,13 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/textured, /area/station/commons/storage/art) +"pVd" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/carpet, +/area/station/service/theater) "pVh" = ( /obj/machinery/light/warm/directional/south, /obj/effect/turf_decal/siding/wood, @@ -45124,6 +45224,17 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"pZK" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "pZP" = ( /obj/machinery/atmospherics/pipe/multiz/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -45395,15 +45506,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"qeY" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qfu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured_large, @@ -45411,6 +45513,12 @@ "qfB" = ( /turf/closed/wall, /area/station/medical/pharmacy) +"qfE" = ( +/obj/machinery/air_sensor/oxygen_tank{ + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "qfJ" = ( /obj/structure/sign/poster/random/directional/north, /obj/structure/table/wood/fancy/orange, @@ -45436,6 +45544,12 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) +"qgy" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/hallway/secondary/entry) "qgA" = ( /obj/structure/window/spawner/directional/east, /obj/structure/table, @@ -45632,6 +45746,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"qjk" = ( +/obj/structure/broken_flooring/singular/directional/south, +/turf/open/space/openspace, +/area/space/nearstation) "qjp" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/window/spawner/directional/north, @@ -45798,11 +45916,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/storage/primary) -"qmI" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/science/ordnance) "qmU" = ( /obj/item/radio/intercom/command/directional/west, /turf/open/floor/glass, @@ -45849,14 +45962,6 @@ }, /turf/open/floor/iron/white/smooth_half, /area/station/science/robotics/lab) -"qnV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/broken/directional/north, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "qob" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -46261,11 +46366,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"qvh" = ( -/obj/effect/turf_decal/siding/dark_blue, -/obj/machinery/holopad, -/turf/open/floor/iron/textured_large, -/area/station/command/bridge) "qvA" = ( /turf/closed/wall, /area/station/medical/surgery) @@ -46669,6 +46769,10 @@ /obj/item/book/codex_gigas, /turf/open/floor/engine/cult, /area/station/service/library) +"qEr" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "qEC" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -46895,7 +46999,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "qIS" = ( /obj/machinery/cryo_cell, @@ -47132,14 +47236,6 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"qOt" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qOz" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -47460,6 +47556,16 @@ }, /turf/open/openspace, /area/station/science/xenobiology) +"qUz" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "qUA" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -47613,6 +47719,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"qXg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "qXm" = ( /turf/open/floor/iron/showroomfloor, /area/station/engineering/main) @@ -47629,6 +47743,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/lobby) +"qXA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/computer/atmos_control/oxygen_tank{ + atmos_chambers = list(o2ordance="Oxygen Supply") + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "qXB" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/security_all, @@ -47886,13 +48012,6 @@ dir = 8 }, /area/station/hallway/secondary/exit/departure_lounge) -"rbS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "rce" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -48018,6 +48137,25 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"rdM" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/plating, +/area/station/science/ordnance) +"rdP" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/station/medical/pharmacy) "rdR" = ( /obj/structure/broken_flooring/pile, /obj/effect/decal/cleanable/dirt/dust, @@ -48094,20 +48232,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"reJ" = ( -/obj/machinery/chem_dispenser, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_corner{ - dir = 1 - }, -/area/station/medical/pharmacy) "reK" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48149,6 +48273,14 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) +"rfA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rfQ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -48491,15 +48623,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"rkd" = ( -/obj/structure/closet/crate/science, -/obj/item/wrench, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/firealarm/directional/west, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "rkm" = ( /obj/machinery/washing_machine, /turf/open/floor/iron/freezer, @@ -48574,6 +48697,18 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"rkK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rkL" = ( /obj/structure/table, /obj/structure/window/spawner/directional/east, @@ -48758,20 +48893,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security) -"roK" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/ordnance) "roO" = ( /obj/machinery/door/airlock/security/glass{ name = "Prison Wing" @@ -48788,37 +48909,12 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) -"rpb" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "rpy" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 }, /turf/open/floor/iron, /area/station/cargo/sorting) -"rpC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating, -/area/station/science/ordnance/storage) "rpD" = ( /obj/structure/closet/secure_closet/brig/genpop, /obj/machinery/light/dim/directional/east, @@ -48917,6 +49013,13 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"rqC" = ( +/obj/machinery/camera/motion/directional/north{ + network = list("aicore"); + c_tag = "Secure - AI Upper External South" + }, +/turf/open/space/openspace, +/area/space/nearstation) "rqJ" = ( /obj/machinery/air_sensor/plasma_tank, /turf/open/floor/engine/plasma, @@ -49056,6 +49159,14 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"rtq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "rts" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -49203,6 +49314,15 @@ /obj/item/piggy_bank/vault, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) +"rwA" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "rwD" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood/corner{ @@ -49260,9 +49380,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"rxr" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "rxv" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt/dust, @@ -49541,7 +49658,7 @@ "rBq" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/purple, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "rBt" = ( /obj/effect/turf_decal/stripes/line{ @@ -49801,12 +49918,14 @@ /area/station/cargo/storage) "rEV" = ( /obj/structure/cable, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "rFb" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -49830,15 +49949,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) -"rFA" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "rFK" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/rubble, @@ -50053,6 +50163,7 @@ "rJv" = ( /obj/structure/sign/warning/chem_diamond/directional/south, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/department/medical) "rJy" = ( @@ -50296,16 +50407,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"rPL" = ( -/obj/effect/spawner/random{ - loot = list(/obj/item/cardboard_cutout/nuclear_operative,/obj/item/cardboard_cutout/nuclear_operative,/obj/structure/fluff/balloon_nuke); - spawn_all_loot = 1; - spawn_loot_chance = 5; - spawn_loot_double = 0; - spawn_scatter_radius = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "rPR" = ( /obj/effect/turf_decal/siding/green{ dir = 5 @@ -50335,9 +50436,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"rQy" = ( -/turf/open/floor/iron/showroomfloor, -/area/station/command/heads_quarters/qm) "rQC" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -50447,12 +50545,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"rRP" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/railing/corner, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/hallway/secondary/entry) "rRY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, @@ -50580,10 +50672,6 @@ "rTM" = ( /turf/closed/wall/r_wall, /area/station/security/mechbay) -"rTQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "rTV" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -51097,12 +51185,6 @@ }, /turf/open/floor/carpet/black, /area/station/command/heads_quarters/hos) -"sar" = ( -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd") - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "sas" = ( /obj/machinery/door/airlock/command/glass{ name = "Emergency Spatial Evacuation" @@ -51517,16 +51599,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"shI" = ( -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/obj/structure/chair{ - name = "Defense" - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/courtroom) "sia" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -51567,9 +51639,12 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "siU" = ( -/obj/item/pickaxe, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white, /area/station/maintenance/department/medical) "siX" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, @@ -51787,12 +51862,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"sml" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/grass, -/area/station/science/research) "smn" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52002,9 +52071,16 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "sqb" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -52206,9 +52282,11 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 }, /turf/open/floor/plating, /area/station/maintenance/department/medical) @@ -52269,6 +52347,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"sug" = ( +/obj/machinery/sparker/directional/south{ + id = "Xenobio" + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "suq" = ( /obj/effect/landmark/start/station_engineer, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52358,6 +52442,17 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"svE" = ( +/obj/structure/table, +/obj/item/storage/box/syringes{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/storage/box/beakers{ + pixel_x = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "svK" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52763,6 +52858,11 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) +"sDq" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "sDr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53101,13 +53201,6 @@ /obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/iron, /area/station/engineering/lobby) -"sJz" = ( -/obj/machinery/camera/motion/directional/north{ - network = list("aicore"); - c_tag = "Secure - AI Upper External South" - }, -/turf/open/space/openspace, -/area/space/nearstation) "sJG" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -53182,6 +53275,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/bar/backroom) +"sLr" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_y = -24 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "sLt" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53636,10 +53739,6 @@ /obj/item/paper_bin/bundlenatural, /turf/open/floor/iron/textured_large, /area/station/cargo/sorting) -"sUy" = ( -/obj/structure/sign/poster/contraband/communist_state/directional/east, -/turf/open/space/basic, -/area/space/nearstation) "sUz" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -53916,6 +54015,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"sZr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) "sZs" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/siding/wood, @@ -54474,6 +54579,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"tky" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "tkD" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/structure/railing, @@ -54738,6 +54856,20 @@ /obj/machinery/telecomms/bus/preset_two, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"toV" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/clothing/glasses/science, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/item/multitool, +/turf/open/floor/iron/white, +/area/station/science/lab) "tpj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54768,6 +54900,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/maintenance/central/lesser) +"tqf" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ + dir = 4; + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "tqk" = ( /obj/machinery/conveyor{ id = "garbage"; @@ -55003,6 +55142,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/gateway) +"tui" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/turf/open/misc/asteroid, +/area/station/asteroid) "tus" = ( /obj/machinery/plumbing/sender{ dir = 4 @@ -55094,7 +55239,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "tvB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -55390,6 +55535,13 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) +"tBC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "tBF" = ( /obj/structure/closet/secure_closet/chief_medical, /obj/item/screwdriver, @@ -55442,7 +55594,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "tCE" = ( /obj/effect/turf_decal/tile/neutral, @@ -55547,6 +55699,11 @@ }, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance) +"tEm" = ( +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "tEn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ @@ -55596,12 +55753,6 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"tEU" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/stairs/north, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/storage/tech) "tEW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -55621,6 +55772,17 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"tFf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tFD" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -55775,6 +55937,12 @@ dir = 8 }, /area/station/command/meeting_room) +"tId" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ + chamber_id = "o2ordance" + }, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "tIr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -55785,7 +55953,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "tIE" = ( /obj/effect/landmark/secequipment, @@ -55897,6 +56065,10 @@ }, /turf/open/floor/iron, /area/station/maintenance/solars/starboard/fore) +"tKD" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/science/ordnance) "tKX" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ @@ -55993,6 +56165,11 @@ /obj/item/clothing/suit/utility/fire/firefighter, /turf/open/floor/plating/reinforced, /area/station/command/emergency_closet) +"tMu" = ( +/obj/structure/railing, +/obj/effect/spawner/random/structure/closet_private, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "tMz" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -56249,7 +56426,7 @@ "tPE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "tPJ" = ( /obj/machinery/light_switch/directional/west, @@ -56503,6 +56680,9 @@ /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 }, +/obj/structure/chair{ + dir = 4 + }, /turf/open/floor/iron/white, /area/station/maintenance/department/medical) "tUD" = ( @@ -56801,7 +56981,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "tZW" = ( /obj/machinery/camera/autoname/directional/south, @@ -56825,15 +57005,21 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/engine) +"uak" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/sign/warning/gas_mask/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "uat" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science) -"uaw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "uay" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -57404,10 +57590,16 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) -"ujW" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"uke" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "ukl" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -57557,6 +57749,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"umA" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/engine, +/area/station/science/xenobiology) "umK" = ( /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, @@ -57640,9 +57837,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"unZ" = ( -/turf/closed/mineral/asteroid, -/area/space/nearstation) "uoi" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -57652,6 +57846,11 @@ /obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"uoP" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "uoY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, @@ -58101,36 +58300,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) -"uwN" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"uwV" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - req_access = list("ordnance"); - name = "Ordnance Storage Shutter Control"; - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "uwW" = ( /obj/structure/cable/layer1, /turf/open/floor/iron, @@ -58541,9 +58710,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/security) -"uEn" = ( -/turf/open/floor/engine/airless, -/area/space/nearstation) "uEo" = ( /turf/closed/wall, /area/station/service/chapel/office) @@ -58656,6 +58822,7 @@ }, /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/departments/exodrone/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "uGS" = ( @@ -58675,12 +58842,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"uHz" = ( -/obj/structure/lattice/catwalk, -/turf/open/openspace{ - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/station/science/xenobiology) "uHA" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -58730,11 +58891,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/upper) -"uIu" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "uIx" = ( /obj/machinery/airalarm/directional/west, /obj/structure/bed/double{ @@ -59188,29 +59344,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) -"uPj" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Interior Airlock"; - id_tag = "ordmix_airlock_interior" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_y = -26 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 8; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "uPv" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 10 @@ -59556,7 +59689,7 @@ /area/station/command/heads_quarters/qm) "uWI" = ( /obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab" + name = "Chemistry Minisat" }, /obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, /obj/effect/mapping_helpers/airlock/unres{ @@ -59577,19 +59710,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) -"uXb" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "uXe" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -59798,6 +59918,12 @@ "vaC" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) +"vaU" = ( +/obj/item/toy/plush/lizard_plushie/space/green{ + name = "Delaminates-The-Supermatter" + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "vaY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/broken_flooring/pile, @@ -59969,6 +60095,7 @@ "veF" = ( /obj/effect/turf_decal/tile/brown/fourcorners, /obj/structure/railing, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/iron, /area/station/cargo/storage) "veW" = ( @@ -60087,6 +60214,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) +"vgW" = ( +/obj/structure/lattice, +/turf/open/floor/engine/airless, +/area/space/nearstation) "vhf" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -60134,6 +60265,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"vib" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "viK" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 8 @@ -60426,16 +60563,6 @@ }, /turf/open/floor/wood, /area/station/service/theater) -"vns" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/sign/warning/gas_mask/directional/south, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vnG" = ( /obj/machinery/disposal/bin, /obj/machinery/requests_console/directional/north{ @@ -60646,18 +60773,6 @@ dir = 8 }, /area/station/service/theater) -"vrG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "vrR" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/wood, @@ -60896,6 +61011,12 @@ mineralChance = 20 }, /area/station/asteroid) +"vxZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "vyj" = ( /obj/structure/stairs/east, /obj/structure/railing, @@ -61308,6 +61429,12 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"vFG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/stairs/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/storage/tech) "vFH" = ( /obj/effect/turf_decal/trimline/blue/line{ dir = 9 @@ -61380,6 +61507,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) +"vGG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer1, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/textured, +/area/station/engineering/atmos) "vGJ" = ( /obj/effect/spawner/random/structure/grille, /obj/effect/spawner/random/structure/girder, @@ -61563,6 +61698,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"vLa" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "vLs" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/fence, @@ -61667,6 +61807,10 @@ /obj/structure/flora/coconuts, /turf/open/floor/grass, /area/station/medical/chemistry) +"vMR" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "vNc" = ( /obj/machinery/modular_computer/preset/id{ dir = 1 @@ -61706,15 +61850,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/engineering/main) -"vNl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 10 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vNB" = ( /obj/machinery/vending/tool, /obj/effect/decal/cleanable/dirt, @@ -61929,6 +62064,7 @@ /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 4 }, +/obj/structure/fireaxecabinet/directional/east, /turf/open/floor/iron, /area/station/command/bridge) "vQT" = ( @@ -62155,32 +62291,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, /area/station/engineering/main) -"vVc" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/right/directional/south{ - name = "Secondary AI Core Access"; - req_access = list("ai_upload"); - pixel_y = -4 - }, -/obj/machinery/flasher/directional/west{ - id = "AI"; - pixel_y = -8 - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = -27; - frequency = 1447; - freerange = 1; - on = 0; - name = "Private Channel" - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = 27; - name = "Common Channel"; - freerange = 1; - listening = 0 - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "vVe" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -62401,9 +62511,7 @@ /turf/open/floor/iron/dark, /area/station/commons/locker) "vZu" = ( -/obj/machinery/atmospherics/components/tank/air{ - piping_layer = 4 - }, +/obj/machinery/atmospherics/components/tank/air/layer4, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, @@ -62678,7 +62786,7 @@ /obj/structure/cable, /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "weg" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ @@ -62770,13 +62878,6 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/atmos) -"wfU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "wfW" = ( /obj/structure/lattice/catwalk, /obj/item/food/pie/cream, @@ -62802,6 +62903,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"wgI" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "wgK" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -62827,19 +62932,6 @@ /obj/structure/broken_flooring/side/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"whz" = ( -/obj/machinery/chem_dispenser, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 1 - }, -/area/station/medical/pharmacy) "whG" = ( /obj/structure/table/reinforced/rglass, /obj/item/folder/blue, @@ -63110,17 +63202,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wmM" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "wmO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/glass/reinforced, @@ -63156,12 +63237,6 @@ dir = 8 }, /area/station/science/xenobiology) -"wnH" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "wnL" = ( /turf/open/floor/plating, /area/station/medical/medbay/central) @@ -63200,17 +63275,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wos" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wou" = ( /obj/structure/table, /obj/item/reagent_containers/cup/glass/coffee, @@ -63689,7 +63753,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "wxQ" = ( /obj/machinery/computer/operating{ @@ -64164,12 +64228,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"wEj" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/chem_dispenser, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "wEs" = ( /obj/item/target, /obj/structure/window/reinforced/spawner/directional/north, @@ -64324,6 +64382,10 @@ /obj/structure/closet, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) +"wHl" = ( +/obj/structure/girder, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "wHo" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/spawner/random/entertainment/arcade{ @@ -64408,6 +64470,10 @@ "wJy" = ( /turf/closed/wall, /area/station/medical/storage) +"wJC" = ( +/obj/structure/sign/poster/contraband/communist_state/directional/east, +/turf/open/space/basic, +/area/space/nearstation) "wJN" = ( /obj/machinery/space_heater/improvised_chem_heater, /turf/open/floor/plating, @@ -64691,19 +64757,38 @@ /area/station/engineering/gravity_generator) "wOJ" = ( /obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 3; + pixel_y = 6 }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/construction/plumbing, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","medbay") +/obj/item/construction/plumbing{ + pixel_x = 34; + pixel_y = 6 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 26; + pixel_y = 2 }, +/obj/item/stack/ducts/fifty{ + pixel_x = 25; + pixel_y = 1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 24; + pixel_y = -1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -3 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry) "wOK" = ( @@ -64738,7 +64823,7 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /obj/structure/cable, /obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "wPU" = ( /obj/machinery/light/small/directional/west, @@ -64847,6 +64932,9 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) +"wSj" = ( +/turf/closed/mineral/asteroid, +/area/space/nearstation) "wSn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, @@ -65286,15 +65374,6 @@ /obj/machinery/vending/wallmed/directional/south, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"xaw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "xay" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65371,9 +65450,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) -"xbg" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "xbi" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line, @@ -65482,12 +65558,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"xcX" = ( -/obj/machinery/sparker/directional/south{ - id = "Xenobio" - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "xdf" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -65596,7 +65666,7 @@ /obj/structure/window/reinforced/spawner/directional/north, /obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) "xeW" = ( /obj/effect/turf_decal/tile/brown{ @@ -65653,6 +65723,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) +"xfQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "xfS" = ( /obj/structure/sign/departments/aisat/directional/east, /obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ @@ -65666,7 +65740,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "xgn" = ( /obj/structure/mannequin/skeleton{ @@ -65682,12 +65756,6 @@ }, /turf/open/openspace, /area/station/science/xenobiology) -"xgy" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "xgG" = ( /turf/closed/wall/rust, /area/station/maintenance/department/medical/central) @@ -66035,6 +66103,9 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xna" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "xnc" = ( /obj/machinery/door/airlock/command/glass{ name = "Bridge" @@ -66134,6 +66205,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"xpb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "xpn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -66206,7 +66287,7 @@ /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/hallway/secondary/entry) "xqO" = ( /obj/docking_port/stationary/escape_pod{ @@ -66296,6 +66377,14 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) +"xrY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "xsj" = ( /obj/machinery/netpod, /obj/structure/cable, @@ -66550,11 +66639,6 @@ /obj/structure/cable/layer1, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"xwG" = ( -/obj/structure/railing, -/obj/effect/spawner/random/structure/closet_private, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "xwO" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment, @@ -66613,6 +66697,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmos) +"xxO" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/science/research) "xxT" = ( /obj/structure/chair/wood, /obj/effect/turf_decal/siding/wood{ @@ -67210,16 +67300,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xJt" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/light/small/directional/south, -/obj/structure/broken_flooring/pile, -/obj/machinery/atmospherics/components/binary/pump/off/green/hidden{ - dir = 4; - name = "Aux Oxygen To Port" - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "xJA" = ( /obj/structure/table/wood/fancy/blue, /obj/effect/spawner/random/aimodule/neutral, @@ -67600,32 +67680,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/cargo/storage) -"xRu" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "Tertiary AI Core Access"; - req_access = list("ai_upload"); - pixel_y = 3 - }, -/obj/item/radio/intercom/directional/south{ - pixel_x = -27; - freerange = 1; - listening = 0; - name = "Common Channel" - }, -/obj/item/radio/intercom/directional/south{ - pixel_x = 27; - frequency = 1447; - freerange = 1; - listening = 0; - name = "Private Channel" - }, -/obj/machinery/flasher/directional/east{ - pixel_y = 8; - id = "AI" - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "xRG" = ( /obj/structure/chair/wood{ dir = 4 @@ -67853,6 +67907,32 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"xWR" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Secondary AI Core Access"; + req_access = list("ai_upload"); + pixel_y = -4 + }, +/obj/machinery/flasher/directional/west{ + id = "AI"; + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = -27; + frequency = 1447; + freerange = 1; + on = 0; + name = "Private Channel" + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = 27; + name = "Common Channel"; + freerange = 1; + listening = 0 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "xXh" = ( /obj/machinery/power/shieldwallgen, /obj/effect/decal/cleanable/dirt/dust, @@ -67896,6 +67976,10 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"xXF" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "xXY" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/turf_decal/siding/wideplating/dark/end{ @@ -68280,8 +68364,12 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "yew" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, +/obj/structure/table, +/obj/effect/spawner/random/trash/crushed_can{ + pixel_x = 7; + pixel_y = 15 + }, +/turf/open/floor/iron/white, /area/station/maintenance/department/medical) "yeO" = ( /obj/machinery/door/firedoor/border_only{ @@ -68393,10 +68481,6 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"ygW" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "yhj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -73227,15 +73311,15 @@ cLf cLf iUF tLg -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc tLg iUF cLf @@ -73483,7 +73567,7 @@ cLf cLf cLf iUF -bwC +dUc wfz uuN uuN @@ -73493,7 +73577,7 @@ uuN uuN uuN wfz -bwC +dUc iUF cLf cLf @@ -73740,17 +73824,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -73997,17 +74081,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -74254,17 +74338,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -74511,17 +74595,17 @@ cLf cLf cLf cLf -bwC +dUc uuN -bwC -bwC -bwC +dUc +dUc +dUc itt -bwC -bwC -bwC +dUc +dUc +dUc uuN -bwC +dUc cLf cLf cLf @@ -74768,17 +74852,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -75025,17 +75109,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -75282,17 +75366,17 @@ cLf cLf cLf cLf -bwC +dUc uuN cLf cLf cLf -bwC +dUc cLf cLf cLf uuN -bwC +dUc cLf cLf cLf @@ -75539,7 +75623,7 @@ cLf cLf cLf iUF -bwC +dUc wfz uuN uuN @@ -75549,7 +75633,7 @@ uuN uuN uuN wfz -bwC +dUc iUF cLf cLf @@ -75797,15 +75881,15 @@ cLf cLf iUF tLg -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc tLg iUF cLf @@ -76014,16 +76098,16 @@ iUF iUF cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf iUF -bwC +dUc iUF cLf cLf @@ -76055,17 +76139,17 @@ cLf iUF iUF cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC +dUc cLf iUF iUF -bwC +dUc cLf cLf cLf @@ -76271,16 +76355,16 @@ iUF cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf iUF -bwC +dUc iUF cLf cLf @@ -76312,17 +76396,17 @@ cLf cLf cLf cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -76525,19 +76609,19 @@ cLf cLf cLf iUF -bwC -bwC -bwC +dUc +dUc +dUc rGO cLf qJB cLf rGO -bwC -bwC -bwC +dUc +dUc +dUc iUF -bwC +dUc iUF cLf cLf @@ -76569,22 +76653,22 @@ cLf cLf cLf cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC +dUc cLf cLf cLf -bwC -bwC +dUc +dUc iUF iUF iUF -bwC +dUc cLf cLf cLf @@ -76794,7 +76878,7 @@ cLf cLf cLf iUF -bwC +dUc iUF cLf cLf @@ -76826,22 +76910,22 @@ cLf cLf cLf cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -77051,7 +77135,7 @@ cLf cLf cLf iUF -bwC +dUc iUF cLf cLf @@ -77083,22 +77167,22 @@ cLf cLf cLf cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf kJV cLf -bwC +dUc cLf cLf cLf @@ -77308,7 +77392,7 @@ rGO cLf cLf iUF -bwC +dUc iUF cLf cLf @@ -77340,24 +77424,24 @@ cLf cLf cLf cLf -bwC +dUc cLf uuN uuN uuN cLf -bwC +dUc cLf cLf cLf iUF iUF -bwC -bwC -bwC +dUc +dUc +dUc iUF iUF -bwC +dUc mPv cLf cLf @@ -77565,7 +77649,7 @@ opZ rGO cLf iUF -bwC +dUc iUF cLf cLf @@ -77574,7 +77658,7 @@ cLf cLf cLf cLf -bwC +dUc iUF cLf cLf @@ -77591,12 +77675,12 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc iUF iUF kYn @@ -77608,18 +77692,18 @@ iUF iUF cLf cLf -bwC +dUc cLf cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -77810,7 +77894,7 @@ cLf cLf cLf iUF -bwC +dUc rGO sKL rGO @@ -77820,18 +77904,18 @@ nMk rGO sKL rGO -bwC +dUc iUF -bwC +dUc iUF -bwC -bwC +dUc +dUc iUF iUF iUF iUF -bwC -bwC +dUc +dUc cLf cLf cLf @@ -77848,7 +77932,7 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -77856,16 +77940,16 @@ cLf cLf iUF cLf -bwC +dUc cLf -bwC +dUc cLf -bwC +dUc cLf iUF cLf cLf -bwC +dUc cLf cLf cLf @@ -78079,14 +78163,14 @@ opZ opZ cLf iUF -bwC +dUc iUF cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -78105,19 +78189,19 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -78149,12 +78233,12 @@ kYn cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf shs @@ -78334,16 +78418,16 @@ nMk rGO sKL rGO -bwC +dUc iUF -bwC +dUc iUF cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -78362,19 +78446,19 @@ cLf cLf cLf tyd -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf -bwC +dUc cLf -bwC +dUc cLf cLf rnk @@ -78401,8 +78485,8 @@ shs shs kYn shs -bwC -bwC +dUc +dUc cLf cLf oDH @@ -78411,7 +78495,7 @@ oDH cLf cLf cLf -bwC +dUc cLf cLf shs @@ -78581,7 +78665,7 @@ cLf cLf cLf iUF -bwC +dUc opZ opZ opZ @@ -78593,14 +78677,14 @@ opZ fYX cLf iUF -bwC +dUc iUF cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -78619,15 +78703,15 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc rnk rnk oFu @@ -78653,13 +78737,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf oDH weu @@ -78667,10 +78751,10 @@ oDH weu oDH bfl -bwC +dUc wfz -bwC -bwC +dUc +dUc shs cLf cLf @@ -78840,24 +78924,24 @@ cLf iUF cLf cLf -bwC +dUc cLf cLf pNk cLf cLf -bwC +dUc cLf cLf iUF -bwC +dUc iUF cLf cLf cLf cLf cLf -bwC +dUc cLf tyd cLf @@ -78876,7 +78960,7 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -78910,14 +78994,14 @@ vxX vxX vxX cLf -bwC +dUc cLf cLf cLf -bwC -bwC +dUc +dUc wfz -bwC +dUc oDH weu oDH @@ -78925,7 +79009,7 @@ weu oDH lTb oDH -bwC +dUc cLf cLf shs @@ -79097,24 +79181,24 @@ cLf iUF cLf cLf -bwC +dUc cLf cLf pNk cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -79133,7 +79217,7 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -79171,9 +79255,9 @@ loh loh loh loh -bwC +dUc cLf -bwC +dUc cLf oDH weu @@ -79182,7 +79266,7 @@ weu oDH weu oDH -bwC +dUc cLf cLf shs @@ -79354,24 +79438,24 @@ cLf cLf cLf cLf -bwC +dUc cLf oyS oDZ oyS cLf -bwC +dUc tyd cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -79390,7 +79474,7 @@ cLf cLf cLf cLf -bwC +dUc cLf vxX vxX @@ -79430,8 +79514,8 @@ sRo iFz iFz iFz -bwC -bwC +dUc +dUc lTb weu lTb @@ -79617,12 +79701,12 @@ oyS hPg oyS cLf -bwC +dUc cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -79647,7 +79731,7 @@ cLf cLf cLf cLf -bwC +dUc vxX vxX vxX @@ -79698,7 +79782,7 @@ kqy kqy kqy pBk -bwC +dUc shs cLf cLf @@ -79860,7 +79944,7 @@ cLf cLf cLf mPv -bwC +dUc nAb eSS eSS @@ -79874,12 +79958,12 @@ oyS qjc oyS oyS -bwC +dUc cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -79889,10 +79973,10 @@ vxX vxX vxX cLf -bwC -bwC +dUc +dUc mfA -bwC +dUc fVZ mWe aoL @@ -79944,8 +80028,8 @@ hVs iFz iFz iFz -bwC -bwC +dUc +dUc lTb weu lTb @@ -80134,9 +80218,9 @@ poi poi poi mxq -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -80146,7 +80230,7 @@ poi poi poi cLf -bwC +dUc cLf fsI cLf @@ -80199,9 +80283,9 @@ loh loh loh loh -bwC +dUc cLf -bwC +dUc cLf oDH weu @@ -80210,7 +80294,7 @@ weu oDH weu oDH -bwC +dUc cLf cLf shs @@ -80456,10 +80540,10 @@ sHh xyN nNv rnk -bwC -bwC +dUc +dUc wfz -bwC +dUc oDH weu oDH @@ -80467,7 +80551,7 @@ weu oDH lTb oDH -bwC +dUc cLf cLf shs @@ -80667,7 +80751,7 @@ sfu sfu bgv lam -rpb +gsi lam goX nZt @@ -80723,10 +80807,10 @@ oDH weu oDH bfl -bwC +dUc wfz -bwC -bwC +dUc +dUc shs cLf cLf @@ -80888,7 +80972,7 @@ cLf cLf cLf mPv -bwC +dUc nAb eSS eSS @@ -80981,7 +81065,7 @@ oDH cLf cLf cLf -bwC +dUc cLf cLf shs @@ -81233,12 +81317,12 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf shs @@ -81391,22 +81475,22 @@ cLf cLf cLf cLf -bwC +dUc iUF iUF iUF -bwC +dUc iUF iUF iUF -bwC +dUc iUF iUF iUF -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc eSS cro cro @@ -81484,11 +81568,11 @@ fma fma gtK rnk -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc kYn shs shs @@ -81644,21 +81728,21 @@ cLf cLf cLf cLf -bwC +dUc iUF iUF iUF -bwC +dUc cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -81748,7 +81832,7 @@ rnk cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -81901,21 +81985,21 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -82241,7 +82325,7 @@ kFT kFT qIS osT -aSn +uoP ioh gzw dKw @@ -82260,8 +82344,8 @@ uoo bMx hiO oFu -bwC -bwC +dUc +dUc iUF cLf cLf @@ -82416,7 +82500,7 @@ cLf cLf cLf iUF -bwC +dUc xrb xrb dEG @@ -82517,7 +82601,7 @@ sEY vJf rnk rnk -bwC +dUc cLf iUF cLf @@ -82689,7 +82773,7 @@ cem cem whY baH -bwC +dUc qhP dJK geh @@ -82929,7 +83013,7 @@ tyd cLf cLf cLf -bwC +dUc cLf xrb nEx @@ -83029,7 +83113,7 @@ lXG rnk cLf cLf -bwC +dUc kYn shs cLf @@ -83444,7 +83528,7 @@ cLf cLf cLf iUF -bwC +dUc xrb iNq oHi @@ -83957,7 +84041,7 @@ cLf cLf cLf cLf -bwC +dUc cLf oPe xch @@ -84057,7 +84141,7 @@ oaP oFu cLf cLf -bwC +dUc cLf cLf cLf @@ -84214,7 +84298,7 @@ cLf cLf cLf cLf -bwC +dUc vxX ubm ubm @@ -84246,10 +84330,10 @@ uZc uZc uZc uZc -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc poi poi poi @@ -84314,7 +84398,7 @@ oqj rnk vxX vxX -bwC +dUc cLf cLf cLf @@ -84510,7 +84594,7 @@ cLf cLf cLf cLf -bwC +dUc htf kpT jdK @@ -84767,7 +84851,7 @@ cLf cLf cLf cLf -bwC +dUc htf iHv rZJ @@ -85024,7 +85108,7 @@ cLf cLf cLf cLf -bwC +dUc poi mhF jdK @@ -85255,7 +85339,7 @@ eFK iEO oCR bxs -oql +ipq jza mHL iHG @@ -85281,7 +85365,7 @@ cLf cLf cLf cLf -bwC +dUc poi htf poi @@ -85538,7 +85622,7 @@ uOf cLf cLf cLf -bwC +dUc iua tdq cTa @@ -85793,8 +85877,8 @@ cLf ved gxu ved -bwC -bwC +dUc +dUc poi poi poi @@ -86369,7 +86453,7 @@ paa pEZ wiK mXM -bwC +dUc gGf cLf cLf @@ -86629,7 +86713,7 @@ mXM cLf cLf cLf -eTi +oaR cLf cLf cLf @@ -86857,7 +86941,7 @@ vLx lZb mAa qfB -whz +mnm bII icw mnc @@ -87303,8 +87387,8 @@ cLf cLf cLf cLf -bwC -bwC +dUc +dUc cLf cLf cLf @@ -87374,7 +87458,7 @@ qfB vyO hjW dGs -reJ +rdP qfB rgx goI @@ -87395,7 +87479,7 @@ lKh dgp paa rnk -bwC +dUc iUF cLf cLf @@ -87652,7 +87736,7 @@ dgp dgp rFd rnk -bwC +dUc iUF cLf cLf @@ -87900,10 +87984,10 @@ kJT fhL kJT cLf -bwC +dUc cLf -bwC -kkx +dUc +cxg rnk wdV nHm @@ -88077,8 +88161,8 @@ pnS pnS pnS unk -bwC -bwC +dUc +dUc jza mbM mbM @@ -88157,9 +88241,9 @@ kJT kyi kJT cLf -bwC +dUc cLf -bwC +dUc cLf rnk xuD @@ -88336,7 +88420,7 @@ pnS pnS cLf cLf -bwC +dUc uuN uuN plA @@ -88413,11 +88497,11 @@ hDK kJT iTL kJT -bwC +dUc wfz uuN wfz -bwC +dUc jsC xWi jsC @@ -88593,7 +88677,7 @@ unk cLf cLf cLf -bwC +dUc uuN uuN plA @@ -88846,10 +88930,10 @@ cLf cLf cLf cLf -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc rTM rTM rTM @@ -89186,8 +89270,8 @@ jNJ pUY kJT hgV -sUy -bwC +wJC +dUc uuN gJE paa @@ -89444,7 +89528,7 @@ hYg kJT rnk rnk -bwC +dUc wfz gJE paa @@ -89701,7 +89785,7 @@ ndI kJT afV rnk -bwC +dUc uuN gJE paa @@ -90390,7 +90474,7 @@ cLf cLf cLf iUF -bwC +dUc hDo sIM wVz @@ -90732,8 +90816,8 @@ vxX vxX cLf cLf -bwC -bwC +dUc +dUc cLf cLf cLf @@ -90904,7 +90988,7 @@ cLf cLf cLf iUF -bwC +dUc hDo fmB rAu @@ -90937,7 +91021,7 @@ heI jAG oed oed -ppO +ebE fpH bxH oed @@ -90990,7 +91074,7 @@ rnk rnk rnk rnk -bwC +dUc cLf cLf cLf @@ -91192,7 +91276,7 @@ rWZ bZH sRV jAG -gdj +jIY wpc mAX aHl @@ -91449,7 +91533,7 @@ dIT ked ked iCa -shI +drZ dBS vhT fYj @@ -92269,13 +92353,13 @@ uZx rms tcN rnk -bwC -bwC +dUc +dUc rnk rnk rnk rnk -bwC +dUc cLf cLf cLf @@ -92459,14 +92543,14 @@ axD axD axD fYe -bwC -bwC -bwC +dUc +dUc +dUc uuN uuN -bwC -bwC -bwC +dUc +dUc +dUc fYe fYe fri @@ -92528,11 +92612,11 @@ lqf rnk cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -92707,7 +92791,7 @@ cLf cLf cLf cLf -bwC +dUc cLf fZF mGX @@ -92787,9 +92871,9 @@ hzF hzF hzF hzF -bwC -bwC -bwC +dUc +dUc +dUc cLf cLf cLf @@ -93046,7 +93130,7 @@ pCJ hzF cLf cLf -bwC +dUc cLf cLf cLf @@ -93216,11 +93300,11 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc axD axD axD @@ -93230,15 +93314,15 @@ jxq vEF axD axD -bwC +dUc uuN -bwC +dUc uuN uuN -bwC +dUc uuN -bwC -bwC +dUc +dUc fYe fri nAe @@ -93488,12 +93572,12 @@ dGh jqu hrM cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf fYe fYe @@ -93745,7 +93829,7 @@ nbm iDJ hrM cLf -bwC +dUc cLf cLf cLf @@ -93987,11 +94071,11 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc axD hnE axD @@ -94242,8 +94326,8 @@ cLf cLf cLf cLf -bwC -bwC +dUc +dUc cLf cLf cLf @@ -95271,11 +95355,11 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc eKR pVC yhk @@ -95325,7 +95409,7 @@ enu cLd cdk fTl -jbK +hTZ bJo cdk rPg @@ -95787,7 +95871,7 @@ cLf iUF cLf cLf -rPL +oUk cLf cLf bqX @@ -95796,7 +95880,7 @@ yhk fUR rUi typ -qvh +ckb jlw iRB gkQ @@ -96053,7 +96137,7 @@ qlc wbf lYZ typ -goL +lCK aHs iRB kZg @@ -96556,11 +96640,11 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc eKR cNQ kjs @@ -96644,7 +96728,7 @@ tNz nHK cLf cLf -bwC +dUc cLf cLf cLf @@ -96899,8 +96983,8 @@ xcl xrd ppk hzF -bwC -bwC +dUc +dUc wfz cLf cLf @@ -97158,7 +97242,7 @@ azg azg cLf cLf -bwC +dUc cLf cLf cLf @@ -97591,7 +97675,7 @@ cLf cLf cLf cLf -bwC +dUc cLf eKR iSE @@ -97842,13 +97926,13 @@ cLf cLf cLf iUF -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc cLf eKR tju @@ -97905,7 +97989,7 @@ fkn sAc bmL wSn -oma +pVd axa xbs bmp @@ -98363,7 +98447,7 @@ cLf cLf cLf iUF -bwC +dUc eKR eKR uCw @@ -98627,13 +98711,13 @@ jVy brP jVy eKR -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc juw vOe vOe @@ -99138,10 +99222,10 @@ ili cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc dVE pjN hoe @@ -99385,8 +99469,8 @@ kGm aPz aPz xsN -bwC -bwC +dUc +dUc cLf cLf reg @@ -99470,7 +99554,7 @@ vFr vlM uEo cLf -bwC +dUc cLf cLf cLf @@ -99643,7 +99727,7 @@ oOC oOC xsN cLf -bwC +dUc cLf cLf dwF @@ -99652,7 +99736,7 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -99726,7 +99810,7 @@ mUU sLt dnt uEo -bwC +dUc iUF cLf cLf @@ -99894,7 +99978,7 @@ cLf cLf cLf iUF -bwC +dUc srs aPz aPz @@ -100174,7 +100258,7 @@ cLf iWV hJs xqe -bwC +dUc utM utM kOd @@ -100426,8 +100510,8 @@ vBs hfm eVE jEY -bwC -bwC +dUc +dUc vfJ hJs vfJ @@ -100688,7 +100772,7 @@ cLf iWV hJs iWV -bwC +dUc utM utM wWD @@ -100962,7 +101046,7 @@ tCE rOq fDa wGu -mdv +nur jkG fDa mgV @@ -101201,8 +101285,8 @@ cLf cLf cLf hJs -bwC -bwC +dUc +dUc obA utM utM @@ -101453,10 +101537,10 @@ eEx sYI sfY srs -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc hJs cLf cLf @@ -101691,8 +101775,8 @@ cLf cLf cLf iUF -bwC -bwC +dUc +dUc unk vxX srs @@ -101712,7 +101796,7 @@ srs srs cLf cLf -bwC +dUc cLf hqF epi @@ -101969,7 +102053,7 @@ skw srs cLf cLf -bwC +dUc cLf cLf cLf @@ -102039,7 +102123,7 @@ uFb jke kiK uFb -bwC +dUc iUF cLf cLf @@ -102226,7 +102310,7 @@ hnL srs cLf cLf -bwC +dUc cLf cLf cLf @@ -102240,7 +102324,7 @@ grl pJN iKc rSL -lxy +jbL lFE cBr deY @@ -102297,7 +102381,7 @@ vBV cpF uFb cLf -bwC +dUc cLf cLf cLf @@ -102483,7 +102567,7 @@ kYu kYu cLf cLf -bwC +dUc cLf cLf cLf @@ -102739,10 +102823,10 @@ pgk ins kYu kYu -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc vxX vxX vxX @@ -102976,9 +103060,9 @@ cLf cLf cLf iUF -bwC -bwC -bwC +dUc +dUc +dUc dZy awB glq @@ -103329,7 +103413,7 @@ jge uFb cLf cLf -bwC +dUc cLf iUF cLf @@ -103814,11 +103898,11 @@ kBM nMI cLf xAy -bwC -bwC +dUc +dUc xAy cLf -bwC +dUc xAy xAy xTw @@ -104070,7 +104154,7 @@ jUU kBM pWw cLf -bwC +dUc cLf cLf uuN @@ -104101,7 +104185,7 @@ wag xzJ kub pUr -bwC +dUc iUF cLf cLf @@ -104327,12 +104411,12 @@ jUU nyQ pWw cLf -bwC +dUc cLf cLf uuN xAy -tEU +vFG ugN pWE hYF @@ -104584,7 +104668,7 @@ jUU kBM pWw cLf -bwC +dUc cLf cLf axt @@ -104842,11 +104926,11 @@ ajQ nMI cLf xAy -bwC -bwC +dUc +dUc xAy cLf -bwC +dUc xAy xAy qXB @@ -104877,7 +104961,7 @@ ruZ ruZ ruZ fmY -bwC +dUc mPv cLf cLf @@ -105062,7 +105146,7 @@ vfJ rXG raz cPt -kYN +toV hEw irJ cPt @@ -105905,7 +105989,7 @@ ykG ykG ykG fdj -bwC +dUc mPv vxX vxX @@ -106612,7 +106696,7 @@ tVF wAy mUP hfB -kuW +eIo smE xCw rAz @@ -106868,9 +106952,9 @@ mmV tVF jiw sHn -sml -pIM -kBs +xxO +vLa +pKI lBJ puX thf @@ -106886,15 +106970,15 @@ niB hjI crU vxX -bwC -bwC +dUc +dUc nbu nbu nbu nbu nbu -bwC -bwC +dUc +dUc pLB dpU dpU @@ -107143,16 +107227,16 @@ pXS hjI crU vxX -bwC -bwC +dUc +dUc nbu gxw gxw cxN nbu -bwC -bwC -bwC +dUc +dUc +dUc dpU iel hTX @@ -107400,16 +107484,16 @@ niB qAI crU vxX -bwC -bwC +dUc +dUc nbu gxw puQ gxw nbu -bwC -bwC -bwC +dUc +dUc +dUc dpU nav pJw @@ -107657,16 +107741,16 @@ qOs bpy crU vxX -bwC -bwC +dUc +dUc nbu cIx enn tBt nbu -bwC -bwC -bwC +dUc +dUc +dUc dpU iPu eoQ @@ -107868,11 +107952,11 @@ cLf cLf cLf cLf -pfe +flF neT utU neT -pfe +flF cLf cLf cLf @@ -107914,16 +107998,16 @@ niB aoA crU vxX -bwC -bwC +dUc +dUc nbu wpM wVI bvl nbu -bwC -bwC -bwC +dUc +dUc +dUc dpU ppR mZA @@ -107960,10 +108044,10 @@ pGo ykG ykG ykG -bwC -bwC +dUc +dUc fmr -bwC +dUc cLf cLf vxX @@ -108126,9 +108210,9 @@ cLf cLf cLf cLf -bwC +dUc utU -bwC +dUc cLf cLf cLf @@ -108171,16 +108255,16 @@ ers dsL crU vxX -bwC -bwC -bwC +dUc +dUc +dUc gdP -bwC +dUc mXr -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc dpU kRq kLU @@ -108216,9 +108300,9 @@ ece kcz ykG mXK -bwC -bwC -bwC +dUc +dUc +dUc fmr cLf cLf @@ -108383,9 +108467,9 @@ cLf cLf cLf cLf -bwC +dUc utU -bwC +dUc cLf cLf cLf @@ -108406,9 +108490,9 @@ foX aku ouA jJe -ilp -ixU -ixU +gOY +gOY +gOY gOY gOY gOY @@ -108644,14 +108728,14 @@ qVF izr qVF wNk -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc fYe vxX vxX @@ -108663,27 +108747,27 @@ foX aku aku ilp -ilp -jTB -rpC gOY -iAx +luh +tId +rdM +qXA boy gql abh -xaw +pEq uPL sSN nal gOY vxX -kkx +cxg vxX -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc cNc pNi kUb @@ -108893,9 +108977,9 @@ cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc wZz wZz qpj @@ -108904,7 +108988,7 @@ wZz cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -108920,11 +109004,11 @@ rji foX ilp ilp -jTB -jTB -jTB gOY -pQG +tqf +qfE +tKD +hNI atb qVB iOH @@ -108933,8 +109017,8 @@ gOY tDS cpJ gOY -kkx -kkx +cxg +cxg vxX nbu nbu @@ -108951,7 +109035,7 @@ oRf sYU hLj syl -mgF +vGG nDN nDN pPv @@ -109157,11 +109241,11 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -109176,13 +109260,13 @@ uOo aku aku ilp +ilp jTB -jTB -mHc -wnH +eTG +sZr gOY -nQl -jSR +nUN +rkK nTZ urY czh @@ -109190,8 +109274,8 @@ uPL pVG oLj gOY -ftW -kkx +wHl +cxg vxX nbu aXt @@ -109414,7 +109498,7 @@ cLf cLf cLf cLf -bwC +dUc cLf fYe fYe @@ -109434,28 +109518,28 @@ aku ilp ilp jTB -jGd -eBH -cQX -enX +jTB +olY +eNt +gOY rSB bwj mSG rSh -qOt +ivy gOY wOn gOY gOY -kkx -kkx +cxg +cxg vxX nbu aXt jyO qsa wVI -bwC +dUc rLK vYL jSu @@ -109671,7 +109755,7 @@ cLf cLf cLf cLf -bwC +dUc cLf vxX vxX @@ -109691,11 +109775,11 @@ aku ilp ilp jTB -dkr -hbH -naU -gsw -fSD +jGd +eBH +cIk +aqz +qXg lCw vlz fDz @@ -109704,8 +109788,8 @@ bPc efJ dPh gOY -kkx -kkx +cxg +cxg vxX nbu aXt @@ -109922,12 +110006,12 @@ cLf cLf cLf shs -bwC +dUc wfz -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc vxX vxX vxX @@ -109948,11 +110032,11 @@ uro rji ilp jTB -sqJ -wiT -rBt -aPG -qeY +dkr +hbH +naU +rwA +eCJ aMG vlz xTs @@ -109962,14 +110046,14 @@ rkI rYe gOY gOY -kkx +cxg vxX nbu nbu nbu nbu nbu -bwC +dUc utf qKj jSu @@ -110180,7 +110264,7 @@ shs shs shs cLf -bwC +dUc cLf cLf cLf @@ -110205,11 +110289,11 @@ aku ilp ilp jTB -dEn -lIn -tra -qGr -kKC +sqJ +wiT +rBt +aPG +cPu mqb vlz fDz @@ -110219,7 +110303,7 @@ fDz fDz gqV gOY -kkx +cxg vxX nbu pIV @@ -110437,7 +110521,7 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -110446,7 +110530,7 @@ cLf vxX cLf cLf -bwC +dUc cLf cLf cLf @@ -110462,10 +110546,10 @@ aku ilp ilp jTB -gbV -jqY -rus -fuF +dEn +lIn +tra +qGr gzF kEM fDz @@ -110474,16 +110558,16 @@ fDz oWy fDz dyd -vrG +bfq gOY -kkx +cxg vxX nbu pIV mBg rqJ wVI -bwC +dUc rLK nLD jSu @@ -110689,21 +110773,21 @@ cLf shs shs cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf @@ -110719,11 +110803,11 @@ aku ilp ilp jTB -cuA -cuA -nNl -uwV -vNl +gbV +jqY +rus +xpb +rfA nCo tGW tGW @@ -110733,7 +110817,7 @@ vvE aWM vzP gOY -kkx +cxg vxX nbu pIV @@ -110944,11 +111028,11 @@ cLf cLf cLf shs -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc pbP pih pbP @@ -110957,10 +111041,10 @@ pbP cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf @@ -110976,28 +111060,28 @@ aku ieo ilp jTB -jTB -kQB -ioL -gOY -aks +dYY +epB +mqn +dGi +hTv tTK tvB -cSI -xbg -egj -uPj -pqX -rTQ +fNi +nkM +vxZ +dyS +lfq +mDx gOY -kkx +cxg vxX nbu nbu nbu nbu nbu -bwC +dUc utf hon jSu @@ -111214,10 +111298,10 @@ pih cLf cLf tyd -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf @@ -111232,22 +111316,22 @@ uOo aku vfR ilp -ilp jTB jTB -jTB -gOY +pjK +ioL gOY +aks tTK -rFA -mHx -uaw -apA -deV -phq -rTQ -kkx -kkx +rtq +oTP +xfQ +cAG +xXF +sLr +mDx +cxg +cxg vxX nbu msY @@ -111471,10 +111555,10 @@ pih cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf pkl @@ -111489,29 +111573,29 @@ uOo aku aku fbN -gsW -gsW -mnS -mnS +rji +jTB +jTB +jTB gOY -iJZ -lcd -uwN -mEO -xbg -egj -fDI -pqX -xbg -kkx -kkx +gOY +tTK +dZQ +jvp +nkM +vxZ +pZK +lfq +nkM +cxg +cxg vxX nbu msY qNM fzM wVI -bwC +dUc rLK fMS jSu @@ -111728,10 +111812,10 @@ pih cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc rXt rXt rXt @@ -111746,22 +111830,22 @@ uOo aku aku pkw -mgi -rkd -aMS -hVm -mFa -elG -uXb -cmn -jgl -nUJ -lNx -ujW -dOt -hQR -bwC -kkx +gsW +ikJ +jtp +hPn +gOY +iJZ +lcd +tky +cQx +efL +cQu +wgI +vib +vMR +dUc +cxg vxX nbu msY @@ -112006,19 +112090,19 @@ aku ajs gop cqf -xJt -gOY -joD -ffK +hWl +hCB +cmn +fYW cut rcR -nUJ -xgy -gmC -ift -hQR -bwC -kkx +efL +miM +awf +egV +vMR +dUc +cxg vxX nbu nbu @@ -112242,10 +112326,10 @@ pih cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc rXt rXt rXt @@ -112263,18 +112347,18 @@ aku vjB jEw cmn -cqt +oyd gOY -kke -wmM -auA +lFI +kCh +nGb icz -nUJ -pGt -pGt -pGt -hQR -bwC +efL +nbS +nbS +nbS +vMR +dUc cLf vxX vxX @@ -112282,7 +112366,7 @@ vxX vxX vxX vxX -bwC +dUc wRN fdC uVP @@ -112499,10 +112583,10 @@ pih cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf pkl @@ -112523,23 +112607,23 @@ grm gsW gOY gOY +oxW gOY -roK gOY -xbg -xbg -xbg -xbg -xbg -bwC +nkM +nkM +nkM +nkM +nkM +dUc cLf -bwC +dUc vxX vxX vxX vxX vxX -bwC +dUc fTX rLK hfp @@ -112756,10 +112840,10 @@ pih cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf @@ -112777,37 +112861,37 @@ aku aku aku xAd -wfU -rbS +upd +upd kAI -ojR -lBm +cra +nNF uvx mna gXw gHL jGy moe -bwC +dUc cLf -bwC +dUc vxX vxX vxX vxX vxX vxX -bwC +dUc eTZ -bwC +dUc xLu rZB pLe -bwC +dUc lfG rZB pLe -bwC +dUc lfG aUx kUX @@ -113000,11 +113084,11 @@ cLf cLf cLf shs -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc pbP pih pbP @@ -113013,14 +113097,14 @@ pbP cLf cLf cLf -bwC +dUc fYe fYe wfz -bwC +dUc vxX -bwC -bwC +dUc +dUc ilp ilp ilp @@ -113034,8 +113118,8 @@ aku aku vfR vfJ -dGX -upd +pgI +vfJ moe jxe aaR @@ -113045,13 +113129,13 @@ uEV rRO yai moe -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc vxX vxX nbu @@ -113259,12 +113343,12 @@ cLf shs cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -113291,8 +113375,8 @@ tsz lJq obA vfJ -kBr -vfJ +dxZ +xrY moe tLh dlE @@ -113302,13 +113386,13 @@ rxn rRO mIa moe -bwC +dUc cLf iUF cLf cLf cLf -bwC +dUc vxX vxX nbu @@ -113335,8 +113419,8 @@ kGZ vuh wmr bBr -bwC -bwC +dUc +dUc jnY alX kQF @@ -113516,12 +113600,12 @@ cLf shs shs cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -113559,13 +113643,13 @@ rxn rRO iNC moe -bwC +dUc cLf iUF cLf cLf cLf -bwC +dUc vxX vxX nbu @@ -113592,8 +113676,8 @@ nLd owL fpg bBr -bwC -bwC +dUc +dUc jnY alX nPW @@ -113777,13 +113861,13 @@ shs shs shs shs -bwC +dUc wfz -bwC +dUc shs shs shs -bwC +dUc vxX vxX vxX @@ -113804,9 +113888,9 @@ lJq jBM lJq obA -qnV -iPW -hkG +daT +eyx +eyx moe mJU bpW @@ -113816,13 +113900,13 @@ hmG gME xGg moe -bwC +dUc cLf iUF cLf cLf cLf -bwC +dUc vxX vxX nbu @@ -113849,7 +113933,7 @@ bBr kUX kUX kUX -bwC +dUc vxX uFC spr @@ -114073,13 +114157,13 @@ moe fDj fDj moe -bwC +dUc cLf iUF cLf cLf cLf -bwC +dUc vxX vxX nbu @@ -114098,11 +114182,11 @@ nbu vxX mUQ cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf vxX vxX @@ -114327,16 +114411,16 @@ fDj moe iyE moe -bwC -bwC -bwC +dUc +dUc +dUc nmN cLf iUF cLf cLf cLf -bwC +dUc cLf vxX vxX @@ -114355,18 +114439,18 @@ fYe fYe uVI cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf vxX vxX vxX vxX -bwC +dUc cLf mDV uFC @@ -114578,13 +114662,13 @@ etW cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc moe aub moe -bwC +dUc cLf cLf cLf @@ -114593,12 +114677,12 @@ iUF cLf cLf cLf -bwC +dUc cLf cLf vxX cLf -bwC +dUc vxX vxX vxX @@ -114612,18 +114696,18 @@ fYe vxX mUQ vxX -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf vxX vxX vxX -bwC +dUc cLf mDV uFC @@ -114827,22 +114911,22 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc iUF iUF cLf cLf cLf -bwC +dUc ojz -eEX +aHZ ojz -bwC -bwC +dUc +dUc iUF iUF iUF @@ -114850,12 +114934,12 @@ iUF cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -114869,19 +114953,19 @@ vxX vxX vxX vxX -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf vxX vxX vxX vxX -bwC -bwC +dUc +dUc mDV uFC ivC @@ -114895,8 +114979,8 @@ ncv ncm uFC vxX -kkx -kkx +cxg +cxg xzT tgj tgj @@ -115093,7 +115177,7 @@ cLf iUF iUF iUF -bwC +dUc nmN dXU dXU @@ -115107,17 +115191,17 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -115126,11 +115210,11 @@ cLf cLf vxX vxX -bwC +dUc iUF iUF iUF -bwC +dUc vxX vxX vxX @@ -115154,10 +115238,10 @@ uFC vxX vxX vxX -kkx -kkx -kkx -kkx +cxg +cxg +cxg +cxg vxX vxX vxX @@ -115352,9 +115436,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -115364,17 +115448,17 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -115396,7 +115480,7 @@ mUQ fYe cLf cLf -bwC +dUc uFC kEu kEu @@ -115408,7 +115492,7 @@ sIm sIm kEu uFC -kuk +vaU vxX vxX vxX @@ -115608,11 +115692,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -115621,17 +115705,17 @@ cLf cLf cLf cLf -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc +dUc cLf cLf cLf @@ -115864,13 +115948,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -115878,17 +115962,17 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -116121,13 +116205,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -116135,17 +116219,17 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -116379,11 +116463,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -116392,17 +116476,17 @@ cLf cLf cLf cLf -bwC -bwC +dUc +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC -bwC +dUc +dUc cLf cLf cLf @@ -116637,9 +116721,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -116650,15 +116734,15 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -116893,11 +116977,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -116907,15 +116991,15 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -117149,13 +117233,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -117164,15 +117248,15 @@ cLf cLf cLf shs -bwC -bwC +dUc +dUc jQS jQS jQS jQS jQS -bwC -bwC +dUc +dUc shs cLf cLf @@ -117406,13 +117490,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -117421,7 +117505,7 @@ cLf cLf cLf shs -bwC +dUc cLf jQS lgO @@ -117429,9 +117513,9 @@ czY kOL jQS cLf -bwC +dUc shs -bwC +dUc cLf cLf cLf @@ -117664,11 +117748,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -117676,19 +117760,19 @@ shs shs shs shs -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc jQS pRN kOL sgc jQS -bwC -bwC +dUc +dUc cLf -bwC +dUc shs shs shs @@ -117922,9 +118006,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -118178,15 +118262,15 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf -bwC +dUc cLf cLf cLf @@ -118206,8 +118290,8 @@ jQS uep qDP qDP -bwC -bwC +dUc +dUc cLf cLf cLf @@ -118434,37 +118518,37 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc jQS tLO jQS -jsr +sDq aJA -kLQ +umA beE asn hBF sAf jSV -bEY +fjb aJA -hfX +lny jQS ifV jQS qDP cLf -bwC +dUc cLf cLf cLf @@ -118691,17 +118775,17 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC -bwC -bwC -bwC -bwC +dUc +dUc +dUc +dUc +dUc jQS xnB jQS @@ -118949,11 +119033,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -119207,9 +119291,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -119463,16 +119547,16 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf shs -bwC +dUc jQS hAL jQS @@ -119490,8 +119574,8 @@ tVV jQS ucG jQS -bwC -bwC +dUc +dUc shs cLf cLf @@ -119719,13 +119803,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf shs @@ -119976,13 +120060,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -120234,11 +120318,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -120252,7 +120336,7 @@ jQS ufD jQS tMz -evA +krz tMz jQS sOj @@ -120492,9 +120576,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -120748,11 +120832,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -121004,13 +121088,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf fZF @@ -121261,13 +121345,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf fZF @@ -121291,7 +121375,7 @@ jQS jQS jQS fZF -bwC +dUc shs cLf cLf @@ -121519,11 +121603,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -121777,9 +121861,9 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf @@ -121805,7 +121889,7 @@ wTs jQS jQS fZF -bwC +dUc shs cLf cLf @@ -122033,11 +122117,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -122289,15 +122373,15 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc fZF jQS jQS @@ -122546,15 +122630,15 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc fZF jQS jQS @@ -122563,11 +122647,11 @@ jQS jQS jQS jQS -dQJ +gmm pXV hNP pXV -vns +uak jQS jQS jQS @@ -122804,11 +122888,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -122819,20 +122903,20 @@ fZF fZF jQS jQS -rxr -rxr -nMK -epy -rxr -rxr -rxr +xna +xna +fsV +bfX +xna +xna +xna jQS jQS fZF fZF fZF fZF -bwC +dUc cLf cLf cLf @@ -123062,34 +123146,34 @@ cLf cLf cLf cLf -bwC +dUc cLf -bwC +dUc cLf cLf cLf cLf cLf cLf -bwC +dUc cLf fZF jQS jQS -dLd -rxr -rxr -nAt -rxr -rxr -rxr +eFJ +xna +xna +tBC +xna +xna +xna jQS jQS fZF tyd cLf -bwC -bwC +dUc +dUc cLf cLf cLf @@ -123318,28 +123402,28 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf cLf shs shs -bwC +dUc fZF jQS jQS -rxr -rxr -pRb -jky -pRb -ehN -xcX +xna +xna +qEr +hFN +qEr +khJ +sug jQS jQS fZF @@ -123574,13 +123658,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -123590,13 +123674,13 @@ cLf fZF jQS jQS -rxr -rxr -rxr -rxr -rxr -rxr -ygW +xna +xna +xna +xna +xna +xna +lHp jQS jQS fZF @@ -123831,13 +123915,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -123848,11 +123932,11 @@ fZF jQS jQS jQS -rxr -fOu -uIu -fQE -rxr +xna +oVV +dJM +jvV +xna jQS jQS jQS @@ -124089,11 +124173,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -124113,7 +124197,7 @@ jQS jQS jQS fZF -bwC +dUc cLf cLf cLf @@ -124347,9 +124431,9 @@ cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc cLf cLf cLf @@ -124359,7 +124443,7 @@ cLf cLf cLf cLf -bwC +dUc fZF jQS jQS @@ -124370,7 +124454,7 @@ jQS jQS fZF cLf -bwC +dUc cLf cLf cLf @@ -124603,11 +124687,11 @@ cLf cLf cLf cLf -bwC -bwC +dUc +dUc nmN -bwC -bwC +dUc +dUc cLf cLf cLf @@ -124616,7 +124700,7 @@ cLf cLf cLf cLf -bwC +dUc cLf fZF fZF @@ -124627,7 +124711,7 @@ fZF fZF cLf cLf -bwC +dUc cLf cLf cLf @@ -124860,11 +124944,11 @@ cLf cLf cLf cLf -bwC +dUc xUA uuN oJv -bwC +dUc cLf cLf cLf @@ -124873,18 +124957,18 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -125117,11 +125201,11 @@ cLf cLf cLf cLf -bwC -bwC +dUc +dUc nmN -bwC -bwC +dUc +dUc cLf cLf cLf @@ -125130,18 +125214,18 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -125375,9 +125459,9 @@ cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc cLf cLf cLf @@ -125390,11 +125474,11 @@ shs shs cLf cLf -bwC +dUc cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -125631,11 +125715,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -125887,13 +125971,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -126144,13 +126228,13 @@ cLf cLf cLf cLf -bwC +dUc cLf cLf cLf cLf cLf -bwC +dUc cLf cLf cLf @@ -126402,11 +126486,11 @@ cLf cLf cLf nmN -bwC -bwC +dUc +dUc cLf -bwC -bwC +dUc +dUc nmN cLf cLf @@ -126660,9 +126744,9 @@ cLf cLf cLf cLf -bwC -bwC -bwC +dUc +dUc +dUc cLf cLf cLf @@ -144425,7 +144509,7 @@ cts caH lCA pux -kVh +eYP iJm mUQ mUQ @@ -145450,10 +145534,10 @@ vxX iJm iJm eYP -kVh +eYP qMK tAk -pxU +gHN iJm iJm fnh @@ -145910,7 +145994,7 @@ hhX hhX hhX hen -gEp +fOe hen hen hen @@ -146736,10 +146820,10 @@ hvw jiP uKm yew -stk +jSE hgS jHQ -jHQ +stk jHQ bhV jHQ @@ -147248,9 +147332,9 @@ vxX unk ibx vxX -vxX +unk siU -spU +pxU kYT bUZ vzG @@ -147505,10 +147589,10 @@ wOU vxX ibx vxX -vxX -fnh +bGk +bGk spU -kYT +bGk rRy cOb ycI @@ -147736,7 +147820,7 @@ bBo iaN fON jds -bzx +gTF sdc sdc rWv @@ -147755,7 +147839,7 @@ mUi fpx rDE uIx -fkG +dCv fxF fxF wOU @@ -147763,9 +147847,9 @@ vxX taj vxX bGk -kYT +kVh rEV -kYT +bGk bGk ncR ncR @@ -148012,7 +148096,7 @@ mUi rxK tCm lwu -xwG +tMu fxF fxF wOU @@ -148283,7 +148367,7 @@ dhj xmy sZH pWr -wEj +pNW ahq kuI sKt @@ -149552,7 +149636,7 @@ gli gli wEd wOU -rQy +ntd pZj wOU vxX @@ -151347,7 +151431,7 @@ sdc rDa ljk jTa -him +iII vOu dDm xeA @@ -153400,7 +153484,7 @@ oMn ocJ brc ofc -jnL +qUz hhU xCI gYW @@ -154932,7 +155016,7 @@ vxX gYW dum hdN -aPM +bpN hdN gYW ucb @@ -155964,7 +156048,7 @@ mMN jVk jVk fuk -wos +tFf xiM hVN aLN @@ -156208,10 +156292,10 @@ vxX vxX unk unk -kkx -kkx -kkx -kkx +cxg +cxg +cxg +cxg unk unk vxX @@ -156464,12 +156548,12 @@ vxX vxX vxX unk -kkx -kkx -kkx +cxg +cxg +cxg nQT -kkx -kkx +cxg +cxg unk jCD jCD @@ -156507,7 +156591,7 @@ sxV sxV hrI leZ -rRP +qgy uXD uXD uXD @@ -156721,12 +156805,12 @@ dsG vxX vxX unk -kkx +cxg joM joM joM joM -kkx +cxg eOx wMY apb @@ -156978,12 +157062,12 @@ dsG dsG dsG any -kkx +cxg joM joM joM joM -kkx +cxg eOx fFt cTH @@ -157235,12 +157319,12 @@ fYe fYe fYe unk -kkx -kkx -kkx -kkx -kkx -kkx +cxg +cxg +cxg +cxg +cxg +cxg unk jCD jCD @@ -157493,10 +157577,10 @@ fYe fYe unk unk -kkx -kkx -kkx -kkx +cxg +cxg +cxg +cxg unk unk vxX @@ -157528,7 +157612,7 @@ oKx oKx dzu oKx -jsX +fuZ mCn cUv nsY @@ -166973,7 +167057,7 @@ oID hhX hhX hhX -kkx +cxg srs bFS bFS @@ -167229,7 +167313,7 @@ hhX oID jVV jVV -kkx +cxg pvT srs upF @@ -167486,8 +167570,8 @@ hhX oID hhX hhX -kkx -kkx +cxg +cxg srs mCt riQ @@ -167744,7 +167828,7 @@ oID hhX hhX hhX -kkx +cxg srs riQ bNI @@ -168553,7 +168637,7 @@ vxX vxX uet gMk -pti +tui gMk gMk gMk @@ -169028,7 +169112,7 @@ hhX oID hhX hhX -kkx +cxg mQE mQE gwF @@ -169284,8 +169368,8 @@ hhX hhX hhX hhX -kkx -kkx +cxg +cxg vxX imZ mQE @@ -169355,7 +169439,7 @@ mCN xAy cLf hhX -uEn +ifd bkk eng msi @@ -169541,7 +169625,7 @@ hhX hhX hhX hhX -kkx +cxg pvT vxX vxX @@ -169612,7 +169696,7 @@ gVC xAy cLf hhX -uEn +ifd bkk qwG msi @@ -169869,7 +169953,7 @@ sWT bdC fSP tPb -pKn +vgW uJV qwG eeB @@ -170126,7 +170210,7 @@ pbY xAy cLf hhX -uEn +ifd bkk oJU eeB @@ -170383,7 +170467,7 @@ rCv xAy cLf hhX -uEn +ifd bkk qwG eeB @@ -171345,7 +171429,7 @@ uVI pFE kWb kWb -vVc +xWR qDl qDl kdR @@ -171355,7 +171439,7 @@ kWb mjq qDl qDl -xRu +aKU kWb kWb vxX @@ -172386,7 +172470,7 @@ kWb kWb kWb kWb -sJz +rqC hhX hhX hhX @@ -172487,8 +172571,8 @@ qzZ qzZ igG mtH -jXv -aDF +qjk +dLY uJc mml mml @@ -172654,7 +172738,7 @@ fYe lJq raz lAc -bPx +irf tsy jCT rin @@ -172737,7 +172821,7 @@ jdd hhX hhX hhX -aDF +dLY hhX hhX hhX @@ -173250,9 +173334,9 @@ vxX jVV pnS hhX -dAn +ebN hhX -eNk +pAK hhX vUj mml @@ -173406,7 +173490,7 @@ vxX hhX hhX jVV -iEq +nQm jVV hhX hhX @@ -176517,7 +176601,7 @@ raz raz nzk fpY -clQ +fEW ssg vtN ylR @@ -176773,8 +176857,8 @@ iSz uba vfJ nzk -qmI -wYI +fpY +clQ elT elT elT @@ -177030,14 +177114,14 @@ vmk uba pBN nzk -hEi -hEi -wFI -mmU -ibE -wts -oFp -oFp +tEm +wYI +kbc +kbc +kbc +kbc +iHV +iHV tcx qJN uHQ @@ -177288,13 +177372,13 @@ wtI vfJ vfJ hEi -myW -myW -fsZ -jfB -sab -sab -jzM +hEi +wFI +mmU +ibE +wts +hmd +bIP iFN kHf xkL @@ -177545,13 +177629,13 @@ bfp vfJ mNZ hEi -mlm -rsI -gmH -iVp +myW +myW +fsZ +jfB sab sab -sdn +jzM iFN aXl fyJ @@ -177802,13 +177886,13 @@ lVB vfJ mNZ hEi -hUH -dfk +mlm +rsI gmH -rXS -tOL -fPv -iAM +iVp +sab +sab +sdn iFN mZn oND @@ -178059,13 +178143,13 @@ mNZ mNZ mNZ hEi -hEi -hEi -hEi -hEi -hEi -hEi -lVy +hUH +dfk +gmH +rXS +tOL +fPv +iAM iFN rEv vjQ @@ -178315,14 +178399,14 @@ mNZ mNZ mNZ mNZ -mNZ -mNZ -ivx -ivx -ivx -ivx -wkG -nIQ +kxB +kxB +kxB +kxB +kxB +kxB +moe +eLb iFN iFN iFN @@ -178575,11 +178659,11 @@ mNZ mNZ mNZ ivx -moe -wkG wkG -wkG -sar +jYT +guJ +bXM +rIJ moe vxX vxX @@ -178834,9 +178918,9 @@ mNZ gEA wkG jYT -jYT -jYT -rIJ +wkG +wkG +wkG moe vxX vxX @@ -179092,9 +179176,9 @@ ivx wkG jYT wkG -wkG -wkG -moe +ivx +ivx +ivx vxX vxX vxX @@ -186042,11 +186126,11 @@ wPP tIs tPE lKY -bBJ +fTO wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO rmi lKY @@ -186299,11 +186383,11 @@ jQS uVe tPE avA -iox +uke wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO xGG uBm @@ -186556,11 +186640,11 @@ jQS qZX tPE lKY -oIu +iQo wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO bLI lKY @@ -186816,7 +186900,7 @@ cWL tMz jQS wmO -inz +htn jgA jQS tMz @@ -187066,11 +187150,11 @@ hhX hhX fZF jQS -pjL +lCS jEt gdM rdn -dck +dJr wnA wnA wnA @@ -187080,7 +187164,7 @@ bUl cNh iXB jEt -nfk +svE jQS fZF hhX @@ -187323,7 +187407,7 @@ hhX hhX fZF jQS -fSi +oaz fXW jej krO @@ -188355,13 +188439,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -ybO -gQq -gQq -gQq +orY +orY +orY +bqs +orY +orY +orY jQS fZF hhX @@ -188612,13 +188696,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -ybO -gQq -gQq -gQq +orY +orY +orY +bqs +orY +orY +orY jQS fZF hhX @@ -188869,13 +188953,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -gQq -gQq -gQq -gQq +orY +orY +orY +orY +orY +orY +orY jQS fZF hhX @@ -189126,13 +189210,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -gQq -gQq -gQq -gQq +orY +orY +orY +orY +orY +orY +orY jQS fZF hhX @@ -189384,11 +189468,11 @@ hhX fZF jQS jQS -gQq -gQq -gQq -gQq -gQq +orY +orY +orY +orY +orY jQS jQS fZF @@ -197181,8 +197265,8 @@ hhX hhX hhX hhX -kkx -kkx +cxg +cxg hhX hhX hhX @@ -197437,10 +197521,10 @@ hhX hhX hhX hhX -kkx -fcC -unZ -kkx +cxg +cKD +wSj +cxg hhX hhX hhX @@ -197693,11 +197777,11 @@ hhX hhX hhX hhX -kkx -unZ -gFe -unZ -unZ +cxg +wSj +pwU +wSj +wSj hhX hhX hhX @@ -197950,10 +198034,10 @@ hhX hhX hhX hhX -kkx -unZ -unZ -unZ +cxg +wSj +wSj +wSj hhX hhX hhX diff --git a/_maps/shuttles/cargo_delta.dmm b/_maps/shuttles/cargo_delta.dmm index 75b2b6cb23270..c12c7c1787841 100644 --- a/_maps/shuttles/cargo_delta.dmm +++ b/_maps/shuttles/cargo_delta.dmm @@ -79,7 +79,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, diff --git a/_maps/shuttles/cargo_kilo.dmm b/_maps/shuttles/cargo_kilo.dmm index 948369f49085a..e0dc7be8bef72 100644 --- a/_maps/shuttles/cargo_kilo.dmm +++ b/_maps/shuttles/cargo_kilo.dmm @@ -91,7 +91,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) diff --git a/_maps/shuttles/cargo_pubby.dmm b/_maps/shuttles/cargo_pubby.dmm index c3d064bc59d17..4ff003c70b3a1 100644 --- a/_maps/shuttles/cargo_pubby.dmm +++ b/_maps/shuttles/cargo_pubby.dmm @@ -140,7 +140,8 @@ /area/shuttle/supply) "R" = ( /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /obj/machinery/door/airlock/shuttle{ name = "Supply Shuttle Airlock" diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index 41860e3beabd8..fd82a5b0e2bd7 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -158,7 +158,8 @@ /obj/docking_port/mobile/emergency{ dir = 8; name = "Birdboat emergency escape shuttle"; - port_direction = 4 + port_direction = 2; + preferred_direction = 8 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_birdshot.dmm b/_maps/shuttles/emergency_birdshot.dmm index 0e265110bde50..bbcad398257f1 100644 --- a/_maps/shuttles/emergency_birdshot.dmm +++ b/_maps/shuttles/emergency_birdshot.dmm @@ -9,9 +9,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) -"ax" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/shuttle/escape) "aQ" = ( /obj/effect/decal/cleanable/insectguts, /turf/open/floor/mineral/plastitanium/red, @@ -235,7 +232,8 @@ }, /obj/docking_port/mobile/emergency{ dir = 8; - name = "birdshot emergency shuttle" + name = "birdshot emergency shuttle"; + port_direction = 4 }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) @@ -1001,15 +999,15 @@ nQ nQ nQ nQ -ax +LX LX rZ LX -ax +LX nQ nQ nQ -ax +LX rZ LX LX @@ -1018,7 +1016,7 @@ LX LX LX LX -ax +LX nQ "} (2,1,1) = {" @@ -1030,7 +1028,7 @@ nQ nQ nQ nQ -ax +LX LX LX ON @@ -1058,7 +1056,7 @@ nQ nQ nQ nQ -ax +LX rZ rZ LX @@ -1086,7 +1084,7 @@ vk (4,1,1) = {" nQ nQ -ax +LX LX LX LX @@ -1185,13 +1183,13 @@ ye LX mU nQ -ax +LX LX LX hF LX LX -ax +LX nQ nQ mU @@ -1200,9 +1198,9 @@ hF LX rZ LX -ax +LX nQ -ax +LX LX nQ nQ @@ -1309,13 +1307,13 @@ eR LX mU nQ -ax +LX LX LX hF LX LX -ax +LX nQ nQ mU @@ -1324,7 +1322,7 @@ hF LX rZ LX -ax +LX nQ bo mU @@ -1396,7 +1394,7 @@ ST (14,1,1) = {" nQ nQ -ax +LX LX LX LX @@ -1430,7 +1428,7 @@ nQ nQ nQ nQ -ax +LX rZ rZ LX @@ -1464,7 +1462,7 @@ nQ nQ nQ nQ -ax +LX LX LX dv @@ -1497,15 +1495,15 @@ nQ nQ nQ nQ -ax +LX Xy rZ Xy -ax +LX nQ nQ nQ -ax +LX ll LX lp @@ -1514,6 +1512,6 @@ LX rZ rZ rZ -ax +LX nQ "} diff --git a/_maps/shuttles/emergency_humpback.dmm b/_maps/shuttles/emergency_humpback.dmm index f4c50bf6b84ec..f76d06925a343 100644 --- a/_maps/shuttles/emergency_humpback.dmm +++ b/_maps/shuttles/emergency_humpback.dmm @@ -750,7 +750,10 @@ /obj/machinery/door/airlock/grunge{ name = "Emergency Shuttle Airlock" }, -/obj/docking_port/mobile/emergency, +/obj/docking_port/mobile/emergency{ + port_direction = 4; + preferred_direction = 2 + }, /turf/open/floor/mineral/plastitanium/red, /area/shuttle/escape) "UR" = ( diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm index 4041e4e0588c5..da8641ee0b1d6 100644 --- a/_maps/shuttles/emergency_monastery.dmm +++ b/_maps/shuttles/emergency_monastery.dmm @@ -8,10 +8,6 @@ }, /turf/open/floor/iron/dark, /area/shuttle/escape) -"af" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, -/area/shuttle/escape) "ap" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -25,10 +21,6 @@ }, /turf/open/floor/carpet, /area/shuttle/escape) -"as" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, -/area/shuttle/escape) "aF" = ( /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -58,11 +50,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/closed/wall, /area/shuttle/escape) -"aW" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space/basic, -/area/shuttle/escape) "bb" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -176,6 +163,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/shuttle/escape) +"cH" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/space, +/area/shuttle/escape) "cT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -350,11 +341,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/dark, /area/shuttle/escape) -"fA" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, -/area/shuttle/escape) "fL" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/lattice, @@ -715,14 +701,15 @@ /obj/machinery/door/airlock/external/ruin, /turf/open/floor/plating, /area/shuttle/escape) -"lj" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/shuttle/escape) "lm" = ( /obj/machinery/meter, /turf/open/floor/plating, /area/shuttle/escape) +"ln" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/space, +/area/shuttle/escape) "lB" = ( /turf/open/floor/iron/chapel{ dir = 8 @@ -750,6 +737,10 @@ }, /turf/open/floor/iron, /area/shuttle/escape) +"ml" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space, +/area/shuttle/escape) "mm" = ( /obj/structure/lattice/catwalk, /turf/open/space, @@ -1160,6 +1151,11 @@ }, /turf/open/floor/iron/dark, /area/shuttle/escape) +"rZ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/lattice, +/turf/open/space/basic, +/area/shuttle/escape) "sa" = ( /obj/structure/chair/wood{ dir = 4 @@ -1258,6 +1254,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/shuttle/escape) +"ti" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/shuttle/escape) "tm" = ( /obj/structure/table/wood/fancy, /obj/item/storage/box/matches{ @@ -1323,6 +1323,10 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/shuttle/escape/brig) +"uP" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/space, +/area/shuttle/escape) "uX" = ( /obj/machinery/power/smes, /turf/open/floor/plating, @@ -2353,10 +2357,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/dark, /area/shuttle/escape) -"Jl" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, -/area/shuttle/escape) "Jp" = ( /obj/structure/table, /obj/item/crowbar, @@ -2447,8 +2447,7 @@ "JZ" = ( /obj/docking_port/mobile/emergency{ movement_force = list("KNOCKDOWN"=3,"THROW"=6); - name = "\proper a monastery with engines strapped to it"; - port_direction = 1 + name = "\proper a monastery with engines strapped to it" }, /turf/closed/mineral, /area/shuttle/escape) @@ -2605,10 +2604,6 @@ }, /turf/open/floor/iron/dark, /area/shuttle/escape) -"Mt" = ( -/obj/structure/lattice, -/turf/open/space, -/area/shuttle/escape) "MC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2800,6 +2795,10 @@ /obj/effect/station_crash/devastating, /turf/open/floor/iron/dark, /area/shuttle/escape) +"OL" = ( +/obj/structure/lattice, +/turf/open/space, +/area/shuttle/escape) "OM" = ( /obj/item/cultivator, /turf/open/floor/grass, @@ -4296,7 +4295,7 @@ nr nr nr nr -af +uP hq JG JG @@ -4833,7 +4832,7 @@ JG JG JG PB -lj +ti iw iw iw @@ -4915,7 +4914,7 @@ JG JG JG PB -lj +ti iw JG JG @@ -4997,10 +4996,10 @@ JG JG JG PB -lj -Mt -af -fA +ti +OL +uP +ln zE zE AJ @@ -5074,7 +5073,7 @@ JG JG JG iw -Mt +OL iw iw iw @@ -5159,7 +5158,7 @@ iw JG JG dp -af +uP zE Zf zE @@ -5238,7 +5237,7 @@ JG JG JG bd -Mt +OL bT zE zE @@ -5320,7 +5319,7 @@ aH iw iw iw -as +cH zE zE jc @@ -5397,10 +5396,10 @@ JG JG "} (21,1,1) = {" -af -af +uP +uP hq -aW +rZ hq bl zE @@ -5807,7 +5806,7 @@ JG JG "} (26,1,1) = {" -as +cH zE ox bb @@ -6226,7 +6225,7 @@ LK zE LK dX -Jl +ml fm zE zE @@ -6303,9 +6302,9 @@ JG JG IM IM -Jl -Jl -Jl +ml +ml +ml IM JG JG @@ -6393,7 +6392,7 @@ JG JG JG JG -Jl +ml fm zE zE @@ -6644,8 +6643,8 @@ JG JG JG JG -Jl -Jl +ml +ml jS zE ko @@ -6893,7 +6892,7 @@ JG JG JG JG -Mt +OL mm kJ IM diff --git a/_maps/shuttles/emergency_northstar.dmm b/_maps/shuttles/emergency_northstar.dmm index e934a65b722fa..798a4d9671a4e 100644 --- a/_maps/shuttles/emergency_northstar.dmm +++ b/_maps/shuttles/emergency_northstar.dmm @@ -183,10 +183,10 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "qf" = ( -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "qK" = ( /obj/machinery/stasis, @@ -347,7 +347,7 @@ /obj/machinery/door/airlock/survival_pod/glass{ name = "Emergency Shuttle Treatment" }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "Eh" = ( /obj/machinery/power/shuttle_engine/propulsion/left, diff --git a/_maps/shuttles/ert_bounty.dmm b/_maps/shuttles/ert_bounty.dmm index 03be12a36a771..b1fbf895fa586 100644 --- a/_maps/shuttles/ert_bounty.dmm +++ b/_maps/shuttles/ert_bounty.dmm @@ -18,7 +18,9 @@ movement_force = list("KNOCKDOWN"=0,"THROW"=0); name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 4; + preferred_direction = 4 }, /obj/structure/fans/tiny, /turf/open/floor/pod/dark, @@ -205,7 +207,9 @@ /area/shuttle/hunter) "H" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ - dir = 8 + dir = 8; + y_offset = 6; + x_offset = 3 }, /turf/open/floor/pod/dark, /area/shuttle/hunter) diff --git a/_maps/shuttles/escape_pod_large.dmm b/_maps/shuttles/escape_pod_large.dmm index d803a681abe8c..9877e44bf1241 100644 --- a/_maps/shuttles/escape_pod_large.dmm +++ b/_maps/shuttles/escape_pod_large.dmm @@ -58,7 +58,9 @@ /obj/machinery/door/airlock/titanium{ name = "Shuttle Airlock" }, -/obj/docking_port/mobile/monastery, +/obj/docking_port/mobile/monastery{ + port_direction = 2 + }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) "W" = ( diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm index 69a4d6fa18cec..42366d373d8d3 100644 --- a/_maps/shuttles/ferry_base.dmm +++ b/_maps/shuttles/ferry_base.dmm @@ -48,7 +48,7 @@ dir = 8; shuttle_id = "ferry"; name = "ferry shuttle"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index b5bb7186693e8..5bb79a3e56ed7 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -142,7 +142,7 @@ dir = 8; shuttle_id = "ferry"; name = "The Lighthouse"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index fc986bcda5030..a4fd0c9e19b74 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -105,7 +105,7 @@ dir = 8; shuttle_id = "ferry"; name = "ferry shuttle"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/iron/freezer, /area/shuttle/transport) diff --git a/_maps/shuttles/hunter_bounty.dmm b/_maps/shuttles/hunter_bounty.dmm index 3087fa376fee5..ba752de932b9b 100644 --- a/_maps/shuttles/hunter_bounty.dmm +++ b/_maps/shuttles/hunter_bounty.dmm @@ -149,7 +149,9 @@ /area/shuttle/hunter) "I" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ - dir = 8 + dir = 8; + y_offset = 6; + x_offset = 3 }, /turf/open/floor/pod/dark, /area/shuttle/hunter) @@ -232,7 +234,9 @@ movement_force = list("KNOCKDOWN"=0,"THROW"=0); name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 4; + preferred_direction = 4 }, /obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/access/all/hunter, diff --git a/_maps/shuttles/hunter_mi13_foodtruck.dmm b/_maps/shuttles/hunter_mi13_foodtruck.dmm index 9b42fab671f61..5fe7324e8e83b 100644 --- a/_maps/shuttles/hunter_mi13_foodtruck.dmm +++ b/_maps/shuttles/hunter_mi13_foodtruck.dmm @@ -509,8 +509,8 @@ /area/shuttle/hunter/mi13_foodtruck) "Ak" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ - x_offset = -6; - y_offset = -7 + x_offset = 6; + y_offset = 1 }, /obj/structure/cable/layer1, /turf/open/floor/circuit/red/off, diff --git a/_maps/shuttles/hunter_psyker.dmm b/_maps/shuttles/hunter_psyker.dmm index e4b8ed5447822..980bb55212260 100644 --- a/_maps/shuttles/hunter_psyker.dmm +++ b/_maps/shuttles/hunter_psyker.dmm @@ -180,7 +180,9 @@ movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 8; + preferred_direction = 8 }, /turf/open/floor/catwalk_floor, /area/shuttle/hunter) @@ -395,7 +397,9 @@ /area/shuttle/hunter) "tT" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker{ - dir = 4 + dir = 4; + view_range = 12; + y_offset = 12 }, /obj/effect/turf_decal/box/white, /turf/open/floor/iron/dark/textured, diff --git a/_maps/shuttles/hunter_russian.dmm b/_maps/shuttles/hunter_russian.dmm index 214705cfb1719..3f3f24fee5730 100644 --- a/_maps/shuttles/hunter_russian.dmm +++ b/_maps/shuttles/hunter_russian.dmm @@ -686,7 +686,9 @@ movement_force = list("KNOCKDOWN"=0,"THROW"=0); name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 4; + preferred_direction = 4 }, /obj/docking_port/stationary{ dwidth = 11; @@ -724,8 +726,8 @@ "Zu" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ dir = 8; - x_offset = 0; - y_offset = 3 + x_offset = -2; + y_offset = 6 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium/red, diff --git a/_maps/shuttles/hunter_space_cop.dmm b/_maps/shuttles/hunter_space_cop.dmm index 50e2093174d08..a215ff7091612 100644 --- a/_maps/shuttles/hunter_space_cop.dmm +++ b/_maps/shuttles/hunter_space_cop.dmm @@ -3,7 +3,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ dir = 8; view_range = 7; - x_offset = 6 + x_offset = 5 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/hunter) @@ -125,7 +125,9 @@ dir = 4; name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 2; + preferred_direction = 4 }, /obj/machinery/door/poddoor/shutters{ id = "Interpolship" diff --git a/_maps/shuttles/pirate_grey.dmm b/_maps/shuttles/pirate_grey.dmm index 22356be732c36..db02acbdd48f5 100644 --- a/_maps/shuttles/pirate_grey.dmm +++ b/_maps/shuttles/pirate_grey.dmm @@ -1495,9 +1495,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/shuttle/pirate) -"ZU" = ( -/turf/closed/wall, -/area/shuttle/pirate) (1,1,1) = {" je @@ -1671,7 +1668,7 @@ qm Ti "} (10,1,1) = {" -ZU +Pn Ut kw CH @@ -1686,7 +1683,7 @@ Yj rV Tq uE -ZU +Pn HD "} (11,1,1) = {" @@ -1705,7 +1702,7 @@ wX Oa Tq Lo -ZU +Pn ei "} (12,1,1) = {" @@ -1714,7 +1711,7 @@ sB GE Yj Nu -ZU +Pn am Eq yN @@ -1731,7 +1728,7 @@ HD HD XX vJ -ZU +Pn SB Nm Vw @@ -1743,14 +1740,14 @@ Sh gQ dd xy -ZU +Pn HD "} (14,1,1) = {" pk pS pU -ZU +Pn QO Ac Wc @@ -1766,10 +1763,10 @@ Sh zB "} (15,1,1) = {" -ZU +Pn dI Sv -ZU +Pn Bu xO yf @@ -1788,7 +1785,7 @@ zB zB vM lO -ZU +Pn tJ xO ax @@ -1852,17 +1849,17 @@ sm CY fj DG -ZU +Pn Ci Sh Gb xm -ZU +Pn je "} (20,1,1) = {" je -ZU +Pn ia NI yU @@ -1871,18 +1868,18 @@ bv aD cJ tU -ZU +Pn xl Sh AR lO -ZU +Pn je "} (21,1,1) = {" je -ZU -ZU +Pn +Pn xm yU OG @@ -1890,30 +1887,30 @@ qo pT De sh -ZU +Pn Zc -ZU +Pn pB -ZU -ZU +Pn +Pn je "} (22,1,1) = {" je je -ZU +Pn EA ll FI Hh -ZU -ZU +Pn +Pn Hh -ZU +Pn gz -ZU +Pn RX -ZU +Pn je je "} @@ -1930,8 +1927,8 @@ ti Yf FI aV -ZU -ZU +Pn +Pn je je je @@ -1949,7 +1946,7 @@ Am FT pk pk -ZU +Pn je je je @@ -1962,8 +1959,8 @@ je je pk zB -ZU -ZU +Pn +Pn zB pk pk diff --git a/_maps/shuttles/pirate_silverscale.dmm b/_maps/shuttles/pirate_silverscale.dmm index 519a17b4659d9..6d9c7537bde18 100644 --- a/_maps/shuttles/pirate_silverscale.dmm +++ b/_maps/shuttles/pirate_silverscale.dmm @@ -11,8 +11,11 @@ /turf/open/floor/pod/light, /area/shuttle/pirate) "aZ" = ( -/obj/machinery/suit_storage_unit/pirate, /obj/effect/turf_decal/bot_red, +/obj/machinery/suit_storage_unit/pirate{ + helmet_type = /obj/item/clothing/head/helmet/space/pirate/tophat; + suit_type = /obj/item/clothing/suit/space/pirate/silverscale + }, /turf/open/floor/pod/dark, /area/shuttle/pirate) "bp" = ( @@ -30,9 +33,6 @@ /turf/open/floor/pod/light, /area/shuttle/pirate) "de" = ( -/obj/machinery/door/airlock/external/glass/ruin{ - id_tag = "pirateportexternal" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -40,6 +40,9 @@ dir = 8 }, /obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/external/glass/ruin{ + id_tag = "pirateportexternal" + }, /turf/open/floor/pod/light, /area/shuttle/pirate) "dI" = ( @@ -51,20 +54,18 @@ anchored = 1 }, /obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/all_access, /obj/effect/turf_decal/bot, /turf/open/floor/pod/dark, /area/shuttle/pirate) "dT" = ( -/obj/item/ammo_box/strilka310{ - pixel_y = 2 +/obj/structure/table, +/obj/item/grenade/c4, +/obj/item/grenade/c4{ + pixel_x = 9 }, -/obj/item/ammo_box/strilka310, /obj/item/grenade/c4{ - pixel_x = -13 + pixel_x = -9 }, -/obj/structure/table, /turf/open/floor/iron/dark, /area/shuttle/pirate) "ei" = ( @@ -119,6 +120,14 @@ }, /turf/open/floor/iron/dark, /area/shuttle/pirate) +"gw" = ( +/mob/living/basic/bot/medbot/nukie{ + name = "Mortimer"; + faction = list("pirate"); + desc = "A lowly medibot serving as the Silverscales' live-in manservant/butler/coat rack. They recently discovered it can heal people as well." + }, +/turf/open/floor/carpet/royalblack, +/area/shuttle/pirate) "ht" = ( /obj/machinery/door/airlock/silver, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, @@ -243,13 +252,13 @@ /turf/open/floor/plating/airless, /area/shuttle/pirate) "nY" = ( -/obj/machinery/door/airlock/external/glass/ruin{ - id_tag = "pirateportexternal" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/external/glass/ruin{ + id_tag = "pirateportexternal" + }, /turf/open/floor/pod/light, /area/shuttle/pirate) "pk" = ( @@ -337,6 +346,9 @@ "xj" = ( /obj/structure/table/glass, /obj/item/storage/medkit/brute, +/obj/item/storage/medkit/fire{ + pixel_y = 5 + }, /turf/open/floor/carpet/royalblack, /area/shuttle/pirate) "xs" = ( @@ -397,9 +409,6 @@ /turf/open/floor/pod/dark, /area/shuttle/pirate) "zQ" = ( -/obj/machinery/door/airlock/external/glass/ruin{ - id_tag = "piratestarboardexternal" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -407,6 +416,9 @@ dir = 8 }, /obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/external/glass/ruin{ + id_tag = "piratestarboardexternal" + }, /turf/open/floor/pod/light, /area/shuttle/pirate) "Ae" = ( @@ -445,9 +457,6 @@ /turf/open/floor/pod/dark, /area/shuttle/pirate) "Bl" = ( -/obj/machinery/door/airlock/external/glass/ruin{ - id_tag = "piratestarboardexternal" - }, /obj/docking_port/stationary{ dir = 4; dwidth = 13; @@ -467,6 +476,9 @@ dir = 4 }, /obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/external/glass/ruin{ + id_tag = "piratestarboardexternal" + }, /turf/open/floor/pod/light, /area/shuttle/pirate) "Ch" = ( @@ -495,8 +507,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/all_access, +/obj/machinery/button/door/directional/north{ + specialfunctions = 4; + normaldoorcontrol = 1; + name = "External Bolt Control"; + id = "piratestarboardexternal" + }, /turf/open/floor/pod/dark, /area/shuttle/pirate) "Fl" = ( @@ -539,6 +555,14 @@ }, /turf/open/floor/plating, /area/shuttle/pirate) +"Id" = ( +/obj/structure/guncase, +/obj/item/gun/energy/laser/luxurypaywall{ + projectile_damage_multiplier = 1.30; + desc = "A laser gun modified to cost 20 credits to fire. Someone on the station should have an ID that works with this thing." + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate) "Ig" = ( /obj/structure/table/glass, /obj/machinery/chem_dispenser/drinks{ @@ -779,15 +803,25 @@ /obj/structure/rack{ dir = 8 }, -/obj/item/ammo_box/strilka310, -/obj/item/ammo_box/strilka310{ - pixel_y = 3 - }, /obj/effect/turf_decal/bot, -/obj/item/gun/ballistic/rifle/boltaction/prime, +/obj/item/ammo_box/strilka310/phasic{ + pixel_y = -5; + pixel_x = 5 + }, +/obj/item/ammo_box/strilka310/phasic{ + pixel_x = 5 + }, +/obj/item/ammo_box/strilka310/phasic{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/ammo_box/strilka310/phasic{ + pixel_x = -5 + }, /obj/item/gun/ballistic/rifle/boltaction/prime{ pixel_y = 4 }, +/obj/item/gun/ballistic/rifle/boltaction/prime, /turf/open/floor/pod/dark, /area/shuttle/pirate) "RU" = ( @@ -879,6 +913,8 @@ /area/shuttle/pirate) "UV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/all_access, /turf/open/floor/pod/dark, /area/shuttle/pirate) "Vw" = ( @@ -886,6 +922,18 @@ /obj/machinery/recharger, /turf/open/floor/iron/dark, /area/shuttle/pirate) +"Wd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door/directional/south{ + id = "pirateportexternal"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate) "Ww" = ( /obj/machinery/power/shuttle_engine/heater{ dir = 8 @@ -1046,7 +1094,7 @@ TV rB rB dQ -Si +Wd rB aZ aZ @@ -1092,7 +1140,7 @@ fR Ox Qm wa -Qm +Id rB UV wa @@ -1184,7 +1232,7 @@ xs Ai am am -am +gw am am Ai diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 39024a6f0a391..491aac07280c5 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -82,9 +82,8 @@ /area/shuttle/abandoned) "cE" = ( /obj/effect/turf_decal/bot_white, -/obj/machinery/atmospherics/components/tank/air{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, diff --git a/_maps/templates/lazy_templates/voidwalker_void.dmm b/_maps/templates/lazy_templates/voidwalker_void.dmm new file mode 100644 index 0000000000000..2f4dadf760098 --- /dev/null +++ b/_maps/templates/lazy_templates/voidwalker_void.dmm @@ -0,0 +1,1101 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"z" = ( +/obj/effect/wisp_food, +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"W" = ( +/obj/effect/landmark/voidwalker_void, +/turf/open/floor/black, +/area/centcom/voidwalker_void) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +W +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +W +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +W +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 8901d2d8e858e..c75793dfe34b6 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -86,6 +86,7 @@ #define ORGAN_SLOT_MONSTER_CORE "monstercore" #define ORGAN_SLOT_RIGHT_ARM_AUG "r_arm_device" #define ORGAN_SLOT_LEFT_ARM_AUG "l_arm_device" //This one ignores alphabetical order cause the arms should be together +#define ORGAN_SLOT_SPINE "spine" #define ORGAN_SLOT_STOMACH "stomach" #define ORGAN_SLOT_STOMACH_AID "stomach_aid" #define ORGAN_SLOT_THRUSTERS "thrusters" diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm index 72d28ca6bca9d..55e706ce06d03 100644 --- a/code/__DEFINES/_flags.dm +++ b/code/__DEFINES/_flags.dm @@ -54,6 +54,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 /// Flag as an optimization, don't make this a trait without profiling /// Yes I know this is a stupid flag, no you can't take him from me #define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<17) +/// This atom always returns its turf in get_turf_pixel instead of the turf from its offsets +#define IGNORE_TURF_PIXEL_OFFSET_1 (1<<18) // Update flags for [/atom/proc/update_appearance] /// Update the atom's name diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 9a943474de6f9..f94871d10ccfa 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -314,6 +314,11 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define UPLINK_SHARED_STOCK_KITS "uplink_shared_stock_kits" #define UPLINK_SHARED_STOCK_SURPLUS "uplink_shared_stock_surplus" +/// Does this item provide illegal tech? +#define SYNDIE_ILLEGAL_TECH (1 << 0) +/// Does this item go off when scanned by a contraband scanner? +#define SYNDIE_TRIPS_CONTRABAND (1 << 1) + // Used for traitor objectives /// If the objective hasn't been taken yet #define OBJECTIVE_STATE_INACTIVE 1 diff --git a/code/__DEFINES/art.dm b/code/__DEFINES/art.dm index b6e9b885d9132..2f6fd95523148 100644 --- a/code/__DEFINES/art.dm +++ b/code/__DEFINES/art.dm @@ -14,3 +14,16 @@ #define CRAYON_COST_SMALL 0.5 #define CRAYON_COST_DEFAULT 1 #define CRAYON_COST_LARGE 5 + +/** + * Patronage thresholds for paintings. + * Different cosmetic frames become available as more credits are spent on the patronage. + * These also influence the artistic value (read: positive moodlets) of a painting. + */ +#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 +#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) +#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) +#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) +#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) +#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) +#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) diff --git a/code/__DEFINES/atmospherics/atmos_piping.dm b/code/__DEFINES/atmospherics/atmos_piping.dm index 3870a7aed34ac..521dbd02579ec 100644 --- a/code/__DEFINES/atmospherics/atmos_piping.dm +++ b/code/__DEFINES/atmospherics/atmos_piping.dm @@ -91,6 +91,8 @@ #define PIPING_ALL_COLORS (1<<4) /// can bridge over pipenets #define PIPING_BRIDGE (1<<5) +/// intended to connect with layers 2 and 4 only +#define PIPING_DISTRO_AND_WASTE_LAYERS (1<<6) // Ventcrawling bitflags, handled in var/vent_movement ///Allows for ventcrawling to occur. All atmospheric machines have this flag on by default. Cryo is the exception diff --git a/code/__DEFINES/blackmarket.dm b/code/__DEFINES/blackmarket.dm index c3b8ad0bf4622..f0a19ad056d9a 100644 --- a/code/__DEFINES/blackmarket.dm +++ b/code/__DEFINES/blackmarket.dm @@ -9,3 +9,4 @@ #define SHIPPING_METHOD_LAUNCH "Launch" // Sends a supply pod to the buyer's location, showy. #define SHIPPING_METHOD_SUPPLYPOD "Supply Pod" + diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 6246e25e93b56..4c7a9c169623b 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -163,13 +163,13 @@ DEFINE_BITFIELD(status_flags, list( #define DEFAULT_MESSAGE_RANGE 7 //Shove knockdown lengths (deciseconds) -#define SHOVE_KNOCKDOWN_SOLID 20 -#define SHOVE_KNOCKDOWN_HUMAN 20 -#define SHOVE_KNOCKDOWN_TABLE 20 +#define SHOVE_KNOCKDOWN_SOLID 2 SECONDS +#define SHOVE_KNOCKDOWN_HUMAN 2 SECONDS +#define SHOVE_KNOCKDOWN_TABLE 2 SECONDS #define SHOVE_KNOCKDOWN_COLLATERAL 1 -#define SHOVE_CHAIN_PARALYZE 30 +#define SHOVE_CHAIN_PARALYZE 3 SECONDS //Staggered slowdown, an effect caused by shoving and a few other features, such as tackling -#define STAGGERED_SLOWDOWN_LENGTH 30 +#define STAGGERED_SLOWDOWN_LENGTH 3 SECONDS #define STAGGERED_SLOWDOWN_STRENGTH 0.85 //multiplier //Shove disarming item list GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( @@ -180,38 +180,11 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define UNARMED_MISS_CHANCE_MAX 80 //Combat object defines - -//Embedded objects -///Chance for embedded objects to cause pain (damage user) -#define EMBEDDED_PAIN_CHANCE 15 -///Chance for embedded object to fall out (causing pain but removing the object) -#define EMBEDDED_ITEM_FALLOUT 5 -///Chance for an object to embed into somebody when thrown -#define EMBED_CHANCE 45 -///Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) -#define EMBEDDED_PAIN_MULTIPLIER 2 -///Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) -#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 -///The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) +/// The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) #define EMBED_THROWSPEED_THRESHOLD 4 -///Coefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class) -#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 6 -///A Time in ticks, total removal time = (this*item.w_class) -#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 -///Chance for embedded objects to cause pain every time they move (jostle) -#define EMBEDDED_JOSTLE_CHANCE 5 -///Coefficient of multiplication for the damage the item does while -#define EMBEDDED_JOSTLE_PAIN_MULTIPLIER 1 -///This percentage of all pain will be dealt as stam damage rather than brute (0-1) -#define EMBEDDED_PAIN_STAM_PCT 0.0 -///For thrown weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance +/// For thrown embedding weapons, every extra speed it's thrown at above its normal throwspeed will add this to the embed chance #define EMBED_CHANCE_SPEED_BONUS 10 -#define EMBED_HARMLESS list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE) -#define EMBED_HARMLESS_SUPERIOR list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE, "embed_chance" = 100, "fall_chance" = 0.1) -#define EMBED_POINTY list("ignore_throwspeed_threshold" = TRUE) -#define EMBED_POINTY_SUPERIOR list("embed_chance" = 100, "ignore_throwspeed_threshold" = TRUE) - //Gun weapon weight #define WEAPON_LIGHT 1 #define WEAPON_MEDIUM 2 @@ -381,7 +354,7 @@ GLOBAL_LIST_INIT(leg_zones, list(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) ///If the obstacle is an object at the border of the turf (so no signal from being sent to the other turf) #define SHOVE_DIRECTIONAL_BLOCKED (1<<6) -///Bitfield returned by listeners for COMSIG_CARBON_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit. +///Bitfield returned by listeners for COMSIG_LIVING_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit. #define STAMCRIT_CANCELLED (1<<0) ///Deathmatch lobby current status diff --git a/code/__DEFINES/dcs/signals/signals_area.dm b/code/__DEFINES/dcs/signals/signals_area.dm index 762431788f258..b136f46467f56 100644 --- a/code/__DEFINES/dcs/signals/signals_area.dm +++ b/code/__DEFINES/dcs/signals/signals_area.dm @@ -35,3 +35,6 @@ #define COMSIG_WEATHER_BEGAN_IN_AREA(event_type) "weather_began_in_area_[event_type]" /// Called when some weather ends in this area #define COMSIG_WEATHER_ENDED_IN_AREA(event_type) "weather_ended_in_area_[event_type]" + +///From base of area/update_beauty() +#define COMSIG_AREA_BEAUTY_UPDATED "area_beauty_updated" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index c612d174ac354..3282c9387a1e5 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -68,7 +68,7 @@ #define COMSIG_ATOM_EXITED "atom_exited" ///from base of atom/movable/Moved(): (atom/movable/gone, direction) #define COMSIG_ATOM_ABSTRACT_EXITED "atom_abstract_exited" -///from base of atom/Bumped(): (/atom/movable) +///from base of atom/Bumped(): (/atom/movable) (the one that gets bumped) #define COMSIG_ATOM_BUMPED "atom_bumped" ///from base of atom/has_gravity(): (turf/location, list/forced_gravities) #define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" @@ -140,3 +140,6 @@ /// From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) #define COMSIG_ATOM_TOUCHED_SPARKS "atom_touched_sparks" #define COMSIG_ATOM_TOUCHED_HAZARDOUS_SPARKS "atom_touched_hazardous_sparks" + +/// From whoever has been revealed (atom/revealed) +#define COMSIG_ATOM_REVEAL "atom_reveal" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index bc73dbf32914a..717a8aab27f0d 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -9,10 +9,12 @@ #define COMSIG_MOVABLE_MOVED "movable_moved" ///from base of atom/movable/Cross(): (/atom/movable) #define COMSIG_MOVABLE_CROSS "movable_cross" + #define COMPONENT_BLOCK_CROSS (1<<0) ///from base of atom/movable/Move(): (/atom/movable) #define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" ///from base of atom/movable/Bump(): (/atom) #define COMSIG_MOVABLE_BUMP "movable_bump" + #define COMPONENT_INTERCEPT_BUMPED (1<<0) ///from base of atom/movable/newtonian_move(): (inertia_direction, start_delay) #define COMSIG_MOVABLE_NEWTONIAN_MOVE "movable_newtonian_move" #define COMPONENT_MOVABLE_NEWTONIAN_BLOCK (1<<0) @@ -123,3 +125,4 @@ #define COMSIG_MOVABLE_BUMP_PUSHED "movable_bump_pushed" /// Stop it from moving #define COMPONENT_NO_PUSH (1<<0) + diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm index 5836a0be65a39..63ad7655be7ee 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm @@ -19,7 +19,12 @@ #define COMSIG_ATOM_START_PULL "movable_start_pull" /// called on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) #define COMSIG_ATOM_TRIED_PASS "atom_tried_pass" - #define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// called on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason +#define COMSIG_MOVABLE_CAN_PASS_THROUGH "movable_can_pass_through" +/// If given, we permit passage through +#define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// If given, we DONT permit passage through +#define COMSIG_COMPONENT_REFUSE_PASSAGE (1 << 1) ///called on /living when someone starts pulling (atom/movable/pulled, state, force) #define COMSIG_LIVING_START_PULL "living_start_pull" ///called on /living when someone is pulled (mob/living/puller) diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index c70cdfde1a3f3..5b01bd7d61299 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -1,6 +1,12 @@ // Aquarium related signals #define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed" #define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed" +///Called on aquarium/attackby: (aquarium) +#define COMSIG_TRY_INSERTING_IN_AQUARIUM "item_try_inserting_in_aquarium" + ///The item will be inserted into the aquarium + #define COMSIG_CAN_INSERT_IN_AQUARIUM (1<<0) + ///The item won't be inserted into the aquarium, but will early return attackby anyway. + #define COMSIG_CANNOT_INSERT_IN_AQUARIUM (1<<1) // Fish signals #define COMSIG_FISH_STATUS_CHANGED "fish_status_changed" diff --git a/code/__DEFINES/dcs/signals/signals_global_object.dm b/code/__DEFINES/dcs/signals/signals_global_object.dm index 51b7a38a94a6c..bed06ff176c1f 100644 --- a/code/__DEFINES/dcs/signals/signals_global_object.dm +++ b/code/__DEFINES/dcs/signals/signals_global_object.dm @@ -1,8 +1,11 @@ /// signals from globally accessible objects -///Whenever SetupOccupations() is called, called all occupations are set +///from SSJob whenever SetupOccupations() is called, all occupations are set #define COMSIG_OCCUPATIONS_SETUP "occupations_setup" +///from SSJob when DivideOccupations is called +#define COMSIG_OCCUPATIONS_DIVIDED "occupations_divided" + ///from SSsun when the sun changes position : (azimuth) #define COMSIG_SUN_MOVED "sun_moved" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index 598ddc5187852..051953bd7e508 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -57,8 +57,6 @@ /// Called from bodypart being removed /obj/item/bodypart/proc/drop_limb(mob/living/carbon/old_owner, special, dismembered) #define COMSIG_BODYPART_REMOVED "bodypart_removed" -/// from /mob/living/carbon/enter_stamcrit() -#define COMSIG_CARBON_ENTER_STAMCRIT "carbon_enter_stamcrit" ///from base of mob/living/carbon/soundbang_act(): (list(intensity)) #define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" ///from /item/organ/proc/Insert() (/obj/item/organ/) @@ -163,3 +161,8 @@ /// from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it shuld go #define COMSIG_CARBON_LIMPING "mob_limp_check" #define COMPONENT_CANCEL_LIMP (1<<0) + +///Called from on_acquiring(mob/living/carbon/human/acquirer) +#define COMSIG_MUTATION_GAINED "mutation_gained" +///Called from on_losing(mob/living/carbon/human/owner) +#define COMSIG_MUTATION_LOST "mutation_lost" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 517048bbd4d1d..b565b32aa4986 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -21,6 +21,8 @@ ///from base of mob/update_transform() #define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform" +/// from /datum/status_effect/incapacitating/stamcrit/on_apply() +#define COMSIG_LIVING_ENTER_STAMCRIT "living_enter_stamcrit" ///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) #define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" ///from base of mob/living/resist() (/mob/living) @@ -275,6 +277,9 @@ #define COMSIG_LIVING_GRAB "living_grab" // Return COMPONENT_CANCEL_ATTACK_CHAIN / COMPONENT_SKIP_ATTACK_CHAIN to stop the grab +///Called when living finish eat (/datum/component/edible/proc/On_Consume) +#define COMSIG_LIVING_FINISH_EAT "living_finish_eat" + /// From /datum/element/basic_eating/try_eating() #define COMSIG_MOB_PRE_EAT "mob_pre_eat" ///cancel eating attempt diff --git a/code/__DEFINES/dcs/signals/signals_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm index 4502997438589..d9ef98527e25c 100644 --- a/code/__DEFINES/dcs/signals/signals_spell.dm +++ b/code/__DEFINES/dcs/signals/signals_spell.dm @@ -74,6 +74,10 @@ #define COMSIG_MOB_EJECTED_FROM_JAUNT "spell_mob_eject_jaunt" /// Sent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell) #define COMSIG_MOB_AFTER_EXIT_JAUNT "spell_mob_after_exit_jaunt" +/// Sent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc) +#define COMSIG_MOB_PHASED_CHECK "mob_phased_check" + /// Return this to cancel the phased move + #define COMPONENT_BLOCK_PHASED_MOVE (1 << 0) /// Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, /// to any unconscious / critical mobs being dragged when the jaunter enters blood: diff --git a/code/__DEFINES/dcs/signals/signals_turf.dm b/code/__DEFINES/dcs/signals/signals_turf.dm index f89f30d1eb458..321fb503cbf96 100644 --- a/code/__DEFINES/dcs/signals/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/signals_turf.dm @@ -40,3 +40,6 @@ #define COMSIG_TURF_RESET_ELEVATION "turf_reset_elevation" #define ELEVATION_CURRENT_PIXEL_SHIFT 1 #define ELEVATION_MAX_PIXEL_SHIFT 2 + +///Called when turf no longer blocks light from passing through +#define COMSIG_TURF_NO_LONGER_BLOCK_LIGHT "turf_no_longer_block_light" diff --git a/code/__DEFINES/devices.dm b/code/__DEFINES/devices.dm index afd41570b5b27..7368d8d045719 100644 --- a/code/__DEFINES/devices.dm +++ b/code/__DEFINES/devices.dm @@ -10,6 +10,7 @@ #define CLOWN_INSPECTOR_PRINT_SOUND_MODE_LAST 4 #define INSPECTOR_ENERGY_USAGE_HONK (0.015 * STANDARD_CELL_CHARGE) #define INSPECTOR_ENERGY_USAGE_NORMAL (0.005 * STANDARD_CELL_CHARGE) +#define INSPECTOR_ENERGY_USAGE_LOW (0.001 * STANDARD_CELL_CHARGE) #define INSPECTOR_TIME_MODE_SLOW 1 #define INSPECTOR_TIME_MODE_FAST 2 #define INSPECTOR_TIME_MODE_HONK 3 diff --git a/code/__DEFINES/door.dm b/code/__DEFINES/door.dm new file mode 100644 index 0000000000000..198d38a3af6dc --- /dev/null +++ b/code/__DEFINES/door.dm @@ -0,0 +1,18 @@ +// Door animation defines +#define DOOR_OPENING_ANIMATION "opening" +#define DOOR_CLOSING_ANIMATION "closing" +#define DOOR_DENY_ANIMATION "deny" + +// Door animation STEP defines +// These are used to mark points in the animtion when things in game should change +#define DOOR_OPENING_PASSABLE "opening_passable" +#define DOOR_OPENING_FINISHED "opening_finished" +#define DOOR_CLOSING_UNPASSABLE "closing_unpassable" +#define DOOR_CLOSING_FINISHED "closing_finished" + +#define AIRLOCK_OPENING_TRANSPARENT "airlock_opening_transparent" +#define AIRLOCK_OPENING_PASSABLE "airlock_opening_passable" +#define AIRLOCK_OPENING_FINISHED "airlock_opening_finished" +#define AIRLOCK_CLOSING_OPAQUE "airlock_closing_opaque" +#define AIRLOCK_CLOSING_UNPASSABLE "airlock_closing_unpassable" +#define AIRLOCK_CLOSING_FINISHED "airlock_closing_finished" diff --git a/code/__DEFINES/exosuit_fab.dm b/code/__DEFINES/exosuit_fab.dm index 4cc21f210d61d..4fd921bdeb777 100644 --- a/code/__DEFINES/exosuit_fab.dm +++ b/code/__DEFINES/exosuit_fab.dm @@ -35,10 +35,12 @@ #define EXOSUIT_MODULE_MARAUDER (1<<10) /// Module is compatible with Paddy models #define EXOSUIT_MODULE_PADDY (1<<11) +/// Module is compatible with Justice models +#define EXOSUIT_MODULE_JUSTICE (1<<12) /// Module is compatible with "Working" Exosuit models - Ripley and Clarke #define EXOSUIT_MODULE_WORKING (EXOSUIT_MODULE_RIPLEY | EXOSUIT_MODULE_CLARKE) /// Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon, or any Exosuit with an empty Concealed Weapon Bay -#define EXOSUIT_MODULE_COMBAT (EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SAVANNAH | EXOSUIT_MODULE_RETICENCE | EXOSUIT_MODULE_MARAUDER | EXOSUIT_MODULE_PADDY | EXOSUIT_MODULE_CONCEALED_WEP_BAY) +#define EXOSUIT_MODULE_COMBAT (EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SAVANNAH | EXOSUIT_MODULE_RETICENCE | EXOSUIT_MODULE_MARAUDER | EXOSUIT_MODULE_PADDY | EXOSUIT_MODULE_JUSTICE | EXOSUIT_MODULE_CONCEALED_WEP_BAY) /// Module is compatible with "Medical" Exosuit modelsm - Odysseus #define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS diff --git a/code/__DEFINES/fish.dm b/code/__DEFINES/fish.dm index 8e03c920d248d..36903049e895b 100644 --- a/code/__DEFINES/fish.dm +++ b/code/__DEFINES/fish.dm @@ -152,3 +152,12 @@ #define ELECTROGENESIS_DURATION 40 SECONDS /// a random range the electrogenesis cooldown varies by #define ELECTROGENESIS_VARIANCE (rand(-10 SECONDS, 10 SECONDS)) + +#define FISH_BEAUTY_DISGUSTING -500 +#define FISH_BEAUTY_UGLY -300 +#define FISH_BEAUTY_BAD -200 +#define FISH_BEAUTY_NULL 0 +#define FISH_BEAUTY_GENERIC 250 +#define FISH_BEAUTY_GOOD 450 +#define FISH_BEAUTY_GREAT 600 +#define FISH_BEAUTY_EXCELLENT 700 diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index ba467347e87d2..0d9d28d4d858a 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -49,6 +49,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isspaceturf(A) (istype(A, /turf/open/space)) +#define is_space_or_openspace(A) (isopenspaceturf(A) || isspaceturf(A)) + #define isfloorturf(A) (istype(A, /turf/open/floor)) #define ismiscturf(A) (istype(A, /turf/open/misc)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 08a771bf7ddf6..55272920fdd5a 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -122,23 +122,36 @@ // PLANE_SPACE layer(s) #define SPACE_LAYER 1.8 -//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define. Most floors (FLOOR_PLANE) and walls (WALL_PLANE) use this. - -//FLOOR_PLANE layers -#define TURF_PLATING_DECAL_LAYER 2.001 -#define TURF_DECAL_LAYER 2.009 //Makes turf decals appear in DM how they will look inworld. -#define CULT_OVERLAY_LAYER 2.01 -#define MID_TURF_LAYER 2.02 -#define HIGH_TURF_LAYER 2.03 -#define LATTICE_LAYER 2.04 -#define DISPOSAL_PIPE_LAYER 2.042 -#define WIRE_LAYER 2.044 -#define GLASS_FLOOR_LAYER 2.046 -#define TRAM_RAIL_LAYER 2.047 -#define ABOVE_OPEN_TURF_LAYER 2.049 +// placed here for documentation. Byond's default turf layer +// We do not use it, as different turfs render on different planes +// #define TURF_LAYER 2 +#define TURF_LAYER 2 #error TURF_LAYER is no longer supported, please be more specific + +// FLOOR_PLANE layer(s) +// We need to force this plane to render as if we were not using sidemap +// this allows larger then bound floors to layer as we'd expect +// ANYTHING on the floor plane needs TOPDOWN_LAYER, and nothing that isn't on the floor plane can have it + +// NOTICE: we break from the pattern of increasing in steps of like 0.01 here +// Because TOPDOWN_LAYER is 10000 and that's enough to floating point our modifications away +#define LOW_FLOOR_LAYER (1 + TOPDOWN_LAYER) +#define TURF_PLATING_DECAL_LAYER (2 + TOPDOWN_LAYER) +#define TURF_DECAL_LAYER (3 + TOPDOWN_LAYER) //Makes turf decals appear in DM how they will look inworld. +#define CULT_OVERLAY_LAYER (4 + TOPDOWN_LAYER) +#define MID_TURF_LAYER (5 + TOPDOWN_LAYER) +#define HIGH_TURF_LAYER (6 + TOPDOWN_LAYER) +#define LATTICE_LAYER (7 + TOPDOWN_LAYER) +#define DISPOSAL_PIPE_LAYER (8 + TOPDOWN_LAYER) +#define WIRE_LAYER (9 + TOPDOWN_LAYER) +#define GLASS_FLOOR_LAYER (10 + TOPDOWN_LAYER) +#define TRAM_RAIL_LAYER (11 + TOPDOWN_LAYER) +///catwalk overlay of /turf/open/floor/plating/catwalk_floor +#define CATWALK_LAYER (12 + TOPDOWN_LAYER) +#define ABOVE_OPEN_TURF_LAYER (13 + TOPDOWN_LAYER) //WALL_PLANE layers -#define CLOSED_TURF_LAYER 2.05 +#define BELOW_CLOSED_TURF_LAYER 2.053 +#define CLOSED_TURF_LAYER 2.058 // GAME_PLANE layers #define BULLET_HOLE_LAYER 2.06 @@ -153,8 +166,6 @@ #define PLUMBING_PIPE_VISIBILE_LAYER 2.495//layer = initial(layer) + ducting_layer / 3333 in atmospherics/handle_layer() to determine order of duct overlap #define BOT_PATH_LAYER 2.497 #define LOW_OBJ_LAYER 2.5 -///catwalk overlay of /turf/open/floor/plating/catwalk_floor -#define CATWALK_LAYER 2.51 #define LOW_SIGIL_LAYER 2.52 #define SIGIL_LAYER 2.53 #define HIGH_PIPE_LAYER 2.54 @@ -308,6 +319,15 @@ #define PLANE_CRITICAL_FUCKO_PARALLAX (PLANE_CRITICAL_DISPLAY|PLANE_CRITICAL_NO_RELAY|PLANE_CRITICAL_CUT_RENDER) +//---------- Plane Master offsetting_flags ------------- +// Describes how different plane masters behave regarding being offset +/// This plane master will not be offset itself, existing only once with an offset of 0 +/// Mostly used for planes that really don't need to be duplicated, like the hud planes +#define BLOCKS_PLANE_OFFSETTING (1<<0) +/// This plane master will have its relays offset to match the highest rendering plane that matches the target +/// Required for making things like the blind fullscreen not render over runechat +#define OFFSET_RELAYS_MATCH_HIGHEST (1<<1) + /// A value of /datum/preference/numeric/multiz_performance that disables the option #define MULTIZ_PERFORMANCE_DISABLE -1 /// We expect at most 3 layers of multiz diff --git a/code/__DEFINES/lazy_templates.dm b/code/__DEFINES/lazy_templates.dm index 8a469af4deeda..1e8dca9a7a110 100644 --- a/code/__DEFINES/lazy_templates.dm +++ b/code/__DEFINES/lazy_templates.dm @@ -3,6 +3,7 @@ #define LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY "LT_NINJAHOLDING" #define LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS "LT_ABDUCTORSHIPS" #define LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE "LT_HERETICSACRIFICE" +#define LAZY_TEMPLATE_KEY_VOIDWALKER_VOID "LT_VOIDWALKERVOID" #define LAZY_TEMPLATE_KEY_LIST_ALL(...) list( \ "Nukie Base" = LAZY_TEMPLATE_KEY_NUKIEBASE, \ @@ -10,4 +11,5 @@ "Ninja Holding" = LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY, \ "Abductor Ships" = LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS, \ "Heretic Sacrifice Level" = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE, \ + "Voidwalker Void" = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID, \ ) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 4265428e56f9b..b722c1a96155b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -10,6 +10,8 @@ #define MOVE_INTENT_WALK "walk" #define MOVE_INTENT_RUN "run" +/// Amount of oxyloss that KOs a human +#define OXYLOSS_PASSOUT_THRESHOLD 50 //Blood levels #define BLOOD_VOLUME_MAX_LETHAL 2150 #define BLOOD_VOLUME_EXCESS 2100 @@ -130,6 +132,7 @@ #define SPECIES_ZOMBIE "zombie" #define SPECIES_ZOMBIE_INFECTIOUS "memezombie" #define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie" +#define SPECIES_VOIDWALKER "voidwalker" // Like species IDs, but not specifically attached a species. #define BODYPART_ID_ALIEN "alien" @@ -466,6 +469,9 @@ #define ROBOTIC_BRUTE_EXAMINE_TEXT "denting" #define ROBOTIC_BURN_EXAMINE_TEXT "charring" +#define GLASSY_BRUTE_EXAMINE_TEXT "cracking" +#define GLASSY_BURN_EXAMINE_TEXT "deformation" + #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 #define GRAB_PIXEL_SHIFT_NECK 16 @@ -868,7 +874,7 @@ GLOBAL_LIST_INIT(layers_to_offset, list( /// The vomit you've all come to know and love, but with a little extra "spice" (blood) #define VOMIT_CATEGORY_BLOOD (VOMIT_CATEGORY_DEFAULT | MOB_VOMIT_BLOOD) /// Another vomit variant that causes you to get knocked down instead of just only getting a stun. Standard otherwise. -#define VOMIT_CATEGORY_KNOCKDOWN (VOMIT_CATEGORY_DEFAULT | MOB_VOMIT_KNOCKDOWN) +#define VOMIT_CATEGORY_KNOCKDOWN (MOB_VOMIT_MESSAGE | MOB_VOMIT_HARM | MOB_VOMIT_KNOCKDOWN) /// Possible value of [/atom/movable/buckle_lying]. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled. #define NO_BUCKLE_LYING -1 diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 93ffdbf04c9d9..a758aa4170c73 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -33,6 +33,8 @@ #define PATCH (1<<3) /// Used for direct injection of reagents. #define INJECT (1<<4) +/// Exclusive to just plumbing. if set we use the round robin technique else we use proportional +#define LINEAR (1<<5) /// When returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards #define UPDATE_MOB_HEALTH 1 @@ -74,6 +76,10 @@ #define CHEMICAL_MAXIMUM_TEMPERATURE 99999 ///The default purity of all non reacted reagents #define REAGENT_STANDARD_PURITY 0.75 +/// Starting purity of consumable reagents +#define CONSUMABLE_STANDARD_PURITY 0.5 // 50% pure by default. Below - synthetic food. Above - natural food. +/// Starting purity of reagents made in biogenerator +#define BIOGEN_REAGENT_PURITY 0.3 /// the default temperature at which chemicals are added to reagent holders at #define DEFAULT_REAGENT_TEMPERATURE 300 diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm index a1e30cd142f00..93f1bc924c288 100644 --- a/code/__DEFINES/research/anomalies.dm +++ b/code/__DEFINES/research/anomalies.dm @@ -1,6 +1,6 @@ // Max amounts of cores you can make #define MAX_CORES_BLUESPACE 3 -#define MAX_CORES_GRAVITATIONAL 8 +#define MAX_CORES_GRAVITATIONAL 6 #define MAX_CORES_FLUX 8 #define MAX_CORES_VORTEX 1 #define MAX_CORES_PYRO 8 diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm index 3f6428eb73178..cd7a216bc9c9d 100644 --- a/code/__DEFINES/research/research_categories.dm +++ b/code/__DEFINES/research/research_categories.dm @@ -134,6 +134,7 @@ #define RND_CATEGORY_MECHFAB_PHAZON "/Phazon" #define RND_CATEGORY_MECHFAB_CLARKE "/Clarke" #define RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV "/Savannah-Ivanov" +#define RND_CATEGORY_MECHFAB_JUSTICE "/Justice" #define RND_SUBCATEGORY_MECHFAB_CHASSIS "/Chassis" #define RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT "/Supported Equipment" #define RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES "/Control Interfaces" diff --git a/code/__DEFINES/research/techweb_nodes.dm b/code/__DEFINES/research/techweb_nodes.dm index a31c3e1a2f278..3c730e02169fa 100644 --- a/code/__DEFINES/research/techweb_nodes.dm +++ b/code/__DEFINES/research/techweb_nodes.dm @@ -97,7 +97,6 @@ #define TECHWEB_NODE_PASSIVE_IMPLANTS "passive_implants" #define TECHWEB_NODE_PLASMA_CONTROL "plasma_control" #define TECHWEB_NODE_PLASMA_MINING "plasma_mining" -#define TECHWEB_NODE_PLUMBING "plumbing" #define TECHWEB_NODE_POSITRONIC_SPHERE "positronic_sphere" #define TECHWEB_NODE_PROGRAMMED_ROBOT "programmed_robot" #define TECHWEB_NODE_PROGRAMMED_SERVER "programmed_server" @@ -117,6 +116,5 @@ #define TECHWEB_NODE_SYNDICATE_BASIC "syndicate_basic" #define TECHWEB_NODE_TACKLE_ADVANCED "tackle_advanced" #define TECHWEB_NODE_TELECOMS "telecoms" -#define TECHWEB_NODE_TOYS "toys" #define TECHWEB_NODE_UNREGULATED_BLUESPACE "unregulated_bluespace" #define TECHWEB_NODE_XENOBIOLOGY "xenobiology" diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 88e64164acd4b..bc8987b4539d5 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -37,6 +37,7 @@ #define ROLE_SPACE_DRAGON "Space Dragon" #define ROLE_SPIDER "Spider" #define ROLE_WIZARD_MIDROUND "Wizard (Midround)" +#define ROLE_VOIDWALKER "Voidwalker" // Latejoin roles #define ROLE_HERETIC_SMUGGLER "Heretic Smuggler" @@ -153,6 +154,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_SPACE_DRAGON = 0, ROLE_SPIDER = 0, ROLE_WIZARD_MIDROUND = 14, + ROLE_VOIDWALKER = 0, // Latejoin ROLE_HERETIC_SMUGGLER = 0, diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index 6a2a5152903ba..76e8ffdb0e222 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -40,6 +40,7 @@ #define MOTH_WEEK "Moth Week" #define IAN_HOLIDAY "Ian's Birthday" #define HOTDOG_DAY "National Hot Dog Day" +#define ICE_CREAM_DAY "National Ice Cream Day" /* Days of the week to make it easier to reference them. diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index ff73ecb3302b4..a2925ee2e5b68 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -138,6 +138,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Prevents plasmamen from self-igniting if only their helmet is missing #define TRAIT_NOSELFIGNITION_HEAD_ONLY "no_selfignition_head_only" #define TRAIT_NOGUNS "no_guns" +///Can toss a guns like a badass, causing additional damage/effect to their enemies +#define TRAIT_TOSS_GUN_HARD "toss_gun_hard" /// Species with this trait are genderless #define TRAIT_AGENDER "agender" /// Species with this trait have a blood clan mechanic @@ -351,6 +353,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_GUNFLIP "gunflip" /// Increases chance of getting special traumas, makes them harder to cure #define TRAIT_SPECIAL_TRAUMA_BOOST "special_trauma_boost" +/// Doubles the duration and cooldown of a flip +#define TRAIT_SLOW_FLIP "slow_flip" #define TRAIT_SPACEWALK "spacewalk" /// Sanity trait to keep track of when we're in hyperspace and add the appropriate element if we werent #define TRAIT_HYPERSPACED "hyperspaced" @@ -563,6 +567,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Makes the player appear as their respective job in Binary Talk rather than being a 'Default Cyborg'. #define TRAIT_DISPLAY_JOB_IN_BINARY "display job in binary" +/// Trait that determines vulnerability to being stunned from a shove +#define TRAIT_STUN_ON_NEXT_SHOVE "stun on next shove" + // METABOLISMS // Various jobs on the station have historically had better reactions // to various drinks and foodstuffs. Security liking donuts is a classic @@ -762,6 +769,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DANGEROUS_OBJECT "dangerous_object" /// determines whether or not objects are haunted and teleport/attack randomly #define TRAIT_HAUNTED "haunted" +/// An item that, if it has contents, will ignore it's contents when scanning for contraband. +#define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" @@ -973,6 +982,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STATION_TRAIT_BIGGER_PODS "station_trait_bigger_pods" #define STATION_TRAIT_BIRTHDAY "station_trait_birthday" #define STATION_TRAIT_BOTS_GLITCHED "station_trait_bot_glitch" +#define STATION_TRAIT_MACHINES_GLITCHED "station_trait_machine_glitch" #define STATION_TRAIT_BRIGHT_DAY "station_trait_bright_day" #define STATION_TRAIT_CARP_INFESTATION "station_trait_carp_infestation" #define STATION_TRAIT_CYBERNETIC_REVOLUTION "station_trait_cybernetic_revolution" @@ -1154,7 +1164,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait which means whatever has this is dancing by a dance machine #define TRAIT_DISCO_DANCER "disco_dancer" -/// That which allows mobs to instantly break down boulders. +/// Trait which allows mobs to instantly break down boulders. #define TRAIT_INSTANTLY_PROCESSES_BOULDERS "instantly_processes_boulders" /// Trait applied to objects and mobs that can attack a boulder and break it down. (See /obj/item/boulder/manual_process()) @@ -1163,11 +1173,19 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to anything linked to, not necessarily allied to, the mansus #define TRAIT_MANSUS_TOUCHED "mansus_touched" +/// Appiled when wizard buy (/datum/spellbook_entry/perks/spalls_lottery) perk. +/// Give 50/25% chance not spend a spellbook charge on 1/2 cost spell. +/// Appiled it wizard can't refund any spells. +#define TRAIT_SPELLS_LOTTERY "spell_for_sale" + /// Trait given to mobs wearing the clown mask #define TRAIT_PERCEIVED_AS_CLOWN "perceived_as_clown" /// Does this item bypass ranged armor checks? #define TRAIT_BYPASS_RANGED_ARMOR "bypass_ranged_armor" +/// Trait which means that this item is considered illegal contraband, and valid for the contraband bounty or when scanned by an nspect scanner. +#define TRAIT_CONTRABAND "illegal_contraband" + /// Traits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects #define TRAIT_EXPERT_FISHER "expert_fisher" // fishing is easier @@ -1183,4 +1201,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to the birthday boy #define TRAIT_BIRTHDAY_BOY "birthday_boy" + +///Trait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents. +#define TRAIT_NO_TERRAFORM "no_terraform" + + // END TRAIT DEFINES diff --git a/code/__DEFINES/uplink.dm b/code/__DEFINES/uplink.dm index bb92f0672c3a7..67df6fc0e6295 100644 --- a/code/__DEFINES/uplink.dm +++ b/code/__DEFINES/uplink.dm @@ -15,6 +15,17 @@ /// Can be randomly given to spies for their bounties #define UPLINK_SPY (1 << 4) +#define UPLINK_LONE_OP (1 << 5) + +/// A blanket define for an item being purchasable by all types of nukie +#define UPLINK_ALL_SYNDIE_OPS (UPLINK_NUKE_OPS | UPLINK_LONE_OP | UPLINK_CLOWN_OPS) + +/// A blanket define for an item being purchasable by all operatives that spawn at the nukie firebase +#define UPLINK_FIREBASE_OPS (UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/// A define that excludes clown ops from the regular nukeop gear lineup +#define UPLINK_SERIOUS_OPS (UPLINK_NUKE_OPS | UPLINK_LONE_OP) + /// Progression gets turned into a user-friendly form. This is just an abstract equation that makes progression not too large. #define DISPLAY_PROGRESSION(time) round(time/60, 0.01) diff --git a/code/__HELPERS/_planes.dm b/code/__HELPERS/_planes.dm index 769c4283ea626..779319114076f 100644 --- a/code/__HELPERS/_planes.dm +++ b/code/__HELPERS/_planes.dm @@ -86,3 +86,19 @@ // This is solvable with lowspec preferences, which would not be hard to implement // Player popups will now render their effects, like overlay lights. this is fixable, but I've not gotten to it // I think overlay lights can render on the wrong z layer. s fucked + +/// Whitelist of planes allowed to use TOPDOWN_LAYER +GLOBAL_LIST_INIT(topdown_planes, list( + "[FLOOR_PLANE]" = TRUE, + )) + +/// Checks if a passed in MA or atom is allowed to have its current plane/layer matchup +/proc/check_topdown_validity(mutable_appearance/thing_to_check) + if(istype(thing_to_check, /atom/movable/screen/plane_master)) + return + var/topdown_plane = GLOB.topdown_planes["[PLANE_TO_TRUE(thing_to_check.plane)]"] + if(topdown_plane) + if(thing_to_check.layer - TOPDOWN_LAYER < 0 || thing_to_check.layer >= BACKGROUND_LAYER) + stack_trace("[thing_to_check] ([thing_to_check.type]) was expected to have a TOPDOWN_LAYER layer due to its plane, but it DID NOT! layer: ([thing_to_check.layer]) plane: ([thing_to_check.plane])") + else if(thing_to_check.layer - TOPDOWN_LAYER >= 0 && thing_to_check.layer < BACKGROUND_LAYER) + stack_trace("[thing_to_check] ([thing_to_check.type] is NOT ALLOWED to have a TOPDOWN_LAYER layer due to its plane, but it did! layer: ([thing_to_check.layer]) plane: ([thing_to_check.plane])") diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index dc2f66c2ed0dd..1d247c12e6ee7 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -5,6 +5,8 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(list( /area/station/engineering/supermatter, /area/station/engineering/atmospherics_engine, /area/station/ai_monitored/turret_protected/ai, + /area/ruin/comms_agent //fixes icemoon comms station being affected + ))) // Gets an atmos isolated contained space @@ -148,7 +150,7 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(list( * A list of all machinery tied to an area along with the area itself. key=area name,value=list(area,list of machinery) * we use this to keep track of what areas are affected by the blueprints & what machinery of these areas needs to be reconfigured accordingly */ - var/area/affected_areas = list() + var/list/area/affected_areas = list() for(var/turf/the_turf as anything in turfs) var/area/old_area = the_turf.loc diff --git a/code/__HELPERS/atoms.dm b/code/__HELPERS/atoms.dm index 406ea75143c66..7106ec81be1ba 100644 --- a/code/__HELPERS/atoms.dm +++ b/code/__HELPERS/atoms.dm @@ -33,6 +33,18 @@ processing += checked_atom.contents . += checked_atom +///Returns the src and all recursive contents, but skipping going any deeper if an atom has a specific trait. +/atom/proc/get_all_contents_skipping_traits(skipped_trait) + . = list(src) + if(!skipped_trait) + CRASH("get_all_contents_skipping_traits called without a skipped_trait") + var/i = 0 + while(i < length(.)) + var/atom/checked_atom = .[++i] + if(HAS_TRAIT(checked_atom, skipped_trait)) + continue + . += checked_atom.contents + ///Returns a list of all locations (except the area) the movable is within. /proc/get_nested_locs(atom/movable/atom_on_location, include_turf = FALSE) . = list() diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index c53d9df2d2c05..88ca3dbe11c8c 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -493,7 +493,7 @@ xxx xxx xxx var/junction_dir = reverse_ndir(smoothing_junction) var/turned_adjacency = REVERSE_DIR(junction_dir) var/turf/neighbor_turf = get_step(src, turned_adjacency & (NORTH|SOUTH)) - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, offset_spokesman = src, plane = FLOOR_PLANE) + var/mutable_appearance/underlay_appearance = mutable_appearance(layer = LOW_FLOOR_LAYER, offset_spokesman = src, plane = FLOOR_PLANE) if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST)) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index a67c78a12cc28..d5b3ecb16aff2 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -420,6 +420,10 @@ world } \ current_layer = base_layer + appearance.layer + current_layer / 1000; \ } \ + /* If we are using topdown rendering, chop that part off so things layer together as expected */ \ + if((current_layer >= TOPDOWN_LAYER && current_layer < EFFECTS_LAYER) || current_layer > TOPDOWN_LAYER + EFFECTS_LAYER) { \ + current_layer -= TOPDOWN_LAYER; \ + } \ for (var/index_to_compare_to in 1 to layers.len) { \ var/compare_to = layers[index_to_compare_to]; \ if (current_layer < layers[compare_to]) { \ @@ -431,9 +435,10 @@ world } var/static/icon/flat_template = icon('icons/blanks/32x32.dmi', "nothing") + var/icon/flat = icon(flat_template) if(!appearance || appearance.alpha <= 0) - return icon(flat_template) + return flat if(start) if(!defdir) @@ -474,10 +479,15 @@ world if(!base_icon_dir) base_icon_dir = curdir + // Expand our canvas to fit if we're too big + if(render_icon) + var/icon/active_icon = icon(curicon) + if(active_icon.Width() != 32 || active_icon.Height() != 32) + flat.Scale(active_icon.Width(), active_icon.Height()) + var/curblend = appearance.blend_mode || defblend if(appearance.overlays.len || appearance.underlays.len) - var/icon/flat = icon(flat_template) // Layers will be a sorted list of icons/overlays, based on the order in which they are displayed var/list/layers = list() var/image/copy diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 06f81e742adfe..67faf3f32b72c 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -28,6 +28,20 @@ else return COLOR_BLACK +/proc/random_hair_color() + var/static/list/natural_hair_colors = list( + "#111111", "#362925", "#3B3831", "#41250C", "#412922", + "#544C49", "#583322", "#593029", "#703b30", "#714721", + "#744729", "#74482a", "#7b746e", "#855832", "#863019", + "#8c4734", "#9F550E", "#A29A96", "#A4381C", "#B17B41", + "#C0BAB7", "#EFE5E4", "#F7F3F1", "#FFF2D6", "#a15537", + "#a17e61", "#b38b67", "#ba673c", "#c89f73", "#d9b380", + "#dbc9b8", "#e1621d", "#e17d17", "#e1af93", "#f1cc8f", + "#fbe7a1", + ) + + return pick(natural_hair_colors) + /proc/random_underwear(gender) if(length(SSaccessories.underwear_list) == 0) CRASH("No underwear to choose from!") diff --git a/code/__HELPERS/paths/path.dm b/code/__HELPERS/paths/path.dm index 61e50601e7848..189120b76c3bc 100644 --- a/code/__HELPERS/paths/path.dm +++ b/code/__HELPERS/paths/path.dm @@ -370,7 +370,7 @@ GLOBAL_LIST_INIT(can_pass_info_vars, GLOBAL_PROC_REF(can_pass_check_vars)) /datum/can_pass_info/proc/compare_against(datum/can_pass_info/check_against) for(var/comparable_var in GLOB.can_pass_info_vars) - if(!(vars[comparable_var] ~= check_against[comparable_var])) + if(!(vars[comparable_var] ~= check_against.vars[comparable_var])) return FALSE if(!pulling_info != !check_against.pulling_info) return FALSE diff --git a/code/__HELPERS/reagents.dm b/code/__HELPERS/reagents.dm index 012a1fd5cc09d..cb87e21cefa54 100644 --- a/code/__HELPERS/reagents.dm +++ b/code/__HELPERS/reagents.dm @@ -190,6 +190,16 @@ var/picked_reagent = pick(random_reagents) return picked_reagent +///Returns a random reagent consumable ethanol object minus blacklisted reagents +/proc/get_random_drink_id() + var/static/list/random_drinks = list() + if(!random_drinks.len) + for(var/datum/reagent/drink_path as anything in subtypesof(/datum/reagent/consumable/ethanol)) + if(initial(drink_path.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED) + random_drinks += drink_path + var/picked_drink = pick(random_drinks) + return picked_drink + ///Returns reagent datum from reagent name string /proc/get_chem_id(chem_name) for(var/X in GLOB.chemical_reagents_list) diff --git a/code/__HELPERS/records.dm b/code/__HELPERS/records.dm deleted file mode 100644 index 288ef5284d21f..0000000000000 --- a/code/__HELPERS/records.dm +++ /dev/null @@ -1,6 +0,0 @@ - -/proc/overwrite_field_if_available(datum/record/base, datum/record/other, field_name) - if(other[field_name]) - base[field_name] = other[field_name] - - diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 53b8b95997cc9..3d9bab22285f2 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -463,6 +463,9 @@ GLOBAL_LIST_INIT(binary, list("0","1")) /proc/random_color() return random_string(6, GLOB.hex_characters) +/proc/ready_random_color() + return "#" + random_string(6, GLOB.hex_characters) + //merges non-null characters (3rd argument) from "from" into "into". Returns result //e.g. into = "Hello World" // from = "Seeya______" diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm index 88509b88ce802..01ad88e68f4c3 100644 --- a/code/__HELPERS/turfs.dm +++ b/code/__HELPERS/turfs.dm @@ -213,6 +213,8 @@ Turf and target are separate in case you want to teleport some distance from a t var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as it's coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom if(!atom_turf) return null + if(checked_atom.flags_1 & IGNORE_TURF_PIXEL_OFFSET_1) + return atom_turf var/list/offsets = get_visual_offset(checked_atom) return pixel_offset_turf(atom_turf, offsets) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 87d4348580e29..0f19332934d09 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -16,7 +16,7 @@ // We use wrappers for this in case some part of the api ever changes, and to make their function more clear // For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. -/// Call by name proc references, checks if the proc exists on either this type or as a global proc. +/// Call by name proc references, checks if the proc exists on either this type () (AND ONLY THIS TYPE) or as a global proc. #define PROC_REF(X) (nameof(.proc/##X)) /// Call by name verb references, checks if the verb exists on either this type or as a global verb. #define VERB_REF(X) (nameof(.verb/##X)) diff --git a/code/_globalvars/admin.dm b/code/_globalvars/admin.dm index 363b84b923d32..96f07e3cca870 100644 --- a/code/_globalvars/admin.dm +++ b/code/_globalvars/admin.dm @@ -28,3 +28,123 @@ GLOBAL_LIST_INIT(vv_special_lists, init_special_list_names()) if(isnull(locate(REF(value)))) output += varname return output + +///A giant associative list of span names, and the associated key to create the text span. Used for narrate verbs. +GLOBAL_LIST_INIT(spanname_to_formatting, list( + "Abductor" = "abductor", + "Admin" = "admin", + "Adminhelp" = "adminhelp", + "Admin Notice" = "adminnotice", + "Admin Observer OOC" = "adminobserverooc", + "Admin OOC" = "adminooc", + "Adminsay" = "adminsay", + "AI Private Radio" = "aiprivradio", + "Alert" = "alert", + "Alien Alert" = "alertalien", + "Syndie Alert" = "alertsyndie", + "Alert Warning" = "alertwarning", + "Alien" = "alien", + "Average" = "average", + "Bad" = "bad", + "Big" = "big", + "Binary Say" = "binarysay", + "Blob" = "blob", + "Blob Announce" = "blobannounce", + "Blue" = "blue", + "Blue Team Radio" = "blueteamradio", + "Bold" = "bold", + "Bold Announce" = "boldannounce", + "Bold Danger" = "bolddanger", + "Bold Italic" = "bolditalic", + "Bold Nice Green" = "boldnicegreen", + "Bold Notice" = "boldnotice", + "Bold Warning" = "boldwarning", + "Big Bold" = "big bold", + "Centcom Radio" = "centcomradio", + "Changeling" = "changeling", + "Clown" = "clown", + "Colossus" = "colossus", + "Command Headset" = "command_headset", + "Cult" = "cult", + "Cult Bold" = "cult_bold", + "Cult Bold Italic" = "cult_bold_italic", + "Cult Italic" = "cult_italic", + "Cult Large" = "cult_large", + "Danger" = "danger", + "Deadchat" = "deadsay", + "Deconversion Message" = "deconversion_message", + "Drone Radio" = "drone", + "Engineering Radio" = "engradio", + "Extremely Big" = "extremelybig", + "Game Say" = "game say", + "Ghost Alert" = "ghostalert", + "Green" = "green", + "Green Announce" = "greenannounce", + "Green Team Radio" = "greenteamradio", + "Greentext" = "greentext", + "Grey" = "grey", + "Hierophant" = "hierophant", + "Hierophant Warning" = "hierophant_warning", + "Highlight" = "highlight", + "His Grace" = "his_grace", + "Holoparasite" = "holoparasite", + "Holoparasite Bold" = "holoparasite bold", + "Hypnosis" = "hypnophrase", + "Icon" = "icon", + "Info" = "info", + "Info Plain" = "infoplain", + "Interface" = "interface", + "Looc" = "looc", + "Medal" = "medal", + "Medradio" = "medradio", + "Message" = "message", + "Mind Control" = "mind_control", + "Monkey" = "monkey", + "Narsie" = "narsie", + "Narsie Small" = "narsiesmall", + "Nice Green" = "nicegreen", + "Notice" = "notice", + "Notice Alien" = "noticealien", + "OOC" = "ooc", + "Papyrus" = "papyrus", + "Phobia" = "phobia", + "Prefix" = "prefix", + "Purple" = "purple", + "Radio" = "radio", + "Really Big" = "reallybig", + "Red" = "red", + "Red Team Radio" = "redteamradio", + "Red Text" = "redtext", + "Golem Resonate" = "resonate", + "Revenant Big Notice" = "revenbignotice", + "Revenant Bold Notice" = "revenboldnotice", + "Revenant Danger" = "revendanger", + "Revenant Minor" = "revenminor", + "Revenant Notice" = "revennotice", + "Revenant Warning" = "revenwarning", + "Robot" = "robot", + "Rose" = "rose", + "Comic Sans" = "sans", + "Science Radio" = "sciradio", + "Security Radio" = "secradio", + "Service Radio" = "servradio", + "Singing" = "singing", + "Slime" = "slime", + "Small" = "small", + "Small Notice" = "smallnotice", + "Small Notice Italic" = "smallnoticeital", + "Spider Broodmother" = "spiderbroodmother", + "Spider Scout" = "spiderscout", + "Spider Breacher" = "spiderbreacher", + "Suicide" = "suicide", + "Supply Radio" = "suppradio", + "Syndicate Radio" = "syndradio", + "Tape Recorder" = "tape_recorder", + "Tiny Notice" = "tinynotice", + "Tiny Notice Italic" = "tinynoticeital", + "Unconcious" = "unconscious", + "User Danger" = "userdanger", + "Warning" = "warning", + "Yelling" = "yell", + "Yellow Team Radio" = "yellowteamradio", + )) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index dce2dc69a50ae..f9f70a2c7069f 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -31,6 +31,7 @@ GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_d GLOBAL_LIST_INIT(guardian_tech_surnames, world.file2list("strings/names/guardian_gamepieces.txt")) GLOBAL_LIST_INIT(guardian_fantasy_surnames, world.file2list("strings/names/guardian_tarot.txt")) GLOBAL_LIST_INIT(operative_aliases, world.file2list("strings/names/operative_alias.txt")) +GLOBAL_LIST_INIT(voidwalker_names, world.file2list("strings/names/voidwalker.txt")) GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 3696f42e77783..d098e1c11fb82 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -80,6 +80,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "STATION_TRAIT_BIGGER_PODS" = STATION_TRAIT_BIGGER_PODS, "STATION_TRAIT_BIRTHDAY" = STATION_TRAIT_BIRTHDAY, "STATION_TRAIT_BOTS_GLITCHED" = STATION_TRAIT_BOTS_GLITCHED, + "STATION_TRAIT_MACHINES_GLITCHED" = STATION_TRAIT_MACHINES_GLITCHED, "STATION_TRAIT_BRIGHT_DAY" = STATION_TRAIT_BRIGHT_DAY, "STATION_TRAIT_CARP_INFESTATION" = STATION_TRAIT_CARP_INFESTATION, "STATION_TRAIT_CYBERNETIC_REVOLUTION" = STATION_TRAIT_CYBERNETIC_REVOLUTION, @@ -111,6 +112,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj = list( "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, + "TRAIT_CONTRABAND" = TRAIT_CONTRABAND, ), /mob = list( "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, @@ -150,7 +152,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_BONSAI" = TRAIT_BONSAI, "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, - "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BORN_MONKEY" = TRAIT_BORN_MONKEY, "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BRAINWASHING" = TRAIT_BRAINWASHING, @@ -336,6 +337,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NOFIRE_SPREAD" = TRAIT_NOFIRE_SPREAD, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, @@ -440,6 +442,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, + "TRAIT_SLOW_FLIP" = TRAIT_SLOW_FLIP, "TRAIT_SMOKER" = TRAIT_SMOKER, "TRAIT_SNEAK" = TRAIT_SNEAK, "TRAIT_SNOB" = TRAIT_SNOB, @@ -449,6 +452,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SPARRING" = TRAIT_SPARRING, "TRAIT_SPEAKS_CLEARLY" = TRAIT_SPEAKS_CLEARLY, "TRAIT_SPECIAL_TRAUMA_BOOST" = TRAIT_SPECIAL_TRAUMA_BOOST, + "TRAIT_SPELLS_LOTTERY" = TRAIT_SPELLS_LOTTERY, "TRAIT_SPIDER_CONSUMED" = TRAIT_SPIDER_CONSUMED, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, "TRAIT_SPRAY_PAINTABLE" = TRAIT_SPRAY_PAINTABLE, @@ -462,6 +466,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH, "TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY, "TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE, + "TRAIT_STUN_ON_NEXT_SHOVE" = TRAIT_STUN_ON_NEXT_SHOVE, "TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME, "TRAIT_SUCCUMB_OVERRIDE" = TRAIT_SUCCUMB_OVERRIDE, "TRAIT_SUICIDED" = TRAIT_SUICIDED, @@ -522,9 +527,11 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, + "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, "TRAIT_BASIC_QUALITY_BAIT" = TRAIT_BASIC_QUALITY_BAIT, "TRAIT_BLIND_TOOL" = TRAIT_BLIND_TOOL, "TRAIT_BYPASS_RANGED_ARMOR" = TRAIT_BYPASS_RANGED_ARMOR, + "TRAIT_CONTRABAND_BLOCKER" = TRAIT_CONTRABAND_BLOCKER, "TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND, "TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT, "TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT, @@ -534,6 +541,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HAUNTED" = TRAIT_HAUNTED, "TRAIT_HONKSPAMMING" = TRAIT_HONKSPAMMING, "TRAIT_INNATELY_FANTASTICAL_ITEM" = TRAIT_INNATELY_FANTASTICAL_ITEM, + "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, "TRAIT_ITEM_OBJECTIVE_BLOCKED" = TRAIT_ITEM_OBJECTIVE_BLOCKED, "TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS, "TRAIT_NO_BARCODES" = TRAIT_NO_BARCODES, @@ -547,8 +555,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_TRANSFORM_ACTIVE" = TRAIT_TRANSFORM_ACTIVE, "TRAIT_UNCATCHABLE" = TRAIT_UNCATCHABLE, "TRAIT_WIELDED" = TRAIT_WIELDED, - "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, - "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, ), /obj/item/ammo_casing = list( "TRAIT_DART_HAS_INSERT" = TRAIT_DART_HAS_INSERT, @@ -632,15 +638,16 @@ GLOBAL_LIST_INIT(traits_by_type, list( /turf = list( "TRAIT_CHASM_STOPPED" = TRAIT_CHASM_STOPPED, "TRAIT_CONTAINMENT_FIELD" = TRAIT_CONTAINMENT_FIELD, + "TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF, "TRAIT_FIREDOOR_STOP" = TRAIT_FIREDOOR_STOP, + "TRAIT_FISHING_SPOT" = TRAIT_FISHING_SPOT, "TRAIT_HYPERSPACE_STOPPED" = TRAIT_HYPERSPACE_STOPPED, "TRAIT_IMMERSE_STOPPED" = TRAIT_IMMERSE_STOPPED, "TRAIT_LAVA_STOPPED" = TRAIT_LAVA_STOPPED, + "TRAIT_NO_TERRAFORM" = TRAIT_NO_TERRAFORM, "TRAIT_SPINNING_WEB_TURF" = TRAIT_SPINNING_WEB_TURF, "TRAIT_TURF_IGNORE_SLIPPERY" = TRAIT_TURF_IGNORE_SLIPPERY, "TRAIT_TURF_IGNORE_SLOWDOWN" = TRAIT_TURF_IGNORE_SLOWDOWN, - "TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF, - "TRAIT_FISHING_SPOT" = TRAIT_FISHING_SPOT, ), )) diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index e29a140bfe03a..a0ec998701541 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -155,6 +155,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_NOFIRE" = TRAIT_NOFIRE, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, @@ -202,6 +203,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, + "TRAIT_SLOW_FLIP" = TRAIT_SLOW_FLIP, "TRAIT_SMOKER" = TRAIT_SMOKER, "TRAIT_SNOB" = TRAIT_SNOB, "TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT, diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 4e9777ae9cd8d..a2dda93f4011f 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -31,7 +31,10 @@ MiddleClickOn(A, params) return if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) - A.borg_click_alt(src) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + AltClickSecondaryOn(A) + else + A.borg_click_alt(src) return if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 0b907833f76c7..1b1314bbcd5e5 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( for(var/group_key as anything in master_groups) var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, current_plane_offset) + group.build_planes_offset(src, current_plane_offset) /datum/hud/proc/should_use_scale() return should_sight_scale(mymob.sight) @@ -204,10 +204,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list( current_plane_offset = new_offset SEND_SIGNAL(src, COMSIG_HUD_OFFSET_CHANGED, old_offset, new_offset) - if(should_use_scale()) - for(var/group_key as anything in master_groups) - var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, new_offset) + for(var/group_key as anything in master_groups) + var/datum/plane_master_group/group = master_groups[group_key] + group.build_planes_offset(src, new_offset) /datum/hud/Destroy() if(mymob.hud_used == src) diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index f3bb3713225c9..b6ac49446fc80 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -1,6 +1,7 @@ /atom/movable/screen/movable/pic_in_pic name = "Picture-in-picture" screen_loc = "CENTER" + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE var/atom/center var/width = 0 diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm index 63c202b64fba8..23096cc0e9ccd 100644 --- a/code/_onclick/hud/rendering/plane_master_group.dm +++ b/code/_onclick/hud/rendering/plane_master_group.dm @@ -34,10 +34,18 @@ stack_trace("Hey brother, our key [key] is already in use by a plane master group on the passed in hud, belonging to [viewing_hud.mymob]. Ya fucked up, why are there dupes") return +#if MIN_COMPILER_VERSION > 516 + #warn Fully change default relay_loc to "1,1", rather than changing it based on client version +#endif + + if(viewing_hud.mymob?.client?.byond_version > 515) + relay_loc = "1,1" + rebuild_plane_masters() + our_hud = viewing_hud our_hud.master_groups[key] = src show_hud() - transform_lower_turfs(our_hud, active_offset) + build_planes_offset(our_hud, active_offset) /// Hide the plane master from its current hud, fully clear it out /datum/plane_master_group/proc/orphan_hud() @@ -56,7 +64,7 @@ hide_hud() rebuild_plane_masters() show_hud() - transform_lower_turfs(our_hud, active_offset) + build_planes_offset(our_hud, active_offset) /// Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays /datum/plane_master_group/proc/rebuild_plane_masters() @@ -89,7 +97,7 @@ /datum/plane_master_group/proc/build_plane_masters(starting_offset, ending_offset) for(var/atom/movable/screen/plane_master/mytype as anything in get_plane_types()) for(var/plane_offset in starting_offset to ending_offset) - if(plane_offset != 0 && !initial(mytype.allows_offsetting)) + if(plane_offset != 0 && (initial(mytype.offsetting_flags) & BLOCKS_PLANE_OFFSETTING)) continue var/atom/movable/screen/plane_master/instance = new mytype(null, null, src, plane_offset) plane_masters["[instance.plane]"] = instance @@ -102,7 +110,7 @@ // It would be nice to setup parallaxing for stairs and things when doing this // So they look nicer. if you can't it's all good, if you think you can sanely look at monster's work // It's hard, and potentially expensive. be careful -/datum/plane_master_group/proc/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/proc/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) // Check if this feature is disabled for the client, in which case don't use scale. var/mob/our_mob = our_hud?.mymob if(!our_mob?.client?.prefs?.read_preference(/datum/preference/toggle/multiz_parallax)) @@ -150,7 +158,11 @@ for(var/plane_key in plane_masters) var/atom/movable/screen/plane_master/plane = plane_masters[plane_key] - if(!plane.allows_offsetting) + if(plane.offsetting_flags & BLOCKS_PLANE_OFFSETTING) + if(plane.offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST) + // Don't offset the plane, do offset where the relays point + // Required for making things like the blind fullscreen not render over runechat + plane.offset_relays_in_place(new_offset) continue var/visual_offset = plane.offset - new_offset @@ -191,13 +203,13 @@ #undef MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS -/datum/plane_master_group/popup/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/popup/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) return ..(source, new_offset, FALSE) /// Holds the main plane master /datum/plane_master_group/main -/datum/plane_master_group/main/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/main/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) if(use_scale) return ..(source, new_offset, source.should_use_scale()) return ..() diff --git a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm index 13f94fa9f5aa0..bebf872f8ebe6 100644 --- a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm +++ b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm @@ -20,9 +20,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master) /// The plane master group we're a member of, our "home" var/datum/plane_master_group/home - /// If our plane master allows for offsetting - /// Mostly used for planes that really don't need to be duplicated, like the hud planes - var/allows_offsetting = TRUE + /// If our plane master has different offsetting logic + /// Possible flags are defined in [_DEFINES/layers.dm] + var/offsetting_flags = NONE /// Our offset from our "true" plane, see below var/offset /// When rendering multiz, lower levels get their own set of plane masters diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm index fa438af4b7016..c96361348f0de 100644 --- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm @@ -7,7 +7,7 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_relay_planes = list() // We do NOT allow offsetting, because there's no case where you would want to block only one layer, at least currently - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING // We mark as multiz_scaled FALSE so transforms don't effect us, and we draw to the planes below us as if they were us. // This is safe because we will ALWAYS be on the top z layer, so it DON'T MATTER multiz_scaled = FALSE @@ -368,7 +368,7 @@ appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) mouse_opacity = MOUSE_OPACITY_TRANSPARENT - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/runechat name = "Runechat" @@ -397,7 +397,7 @@ plane = HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/above_hud name = "Above HUD" @@ -405,7 +405,7 @@ plane = ABOVE_HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/splashscreen name = "Splashscreen" @@ -413,7 +413,7 @@ plane = SPLASHSCREEN_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/escape_menu name = "Escape Menu" @@ -421,4 +421,4 @@ plane = ESCAPE_MENU_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_MASTER) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index d33162a5b5fa6..e84663529825b 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -382,7 +382,7 @@ render_relay_planes = list(RENDER_PLANE_MASTER) /** - * Plane master proc called in Initialize() that creates relay objects, and sets them uo as needed + * Plane master proc called in Initialize() that creates relay objects, and sets them up as needed * Sets: * * layer from plane to avoid z-fighting * * planes to relay the render to @@ -392,6 +392,9 @@ * Other vars such as alpha will automatically be applied with the render source */ /atom/movable/screen/plane_master/proc/generate_render_relays() +#if MIN_COMPILER_VERSION > 516 + #warn Fully change default relay_loc to "1,1" +#endif var/relay_loc = home?.relay_loc || "CENTER" // If we're using a submap (say for a popup window) make sure we draw onto it if(home?.map) @@ -426,7 +429,7 @@ if(!length(relays) && !initial(render_target)) render_target = OFFSET_RENDER_TARGET(get_plane_master_render_base(name), offset) if(!relay_loc) - relay_loc = "CENTER" + relay_loc = (show_to?.byond_version > 515) ? "1,1" : "CENTER" // If we're using a submap (say for a popup window) make sure we draw onto it if(home?.map) relay_loc = "[home.map]:[relay_loc]" @@ -454,6 +457,8 @@ // That's what this is for if(show_to) show_to.screen += relay + if(offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST && home.our_hud) + offset_relay(relay, home.our_hud.current_plane_offset) return relay /// Breaks a connection between this plane master, and the passed in place @@ -476,3 +481,40 @@ return relay return null + +/** + * Offsets our relays in place using the given parameter by adjusting their plane and + * layer values, avoiding changing the layer for relays with custom-set layers. + * + * Used in [proc/build_planes_offset] to make the relays for non-offsetting planes + * match the highest rendering plane that matches the target, to avoid them rendering + * on the highest level above things that should be visible. + * + * Parameters: + * - new_offset: the offset we will adjust our relays to + */ +/atom/movable/screen/plane_master/proc/offset_relays_in_place(new_offset) + for(var/atom/movable/render_plane_relay/rpr in relays) + offset_relay(rpr, new_offset) + +/** + * Offsets a given render relay using the given parameter by adjusting its plane and + * layer values, avoiding changing the layer if it has a custom-set layer. + * + * Parameters: + * - rpr: the render plane relay we will offset + * - new_offset: the offset we will adjust it by + */ +/atom/movable/screen/plane_master/proc/offset_relay(atom/movable/render_plane_relay/rpr, new_offset) + var/base_relay_plane = PLANE_TO_TRUE(rpr.plane) + var/old_offset = PLANE_TO_OFFSET(rpr.plane) + rpr.plane = GET_NEW_PLANE(base_relay_plane, new_offset) + + var/old_offset_plane = real_plane - (PLANE_RANGE * old_offset) + var/old_layer = (old_offset_plane + abs(LOWEST_EVER_PLANE * 30)) + if(rpr.layer != old_layer) // Avoid overriding custom-set layers + return + + var/offset_plane = real_plane - (PLANE_RANGE * new_offset) + var/new_layer = (offset_plane + abs(LOWEST_EVER_PLANE * 30)) + rpr.layer = new_layer diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 068f857c8cb31..30fdfe389ffe4 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -464,3 +464,13 @@ /datum/config_entry/number/max_positive_quirks default = 6 min_val = -1 + +/** + * A config that skews with the random spawners weights + * If the value is lower than 1, it'll tend to even out the odds + * If higher than 1, it'll lean toward common spawns even more. + */ +/datum/config_entry/number/random_loot_weight_modifier + integer = FALSE + default = 1 + min_val = 0.05 diff --git a/code/controllers/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm index f6a4aa25566ff..5c88177583b2f 100644 --- a/code/controllers/subsystem/blackmarket.dm +++ b/code/controllers/subsystem/blackmarket.dm @@ -79,7 +79,7 @@ SUBSYSTEM_DEF(blackmarket) to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.")) // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket,fake_teleport), purchase, targetturf), 60 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket, fake_teleport), purchase, targetturf), 60 SECONDS) // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. if(SHIPPING_METHOD_LAUNCH) @@ -88,6 +88,7 @@ SUBSYSTEM_DEF(blackmarket) var/pickedloc = spaceDebrisStartLoc(startSide, T.z) var/atom/movable/item = purchase.entry.spawn_item(pickedloc, purchase) + purchase.post_purchase_effects(item) item.throw_at(purchase.uplink, 3, 3, spin = FALSE) to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at the station from [dir2text(startSide)].")) @@ -110,6 +111,7 @@ SUBSYSTEM_DEF(blackmarket) if(QDELETED(purchase)) return var/atom/movable/thing = purchase.entry.spawn_item(target, purchase) + purchase.post_purchase_effects(thing) var/datum/effect_system/spark_spread/sparks = new sparks.set_up(5, 1, target) sparks.attach(thing) diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm index 857a1babd3249..7d91ca6b565ce 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm @@ -949,3 +949,42 @@ #undef MALF_ION_PROB #undef REPLACE_LAW_WITH_ION_PROB + +/// Midround Voidwalker Ruleset (From Ghosts) +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker + name = "Voidwalker" + midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT + antag_datum = /datum/antagonist/voidwalker + antag_flag = ROLE_VOIDWALKER + antag_flag_override = ROLE_VOIDWALKER + ruleset_category = parent_type::ruleset_category | RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 2 + cost = 5 + minimum_players = 40 + repeatable = TRUE + ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) + /// The space turf we find in acceptable(), cached for ease + var/space_turf + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/acceptable(population = 0, threat_level = 0) + space_turf = find_space_spawn() + if(!space_turf) + return FALSE + return ..() + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/generate_ruleset_body(mob/applicant) + var/datum/mind/player_mind = new /datum/mind(applicant.key) + player_mind.active = TRUE + + var/mob/living/carbon/human/voidwalker = new (space_turf) + player_mind.transfer_to(voidwalker) + player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/voidwalker)) + player_mind.special_role = antag_flag + player_mind.add_antag_datum(antag_datum) + + playsound(voidwalker, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(voidwalker)] has been made into a Voidwalker by the midround ruleset.") + log_dynamic("[key_name(voidwalker)] was spawned as a Voidwalker by the midround ruleset.") + return voidwalker diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index dc1091bcfc516..697beaee19b39 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -389,6 +389,7 @@ SUBSYSTEM_DEF(job) //Setup new player list and get the jobs list JobDebug("Running DO, allow_all = [allow_all], pure = [pure]") run_divide_occupation_pure = pure + SEND_SIGNAL(src, COMSIG_OCCUPATIONS_DIVIDED, pure, allow_all) //Get the players who are ready for(var/i in GLOB.new_player_list) @@ -621,6 +622,7 @@ SUBSYSTEM_DEF(job) var/never = 0 //never var/banned = 0 //banned var/young = 0 //account too young + var/newbie = 0 //exp too low for(var/i in GLOB.new_player_list) var/mob/dead/new_player/player = i if(!(player.ready == PLAYER_READY_TO_PLAY && player.mind && is_unassigned_job(player.mind.assigned_role))) @@ -632,7 +634,7 @@ SUBSYSTEM_DEF(job) young++ continue if(job.required_playtime_remaining(player.client)) - young++ + newbie++ continue switch(player.client.prefs.job_preferences[job.title]) if(JP_HIGH) @@ -649,6 +651,7 @@ SUBSYSTEM_DEF(job) SSblackbox.record_feedback("nested tally", "job_preferences", never, list("[job.title]", "never")) SSblackbox.record_feedback("nested tally", "job_preferences", banned, list("[job.title]", "banned")) SSblackbox.record_feedback("nested tally", "job_preferences", young, list("[job.title]", "young")) + SSblackbox.record_feedback("nested tally", "job_preferences", newbie, list("[job.title]", "newbie")) /datum/controller/subsystem/job/proc/PopcapReached() var/hpc = CONFIG_GET(number/hard_popcap) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 041359006797b..548bd2cf1ed7e 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -890,7 +890,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away var/offset_plane = GET_NEW_PLANE(plane_to_use, plane_offset) var/string_plane = "[offset_plane]" - if(!initial(master_type.allows_offsetting)) + if(initial(master_type.offsetting_flags) & BLOCKS_PLANE_OFFSETTING) plane_offset_blacklist[string_plane] = TRUE var/render_target = initial(master_type.render_target) if(!render_target) diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 212af9076bda6..28ebd80560f82 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -97,4 +97,12 @@ SUBSYSTEM_DEF(parallax) /datum/controller/subsystem/parallax/proc/post_station_setup() random_layer?.apply_global_effects() +/// Return the most dominant color, if we have a colored background (mostly nebula gas) +/datum/controller/subsystem/parallax/proc/get_parallax_color() + var/atom/movable/screen/parallax_layer/random/space_gas/gas = random_layer + if(!istype(gas)) + return + + return gas.parallax_color + #undef PARALLAX_NONE diff --git a/code/controllers/subsystem/persistence/counter_delamination.dm b/code/controllers/subsystem/persistence/counter_delamination.dm index 81dca300c7e1e..dba683bc929a3 100644 --- a/code/controllers/subsystem/persistence/counter_delamination.dm +++ b/code/controllers/subsystem/persistence/counter_delamination.dm @@ -8,7 +8,7 @@ rounds_since_engine_exploded = text2num(file2text(DELAMINATION_COUNT_FILEPATH)) if(fexists(DELAMINATION_HIGHSCORE_FILEPATH)) delam_highscore = text2num(file2text(DELAMINATION_HIGHSCORE_FILEPATH)) - for(var/obj/machinery/incident_display/sign as anything in GLOB.map_delamination_counters) + for(var/obj/machinery/incident_display/sign as anything in GLOB.map_incident_displays) sign.update_delam_count(rounds_since_engine_exploded, delam_highscore) /datum/controller/subsystem/persistence/proc/save_delamination_counter() diff --git a/code/controllers/subsystem/persistent_paintings.dm b/code/controllers/subsystem/persistent_paintings.dm index af0644a9a0d52..7da30fd477239 100644 --- a/code/controllers/subsystem/persistent_paintings.dm +++ b/code/controllers/subsystem/persistent_paintings.dm @@ -1,14 +1,5 @@ #define PAINTINGS_DATA_FORMAT_VERSION 3 -// Patronage thresholds for paintings. Different cosmetic frames become available as more credits are spent on the patronage. -#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 -#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) -#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) -#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) -#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) -#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) -#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) - /* { "version":2 @@ -334,11 +325,3 @@ SUBSYSTEM_DEF(persistent_paintings) cache_paintings() #undef PAINTINGS_DATA_FORMAT_VERSION -#undef PATRONAGE_OK_FRAME -#undef PATRONAGE_NICE_FRAME -#undef PATRONAGE_GREAT_FRAME -#undef PATRONAGE_EXCELLENT_FRAME -#undef PATRONAGE_AMAZING_FRAME -#undef PATRONAGE_SUPERB_FRAME -#undef PATRONAGE_LEGENDARY_FRAME - diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index b51e686c6a644..f29169c76e72f 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -7,7 +7,7 @@ SUBSYSTEM_DEF(research) //TECHWEB STATIC var/list/techweb_nodes = list() //associative id = node datum var/list/techweb_designs = list() //associative id = node datum - var/list/datum/design/item_to_design = list() //typepath = list of design datums + var/list/list/datum/design/item_to_design = list() //typepath = list of design datums ///List of all techwebs, generating points or not. ///Autolathes, Mechfabs, and others all have shared techwebs, for example. @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(research) var/list/techweb_nodes_experimental = list() ///path = list(point type = value) var/list/techweb_point_items = list( - /obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + /obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) ) var/list/errored_datums = list() ///Associated list of all point types that techwebs will have and their respective 'abbreviated' name. @@ -102,6 +102,13 @@ SUBSYSTEM_DEF(research) techweb_list.last_income = world.time + if(techweb_list.research_queue_nodes.len) + techweb_list.research_node_id(techweb_list.research_queue_nodes[1]) // Attempt to research the first node in queue if possible + + for(var/datum/techweb_node/node as anything in techweb_list.research_queue_nodes) + if(node.is_free(techweb_list)) // Automatically research all free nodes in queue if any + techweb_list.research_node(node) + /datum/controller/subsystem/research/proc/autosort_categories() for(var/i in techweb_nodes) var/datum/techweb_node/I = techweb_nodes[i] diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index ebb1f4bc44f9f..f8ee167befbf8 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -527,7 +527,7 @@ SUBSYSTEM_DEF(shuttle) sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) - if(!emergency_no_escape && (emergency.mode == SHUTTLE_STRANDED)) + if(!emergency_no_escape && (emergency.mode == SHUTTLE_STRANDED || emergency.mode == SHUTTLE_DOCKED)) emergency.mode = SHUTTLE_DOCKED emergency.setTimer(emergency_dock_time) priority_announce( diff --git a/code/controllers/subsystem/spatial_gridmap.dm b/code/controllers/subsystem/spatial_gridmap.dm index 81ae29f6bad4f..76aa484bf92ce 100644 --- a/code/controllers/subsystem/spatial_gridmap.dm +++ b/code/controllers/subsystem/spatial_gridmap.dm @@ -234,7 +234,7 @@ SUBSYSTEM_DEF(spatial_grid) . = list() //technically THIS list only contains lists, but inside those lists are grid cell datums and we can go without a SINGLE var init if we do this - var/list/datum/spatial_grid_cell/grid_level = grids_by_z_level[center_turf.z] + var/list/list/datum/spatial_grid_cell/grid_level = grids_by_z_level[center_turf.z] switch(type) if(SPATIAL_GRID_CONTENTS_TYPE_CLIENTS) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index b7c26acf375ee..1c519e8aff159 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -274,6 +274,15 @@ SUBSYSTEM_DEF(vote) return FALSE return TRUE + +/datum/controller/subsystem/vote/proc/toggle_dead_voting(mob/toggle_initiator) + var/switch_deadvote_config = !CONFIG_GET(flag/no_dead_vote) + CONFIG_SET(flag/no_dead_vote, switch_deadvote_config) + var/text_verb = !switch_deadvote_config ? "enabled" : "disabled" + log_admin("[key_name(toggle_initiator)] [text_verb] Dead Vote.") + message_admins("[key_name_admin(toggle_initiator)] [text_verb] Dead Vote.") + SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dead Vote", text_verb)) + /datum/controller/subsystem/vote/ui_state() return GLOB.always_state @@ -293,6 +302,7 @@ SUBSYSTEM_DEF(vote) data["user"] = list( "ckey" = user.client?.ckey, + "isGhost" = CONFIG_GET(flag/no_dead_vote) && user.stat == DEAD && !user.client?.holder, "isLowerAdmin" = is_lower_admin, "isUpperAdmin" = is_upper_admin, // What the current user has selected in any ongoing votes. @@ -377,6 +387,15 @@ SUBSYSTEM_DEF(vote) end_vote() return TRUE + if("toggleDeadVote") + if(!check_rights_for(voter.client, R_ADMIN)) + message_admins("[key_name(voter)] tried to toggle vote abillity for ghosts while having improper rights, \ + this is potentially a malicious exploit and worth noting.") + return + + toggle_dead_voting(voter) + return TRUE + if("toggleVote") var/datum/vote/selected = possible_votes[params["voteName"]] if(!istype(selected)) diff --git a/code/datums/actions/items/toggles.dm b/code/datums/actions/items/toggles.dm index 53c9e4f53cc9f..449cf11124abf 100644 --- a/code/datums/actions/items/toggles.dm +++ b/code/datums/actions/items/toggles.dm @@ -116,3 +116,36 @@ /datum/action/item_action/call_link name = "Call MODlink" +/datum/action/item_action/toggle_nv + name = "Toggle Night Vision" + var/stored_cutoffs + var/stored_colour + +/datum/action/item_action/toggle_nv/New(obj/item/clothing/glasses/target) + . = ..() + target.AddElement(/datum/element/update_icon_updates_onmob) + +/datum/action/item_action/toggle_nv/Trigger(trigger_flags) + if(!istype(target, /obj/item/clothing/glasses)) + return ..() + var/obj/item/clothing/glasses/goggles = target + var/mob/holder = goggles.loc + if(!istype(holder) || holder.get_slot_by_item(goggles) != ITEM_SLOT_EYES) + holder = null + if(stored_cutoffs) + goggles.color_cutoffs = stored_cutoffs + goggles.flash_protect = FLASH_PROTECTION_SENSITIVE + stored_cutoffs = null + if(stored_colour) + goggles.change_glass_color(stored_colour) + playsound(goggles, 'sound/items/night_vision_on.ogg', 30, TRUE, -3) + else + stored_cutoffs = goggles.color_cutoffs + stored_colour = goggles.glass_colour_type + goggles.color_cutoffs = list() + goggles.flash_protect = FLASH_PROTECTION_NONE + if(stored_colour) + goggles.change_glass_color(null) + playsound(goggles, 'sound/machines/click.ogg', 30, TRUE, -3) + holder?.update_sight() + goggles.update_appearance() diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm index 7b46a7b06e803..33b63f09a01dc 100644 --- a/code/datums/ai/_ai_controller.dm +++ b/code/datums/ai/_ai_controller.dm @@ -176,7 +176,15 @@ multiple modular subtrees with behaviors if(ai_status == AI_STATUS_OFF) return - if(exited && (get_dist(pawn, (islist(exited) ? exited[1] : exited)) <= interesting_dist)) //is our target in between interesting cells? + var/distance = INFINITY + if(islist(exited)) + var/list/exited_list = exited + distance = get_dist(pawn, exited_list[1]) + else if(isatom(exited)) + var/atom/exited_atom = exited + distance = get_dist(pawn, exited_atom) + + if(distance <= interesting_dist) //is our target in between interesting cells? return if(should_idle()) diff --git a/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm index 12c77119f3e18..e6427455c4edf 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm @@ -35,7 +35,7 @@ var/look_for_land = controller.blackboard[BB_CURRENTLY_SWIMMING] var/list/possible_turfs = list() for(var/turf/possible_turf in oview(search_range, living_pawn)) - if(isclosedturf(possible_turf) || isspaceturf(possible_turf) || isopenspaceturf(possible_turf)) + if(isclosedturf(possible_turf) || is_space_or_openspace(possible_turf)) continue if(possible_turf.is_blocked_turf()) continue diff --git a/code/datums/bodypart_overlays/bodypart_overlay.dm b/code/datums/bodypart_overlays/bodypart_overlay.dm index 22f2b15f2ccd0..960a1a55029e1 100644 --- a/code/datums/bodypart_overlays/bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/bodypart_overlay.dm @@ -68,3 +68,7 @@ ///Generate a unique identifier to cache with. If you change something about the image, but the icon cache stays the same, it'll simply pull the unchanged image out of the cache /datum/bodypart_overlay/proc/generate_icon_cache() return list() + +/// Additionally color or texture the limb +/datum/bodypart_overlay/proc/modify_bodypart_appearance(datum/appearance) + return diff --git a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm index c2c6f54d861d3..5c11fe9f70334 100644 --- a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm @@ -15,7 +15,7 @@ /datum/bodypart_overlay/simple/body_marking/get_image(layer, obj/item/bodypart/limb) var/gender_string = (use_gender && limb.is_dimorphic) ? (limb.gender == MALE ? MALE : FEMALE + "_") : "" //we only got male and female sprites - return image(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) + return mutable_appearance(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) /datum/bodypart_overlay/simple/body_marking/moth dna_feature_key = "moth_markings" diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm index 7f52d21de5398..6c9eb4240ecd0 100644 --- a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm @@ -9,7 +9,7 @@ var/draw_color /datum/bodypart_overlay/simple/get_image(layer, obj/item/bodypart/limb) - return image(icon, icon_state, layer = layer) + return mutable_appearance(icon, icon_state, layer = layer) /datum/bodypart_overlay/simple/color_image(image/overlay, layer, obj/item/bodypart/limb) diff --git a/code/datums/bodypart_overlays/texture_bodypart_overlay.dm b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm new file mode 100644 index 0000000000000..e8d578bb16cc0 --- /dev/null +++ b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm @@ -0,0 +1,23 @@ +/// Bodypart overlays focused on texturing limbs +/datum/bodypart_overlay/texture + /// icon file for the texture + var/texture_icon + /// icon state for the texture + var/texture_icon_state + /// Cache the icon so we dont have to make a new one each time + var/cached_texture_icon + +/datum/bodypart_overlay/texture/New() + . = ..() + + cached_texture_icon = icon(texture_icon, texture_icon_state) + +/datum/bodypart_overlay/texture/modify_bodypart_appearance(datum/appearance) + appearance.add_filter("bodypart_texture_[texture_icon_state]", 1, layering_filter(icon = cached_texture_icon,blend_mode = BLEND_INSET_OVERLAY)) + +/datum/bodypart_overlay/texture/generate_icon_cache() + return "[type]" + +/datum/bodypart_overlay/texture/spacey + texture_icon_state = "spacey" + texture_icon = 'icons/mob/human/textures.dmi' diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index acf9ceead56ce..b258abed65dda 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -273,17 +273,17 @@ */ /datum/proc/GetExactComponent(datum/component/c_type) RETURN_TYPE(c_type) - if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) + var/initial_type_mode = initial(c_type.dupe_mode) + if(initial_type_mode == COMPONENT_DUPE_ALLOWED || initial_type_mode == COMPONENT_DUPE_SELECTIVE) stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]") - var/list/dc = _datum_components - if(!dc) + var/list/all_components = _datum_components + if(!all_components) return null - var/datum/component/C = dc[c_type] - if(C) - if(length(C)) - C = C[1] - if(C.type == c_type) - return C + var/datum/component/potential_component + if(length(all_components)) + potential_component = all_components[c_type] + if(potential_component?.type == c_type) + return potential_component return null /** diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index 48e5b10b25f19..e7d18f8208173 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -41,13 +41,27 @@ datum/callback/expiration, ) - if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) - RegisterSignals(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) - else if(ismob(parent)) - register_antimagic_signals(parent) - else + + var/atom/movable/movable = parent + if(!istype(movable)) + return COMPONENT_INCOMPATIBLE + + var/compatible = FALSE + if(isitem(movable)) + RegisterSignal(movable, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(movable, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignals(movable, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) + compatible = TRUE + else if(ismob(movable)) + register_antimagic_signals(movable) + compatible = TRUE + + if(movable.can_buckle) + RegisterSignal(movable, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle)) + RegisterSignal(movable, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle)) + compatible = TRUE + + if(!compatible) return COMPONENT_INCOMPATIBLE src.antimagic_flags = antimagic_flags @@ -68,6 +82,14 @@ /datum/component/anti_magic/proc/unregister_antimagic_signals(datum/on_what) UnregisterSignal(on_what, list(COMSIG_MOB_RECEIVE_MAGIC, COMSIG_MOB_RESTRICT_MAGIC)) +/datum/component/anti_magic/proc/on_buckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + register_antimagic_signals(bucklee) + +/datum/component/anti_magic/proc/on_unbuckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + unregister_antimagic_signals(bucklee) + /datum/component/anti_magic/proc/on_equip(atom/movable/source, mob/equipper, slot) SIGNAL_HANDLER diff --git a/code/datums/components/aquarium_content.dm b/code/datums/components/aquarium_content.dm index 21e082399a882..21c6c75ca169a 100644 --- a/code/datums/components/aquarium_content.dm +++ b/code/datums/components/aquarium_content.dm @@ -1,3 +1,14 @@ +///Malus to the beauty value if the fish content is dead +#define DEAD_FISH_BEAUTY -500 +///Prevents more impressive fishes from providing a positive beauty even when dead. +#define MAX_DEAD_FISH_BEAUTY -200 +///Some fish are already so ugly, they can't get much worse when dead +#define MIN_DEAD_FISH_BEAUTY -600 + +///Defines that clamp the beauty of the aquarium, to prevent it from making most areas great or horrid all by itself. +#define MIN_AQUARIUM_BEAUTY -3500 +#define MAX_AQUARIUM_BEAUTY 6000 + /// Allows movables to be inserted/displayed in aquariums. /datum/component/aquarium_content /// Keeps track of our current aquarium. @@ -60,13 +71,19 @@ /// Signals of the parent that will trigger animation update var/animation_update_signals + /// The current beauty this component gives to the aquarium it's in + var/beauty -/datum/component/aquarium_content/Initialize(icon, animation_getter, animation_update_signals) + /// The original value of the beauty this component had when initialized + var/original_beauty + +/datum/component/aquarium_content/Initialize(icon, animation_getter, animation_update_signals, beauty) if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE src.animation_getter = animation_getter src.animation_update_signals = animation_update_signals + src.beauty = original_beauty = beauty if(animation_update_signals) RegisterSignals(parent, animation_update_signals, PROC_REF(generate_animation)) @@ -78,6 +95,7 @@ InitializeOther() ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) + RegisterSignal(parent, COMSIG_TRY_INSERTING_IN_AQUARIUM, PROC_REF(is_ready_to_insert)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) //If component is added to something already in aquarium at the time initialize it properly. @@ -109,6 +127,18 @@ randomize_position = TRUE + RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_fish_status_changed)) + +/datum/component/aquarium_content/proc/on_fish_status_changed(obj/item/fish/source) + SIGNAL_HANDLER + var/old_beauty = beauty + beauty = original_beauty + if(source.status == FISH_DEAD) + beauty = clamp(beauty + DEAD_FISH_BEAUTY, MIN_DEAD_FISH_BEAUTY, MAX_DEAD_FISH_BEAUTY) + if(current_aquarium) + change_aquarium_beauty(beauty - old_beauty) + generate_animation() + /// Sets visuals properties for fish /datum/component/aquarium_content/proc/InitializeFromProp() var/obj/item/aquarium_prop/prop = parent @@ -150,15 +180,16 @@ if(istype(movable_parent.loc, /obj/structure/aquarium)) on_inserted(movable_parent.loc) -/datum/component/aquarium_content/proc/is_ready_to_insert(obj/structure/aquarium/aquarium) +/datum/component/aquarium_content/proc/is_ready_to_insert(datum/source, obj/structure/aquarium/aquarium) + SIGNAL_HANDLER //This is kinda awful but we're unaware of other fish if(unique) for(var/atom/movable/fish_or_prop in aquarium) if(fish_or_prop == parent) continue if(fish_or_prop.type == parent.type) - return FALSE - return TRUE + return COMSIG_CANNOT_INSERT_IN_AQUARIUM + return COMSIG_CAN_INSERT_IN_AQUARIUM /datum/component/aquarium_content/proc/on_inserted(atom/aquarium) current_aquarium = aquarium @@ -180,6 +211,22 @@ //Finally add it to to objects vis_contents current_aquarium.vis_contents |= vc_obj + change_aquarium_beauty(beauty) + +///Modifies the beauty of the aquarium when content is added or removed, or when fishes die or live again somehow. +/datum/component/aquarium_content/proc/change_aquarium_beauty(change) + if(QDELETED(current_aquarium) || !change) + return + var/old_clamped_beauty = clamp(current_aquarium.current_beauty, MIN_AQUARIUM_BEAUTY, MAX_AQUARIUM_BEAUTY) + current_aquarium.current_beauty += change + var/new_clamped_beauty = clamp(current_aquarium.current_beauty, MIN_AQUARIUM_BEAUTY, MAX_AQUARIUM_BEAUTY) + if(new_clamped_beauty == old_clamped_beauty) + return + if(current_aquarium.current_beauty) + current_aquarium.RemoveElement(/datum/element/beauty, current_aquarium.current_beauty) + if(current_aquarium.current_beauty) + current_aquarium.AddElement(/datum/element/beauty, current_aquarium.current_beauty) + /// Aquarium surface changed in some way, we need to recalculate base position and aninmation /datum/component/aquarium_content/proc/on_surface_changed() SIGNAL_HANDLER @@ -293,13 +340,20 @@ vc_obj.pixel_x = base_px vc_obj.pixel_y = base_py -/datum/component/aquarium_content/proc/on_removed(datum/source, atom/movable/gone, direction) +/datum/component/aquarium_content/proc/on_removed(obj/structure/aquarium/source, atom/movable/gone, direction) SIGNAL_HANDLER if(parent != gone) return remove_from_aquarium() /datum/component/aquarium_content/proc/remove_from_aquarium() + change_aquarium_beauty(-beauty) UnregisterSignal(current_aquarium, list(COMSIG_AQUARIUM_SURFACE_CHANGED, COMSIG_AQUARIUM_FLUID_CHANGED, COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_EXITED)) remove_visual_from_aquarium() current_aquarium = null + +#undef DEAD_FISH_BEAUTY +#undef MIN_DEAD_FISH_BEAUTY +#undef MAX_DEAD_FISH_BEAUTY +#undef MIN_AQUARIUM_BEAUTY +#undef MAX_AQUARIUM_BEAUTY diff --git a/code/datums/components/banned_from_space.dm b/code/datums/components/banned_from_space.dm new file mode 100644 index 0000000000000..ae1d6701dd701 --- /dev/null +++ b/code/datums/components/banned_from_space.dm @@ -0,0 +1,37 @@ +/// Following recent tomfoolery, we've decided to ban you from space. +/datum/component/banned_from_space + /// List of recent tiles we walked on that aren't space + var/list/tiles = list() + /// The max amount of tiles we store + var/max_tile_list_size = 4 + +/datum/component/banned_from_space/Initialize(...) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(check_if_space)) + +/datum/component/banned_from_space/proc/check_if_space(atom/source, atom/new_location) + SIGNAL_HANDLER + + if(!isturf(new_location)) + return + + if(isspaceturf(new_location)) + send_back(parent) + + else + tiles.Add(new_location) + if(tiles.len > max_tile_list_size) + tiles.Cut(1, 2) + +/datum/component/banned_from_space/proc/send_back(atom/movable/parent) + var/new_turf + + if(tiles.len) + new_turf = tiles[1] + new /obj/effect/temp_visual/portal_animation(parent.loc, new_turf, parent) + else + new_turf = get_random_station_turf() + + parent.forceMove(new_turf) diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm index ef882a5f96f28..461cfcff3aae4 100644 --- a/code/datums/components/bloodysoles.dm +++ b/code/datums/components/bloodysoles.dm @@ -1,3 +1,5 @@ +/// The percentage of blood we lose on each step +#define BLOOD_PERCENT_LOSS_ON_STEP 0.33 /** * Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes. @@ -172,10 +174,11 @@ if(wielder.body_position == LYING_DOWN || !wielder.has_gravity(wielder.loc)) return - var/half_our_blood = bloody_shoes[last_blood_state] / 2 + var/blood_lost = bloody_shoes[last_blood_state] * BLOOD_PERCENT_LOSS_ON_STEP + var/theoretical_new_blood = bloody_shoes[last_blood_state] - blood_lost var/footprint_sprite = wielder.get_footprint_sprite() // Add footprints in old loc if we have enough cream - if(half_our_blood >= BLOOD_FOOTPRINTS_MIN) + if(theoretical_new_blood >= BLOOD_FOOTPRINTS_MIN) var/turf/oldLocTurf = get_turf(OldLoc) var/obj/effect/decal/cleanable/blood/footprints/oldLocFP = find_pool_by_blood_state(oldLocTurf, /obj/effect/decal/cleanable/blood/footprints, footprint_sprite) if(oldLocFP) @@ -186,7 +189,7 @@ oldLocFP.update_appearance() else if(find_pool_by_blood_state(oldLocTurf, footprint_sprite = footprint_sprite)) // No footprints in the tile we left, but there was some other blood pool there. Add exit footprints on it - adjust_bloody_shoes(last_blood_state, half_our_blood) + adjust_bloody_shoes(last_blood_state, blood_lost) update_icon() oldLocFP = new(oldLocTurf, footprint_sprite) @@ -194,19 +197,20 @@ oldLocFP.blood_state = last_blood_state oldLocFP.exited_dirs |= wielder.dir add_parent_to_footprint(oldLocFP) - oldLocFP.bloodiness = half_our_blood + oldLocFP.bloodiness = blood_lost oldLocFP.add_blood_DNA(GET_ATOM_BLOOD_DNA(parent_atom)) oldLocFP.update_appearance() - half_our_blood = bloody_shoes[last_blood_state] / 2 + blood_lost = bloody_shoes[last_blood_state] * BLOOD_PERCENT_LOSS_ON_STEP + theoretical_new_blood = theoretical_new_blood - blood_lost // If we picked up the blood on this tick in on_step_blood, don't make footprints at the same place if(last_pickup && last_pickup == world.time) return // Create new footprints - if(half_our_blood >= BLOOD_FOOTPRINTS_MIN) - adjust_bloody_shoes(last_blood_state, half_our_blood) + if(theoretical_new_blood >= BLOOD_FOOTPRINTS_MIN) + adjust_bloody_shoes(last_blood_state, blood_lost) update_icon() var/obj/effect/decal/cleanable/blood/footprints/FP = new(get_turf(parent_atom), footprint_sprite) @@ -214,7 +218,7 @@ FP.blood_state = last_blood_state FP.entered_dirs |= wielder.dir add_parent_to_footprint(FP) - FP.bloodiness = half_our_blood + FP.bloodiness = blood_lost FP.add_blood_DNA(GET_ATOM_BLOOD_DNA(parent_atom)) FP.update_appearance() @@ -234,10 +238,11 @@ // The pool we stepped in was actually footprints with the same type var/obj/effect/decal/cleanable/blood/footprints/pool_FP = pool add_parent_to_footprint(pool_FP) - if((bloody_shoes[last_blood_state] / 2) >= BLOOD_FOOTPRINTS_MIN && !(pool_FP.entered_dirs & wielder.dir)) + if((bloody_shoes[last_blood_state] - (bloody_shoes[last_blood_state] * BLOOD_PERCENT_LOSS_ON_STEP)) >= BLOOD_FOOTPRINTS_MIN && !(pool_FP.entered_dirs & wielder.dir)) // If our feet are bloody enough, add an entered dir pool_FP.entered_dirs |= wielder.dir pool_FP.update_appearance() + return share_blood(pool) @@ -328,3 +333,5 @@ SIGNAL_HANDLER update_icon() + +#undef BLOOD_PERCENT_LOSS_ON_STEP diff --git a/code/datums/components/combustible_flooder.dm b/code/datums/components/combustible_flooder.dm index a4260a9641a9f..07df03671c16c 100644 --- a/code/datums/components/combustible_flooder.dm +++ b/code/datums/components/combustible_flooder.dm @@ -11,6 +11,9 @@ src.gas_amount = initialize_gas_amount src.temp_amount = initialize_temp_amount +// Any item made of plasma is going to have this component, making it extremely difficult to blacklist fire hazards during create_and_destroy. +// So let's just completely neuter them during unit tests so we don't burn down the testing area and cause spurious runtimes. +#ifndef UNIT_TESTS RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(attackby_react)) RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) RegisterSignal(parent, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_react)) @@ -18,6 +21,7 @@ RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), PROC_REF(welder_react)) if(isturf(parent)) RegisterSignal(parent, COMSIG_TURF_EXPOSE, PROC_REF(hotspots_react)) +#endif /datum/component/combustible_flooder/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ATOM_ATTACKBY) diff --git a/code/datums/components/crafting/atmospheric.dm b/code/datums/components/crafting/atmospheric.dm index b2993012e82b0..6674ee1059a9f 100644 --- a/code/datums/components/crafting/atmospheric.dm +++ b/code/datums/components/crafting/atmospheric.dm @@ -359,3 +359,26 @@ /obj/item/stack/sheet/iron = 30, ) category = CAT_STRUCTURE + +/datum/crafting_recipe/airlock_pump + name = "External Airlock Pump" + tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER) + result = /obj/item/pipe/directional/airlock_pump + reqs = list( + /obj/item/pipe = 1, + /obj/item/stack/sheet/iron = 5, + /obj/item/stack/cable_coil = 5, + /obj/item/analyzer = 1, + ) + time = 2 SECONDS + category = CAT_ATMOSPHERIC + +/datum/crafting_recipe/airlock_pump/check_requirements(mob/user, list/collected_requirements) + return atmos_pipe_check(user, collected_requirements) + +/datum/crafting_recipe/airlock_pump/on_craft_completion(mob/user, atom/result) + var/obj/item/pipe/crafted_pipe = result + crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/airlock_pump + crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY + crafted_pipe.setDir(user.dir) + crafted_pipe.update() diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 7a56f89c8e924..8f436faa9c6c4 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -75,8 +75,14 @@ if(contents[requirement_path] < R.chem_catalysts[requirement_path]) return FALSE + var/mech_found = FALSE for(var/machinery_path in R.machinery) - if(!machines[machinery_path])//We don't care for volume with machines, just if one is there or not + mech_found = FALSE + for(var/obj/machinery/machine as anything in machines) + if(ispath(machine, machinery_path))//We don't care for volume with machines, just if one is there or not + mech_found = TRUE + break + if(!mech_found) return FALSE for(var/required_structure_path in R.structures) @@ -484,12 +490,26 @@ var/list/atoms = mode ? GLOB.cooking_recipes_atoms : GLOB.crafting_recipes_atoms // Prepare atom data + + //load sprite sheets and select the correct one based on the mode + var/static/list/sprite_sheets + if(isnull(sprite_sheets)) + sprite_sheets = ui_assets() + var/datum/asset/spritesheet/sheet = sprite_sheets[mode ? 2 : 1] + + data["icon_data"] = list() for(var/atom/atom as anything in atoms) + var/atom_id = atoms.Find(atom) + data["atom_data"] += list(list( "name" = initial(atom.name), - "is_reagent" = ispath(atom, /datum/reagent/) + "is_reagent" = ispath(atom, /datum/reagent/), )) + var/icon_size = sheet.icon_size_id("a[atom_id]") + if(!endswith(icon_size, "32x32")) + data["icon_data"]["[atom_id]"] = "[icon_size] a[atom_id]" + // Prepare materials data for(var/atom/atom as anything in material_occurences) if(material_occurences[atom] == 1) @@ -563,16 +583,7 @@ data["ref"] = "[REF(recipe)]" var/atom/atom = recipe.result - //load sprite sheets and select the correct one based on the mode - var/static/list/sprite_sheets - if(isnull(sprite_sheets)) - sprite_sheets = ui_assets() - var/datum/asset/spritesheet/sheet = sprite_sheets[mode ? 2 : 1] - - //infer icon size of this atom - var/atom_id = atoms.Find(atom) - var/icon_size = sheet.icon_size_id("a[atom_id]") - data["icon"] = "[icon_size] a[atom_id]" + data["id"] = atoms.Find(atom) var/recipe_data = recipe.crafting_ui_data() for(var/new_data in recipe_data) diff --git a/code/datums/components/crafting/entertainment.dm b/code/datums/components/crafting/entertainment.dm index 7bc2222b142f5..f1aa865e0cbc1 100644 --- a/code/datums/components/crafting/entertainment.dm +++ b/code/datums/components/crafting/entertainment.dm @@ -249,3 +249,18 @@ /obj/item/stack/cable_coil = 2, ) category = CAT_EQUIPMENT + +/datum/crafting_recipe/violin + name = "Violin" + result = /obj/item/instrument/violin + reqs = list( + /obj/item/stack/sheet/mineral/wood = 4, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/iron = 1, + ) + tool_paths = list( + /obj/item/hatchet, + ) + time = 30 SECONDS + category = CAT_ENTERTAINMENT + crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm index bd2b8b1d8b60b..eeea4205a4d29 100644 --- a/code/datums/components/crafting/equipment.dm +++ b/code/datums/components/crafting/equipment.dm @@ -260,3 +260,14 @@ ) category = CAT_EQUIPMENT tool_behaviors = list(TOOL_WELDER, TOOL_WIRECUTTER) + +/datum/crafting_recipe/arrow_quiver + name = "Archery Quiver" + result = /obj/item/storage/bag/quiver/lesser + time = 10 + reqs = list( + /obj/item/stack/sheet/leather = 4, + /obj/item/stack/sheet/cardboard = 4 + ) + category = CAT_EQUIPMENT + tool_behaviors = list(TOOL_WELDER, TOOL_WIRECUTTER) diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm index dcf42ee47b1a5..1bd0b0b2419ee 100644 --- a/code/datums/components/crafting/guncrafting.dm +++ b/code/datums/components/crafting/guncrafting.dm @@ -18,8 +18,8 @@ /obj/item/weaponcrafting/receiver/create_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/pipegun) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -34,8 +34,8 @@ /obj/item/weaponcrafting/stock/create_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/smoothbore_disabler, /datum/crafting_recipe/laser_musket) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -48,8 +48,8 @@ /obj/item/weaponcrafting/giant_wrench/create_slapcraft_component() // slappycraft var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/giant_wrench) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -94,3 +94,7 @@ /obj/item/weaponcrafting/gunkit/hellgun name = "hellfire laser gun degradation kit (warcrime lethal)" desc = "Take a perfectly functioning laser gun. Butcher the inside of the gun so it runs hot and mean. You now have a hellfire laser. You monster." + +/obj/item/weaponcrafting/gunkit/photon + name = "photon cannon parts kit (nonlethal)" + desc = "A suitcase containing the necessary gun parts to construct a photon cannon around a stabilized flux anomaly. Harness the power of the sun, in the palms of your hands." diff --git a/code/datums/components/crafting/melee_weapon.dm b/code/datums/components/crafting/melee_weapon.dm index 1c4150585fccc..594ff7aefd387 100644 --- a/code/datums/components/crafting/melee_weapon.dm +++ b/code/datums/components/crafting/melee_weapon.dm @@ -171,3 +171,23 @@ ) time = 10 SECONDS category = CAT_WEAPON_MELEE + +/datum/crafting_recipe/singulo_hammer + name = "Singularity Hammer" + result = /obj/item/singularityhammer + reqs = list( + /obj/item/assembly/signaler/anomaly/pyro = 1, + /obj/item/assembly/signaler/anomaly/grav = 1, + /obj/item/assembly/signaler/anomaly/flux = 1, + /obj/item/assembly/signaler/anomaly/bluespace = 1, + /obj/item/assembly/signaler/anomaly/vortex = 1, + /obj/item/assembly/signaler/anomaly/bioscrambler = 1, + /obj/item/assembly/signaler/anomaly/hallucination = 1, + /obj/item/assembly/signaler/anomaly/dimensional = 1, + /obj/item/assembly/signaler/anomaly/ectoplasm = 1, + ) + machinery = list( + /obj/machinery/power/supermatter_crystal = CRAFTING_MACHINERY_CONSUME, + ) + time = 10 SECONDS + category = CAT_WEAPON_MELEE diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index c49900df07ab4..0e3c7b119169b 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -374,3 +374,28 @@ time = 20 SECONDS category = CAT_WEAPON_RANGED crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/shortbow + name = "Shortbow" + result = /obj/item/gun/ballistic/bow/shortbow + reqs = list( + /obj/item/stack/sheet/mineral/wood = 4, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/iron = 1, + ) + tool_paths = list( + /obj/item/hatchet, + ) + time = 30 SECONDS + category = CAT_WEAPON_RANGED + crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/photoncannon + name = "Photon Cannon" + result = /obj/item/gun/energy/photon + reqs = list( + /obj/item/assembly/signaler/anomaly/flux = 1, + /obj/item/weaponcrafting/gunkit/photon = 1, + ) + time = 10 SECONDS + category = CAT_WEAPON_RANGED diff --git a/code/datums/components/crafting/weapon_ammo.dm b/code/datums/components/crafting/weapon_ammo.dm index f68ff58072c67..2ba01802e7cdd 100644 --- a/code/datums/components/crafting/weapon_ammo.dm +++ b/code/datums/components/crafting/weapon_ammo.dm @@ -111,3 +111,46 @@ ) category = CAT_WEAPON_AMMO crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/arrow + name = "Arrow" + result = /obj/item/ammo_casing/arrow + reqs = list( + /obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/sheet/cloth = 1, + /obj/item/stack/sheet/iron = 1, + ) + tool_paths = list( + /obj/item/hatchet, + ) + time = 5 SECONDS + category = CAT_WEAPON_AMMO + crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/plastic_arrow + name = "Plastic Arrow" + result = /obj/item/ammo_casing/arrow/plastic + reqs = list( + /obj/item/stack/sheet/plastic = 1, + ) + tool_paths = list( + /obj/item/hatchet, + ) + time = 5 SECONDS + category = CAT_WEAPON_AMMO + crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + + +/datum/crafting_recipe/holy_arrow + name = "Holy Arrow" + result = /obj/item/ammo_casing/arrow/holy + reqs = list( + /obj/item/ammo_casing/arrow = 1, + /datum/reagent/water/holywater = 10, + ) + tool_paths = list( + /obj/item/gun/ballistic/bow/divine, + ) + time = 5 SECONDS + category = CAT_WEAPON_AMMO + crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED diff --git a/code/datums/components/dart_insert.dm b/code/datums/components/dart_insert.dm index 19eea67ab3a8d..ad869903051d2 100644 --- a/code/datums/components/dart_insert.dm +++ b/code/datums/components/dart_insert.dm @@ -142,11 +142,8 @@ projectile.wound_bonus += var_modifiers["wound_bonus"] projectile.bare_wound_bonus += var_modifiers["bare_wound_bonus"] projectile.demolition_mod += var_modifiers["demolition_mod"] - if(islist(var_modifiers["embedding"])) - var/list/embed_params = var_modifiers["embedding"] - for(var/embed_param in embed_params - "ignore_throwspeed_threshold") - LAZYADDASSOC(projectile.embedding, embed_param, embed_params[embed_param]) - projectile.updateEmbedding() + if(var_modifiers["embedding"]) + projectile.set_embed(var_modifiers["embedding"]) /datum/component/dart_insert/proc/remove_var_modifiers(obj/projectile/projectile) projectile.damage -= var_modifiers["damage"] @@ -155,9 +152,6 @@ projectile.wound_bonus -= var_modifiers["wound_bonus"] projectile.bare_wound_bonus -= var_modifiers["bare_wound_bonus"] projectile.demolition_mod -= var_modifiers["demolition_mod"] - if(islist(var_modifiers["embedding"])) - var/list/embed_params = var_modifiers["embedding"] - for(var/embed_param in embed_params - "ignore_throwspeed_threshold") - LAZYADDASSOC(projectile.embedding, embed_param, -embed_params[embed_param]) - projectile.updateEmbedding() + if(var_modifiers["embedding"]) + projectile.set_embed(initial(projectile.embed_type)) var_modifiers.Cut() diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index c7b3e3f2ff55b..8a1902526c42a 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -85,7 +85,7 @@ master.forceMove(starting_turf) rewinds_remaining -- - if(rewinds_remaining) + if(rewinds_remaining || rewinds_remaining < 0) addtimer(CALLBACK(src, rewind_type), rewind_interval) else to_chat(parent, span_notice(no_rewinds_message)) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index 45a3c07298ff0..84bfa8dfad0f0 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -27,63 +27,28 @@ dupe_mode = COMPONENT_DUPE_ALLOWED var/obj/item/bodypart/limb var/obj/item/weapon - - // all of this stuff is explained in _DEFINES/combat.dm - var/embed_chance // not like we really need it once we're already stuck in but hey - var/fall_chance - var/pain_chance - var/pain_mult - var/impact_pain_mult - var/remove_pain_mult - var/rip_time - var/ignore_throwspeed_threshold - var/jostle_chance - var/jostle_pain_mult - var/pain_stam_pct - ///if both our pain multiplier and jostle pain multiplier are 0, we're harmless and can omit most of the damage related stuff var/harmful -/datum/component/embedded/Initialize(obj/item/I, +/datum/component/embedded/Initialize(obj/item/weapon, datum/thrownthing/throwingdatum, - obj/item/bodypart/part, - embed_chance = EMBED_CHANCE, - fall_chance = EMBEDDED_ITEM_FALLOUT, - pain_chance = EMBEDDED_PAIN_CHANCE, - pain_mult = EMBEDDED_PAIN_MULTIPLIER, - remove_pain_mult = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, - impact_pain_mult = EMBEDDED_IMPACT_PAIN_MULTIPLIER, - rip_time = EMBEDDED_UNSAFE_REMOVAL_TIME, - ignore_throwspeed_threshold = FALSE, - jostle_chance = EMBEDDED_JOSTLE_CHANCE, - jostle_pain_mult = EMBEDDED_JOSTLE_PAIN_MULTIPLIER, - pain_stam_pct = EMBEDDED_PAIN_STAM_PCT) - - if(!iscarbon(parent) || !isitem(I)) + obj/item/bodypart/part) + + if(!iscarbon(parent) || !isitem(weapon)) return COMPONENT_INCOMPATIBLE + src.weapon = weapon + if(part) limb = part - src.embed_chance = embed_chance - src.fall_chance = fall_chance - src.pain_chance = pain_chance - src.pain_mult = pain_mult - src.remove_pain_mult = remove_pain_mult - src.rip_time = rip_time - src.impact_pain_mult = impact_pain_mult - src.ignore_throwspeed_threshold = ignore_throwspeed_threshold - src.jostle_chance = jostle_chance - src.jostle_pain_mult = jostle_pain_mult - src.pain_stam_pct = pain_stam_pct - src.weapon = I - - if(!weapon.isEmbedHarmless()) + + if(!weapon.is_embed_harmless()) harmful = TRUE weapon.embedded(parent, part) START_PROCESSING(SSdcs, src) var/mob/living/carbon/victim = parent - + var/datum/embed_data/embed_data = weapon.get_embed() limb._embed_object(weapon) // on the inside... on the inside... weapon.forceMove(victim) RegisterSignals(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_QDELETING), PROC_REF(weaponDeleted)) @@ -95,13 +60,13 @@ playsound(victim,'sound/weapons/bladeslice.ogg', 40) if (limb.can_bleed()) weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody! - damage += weapon.w_class * impact_pain_mult + damage += weapon.w_class * embed_data.impact_pain_mult victim.add_mood_event("embedded", /datum/mood_event/embedded) if(damage > 0) - var/armor = victim.run_armor_check(limb.body_zone, MELEE, "Your armor has protected your [limb.plaintext_zone].", "Your armor has softened a hit to your [limb.plaintext_zone].",I.armour_penetration, weak_against_armour = I.weak_against_armour) - limb.receive_damage(brute=(1-pain_stam_pct) * damage, blocked=armor, wound_bonus = I.wound_bonus, bare_wound_bonus = I.bare_wound_bonus, sharpness = I.get_sharpness()) - victim.adjustStaminaLoss(pain_stam_pct * damage) + var/armor = victim.run_armor_check(limb.body_zone, MELEE, "Your armor has protected your [limb.plaintext_zone].", "Your armor has softened a hit to your [limb.plaintext_zone].", weapon.armour_penetration, weak_against_armour = weapon.weak_against_armour) + limb.receive_damage(brute = (1 - embed_data.pain_stam_pct) * damage, blocked = armor, wound_bonus = weapon.wound_bonus, bare_wound_bonus = weapon.bare_wound_bonus, sharpness = weapon.get_sharpness()) + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) /datum/component/embedded/Destroy() var/mob/living/carbon/victim = parent @@ -135,20 +100,21 @@ if(victim.stat == DEAD) return - var/damage = weapon.w_class * pain_mult - var/pain_chance_current = SPT_PROB_RATE(pain_chance / 100, seconds_per_tick) * 100 - if(pain_stam_pct && HAS_TRAIT_FROM(victim, TRAIT_INCAPACITATED, STAMINA)) //if it's a less-lethal embed, give them a break if they're already stamcritted + var/datum/embed_data/embed_data = weapon.get_embed() + var/damage = weapon.w_class * embed_data.pain_mult + var/pain_chance_current = SPT_PROB_RATE(embed_data.pain_chance / 100, seconds_per_tick) * 100 + if(embed_data.pain_stam_pct && HAS_TRAIT_FROM(victim, TRAIT_INCAPACITATED, STAMINA)) //if it's a less-lethal embed, give them a break if they're already stamcritted pain_chance_current *= 0.2 damage *= 0.5 else if(victim.body_position == LYING_DOWN) pain_chance_current *= 0.2 if(harmful && prob(pain_chance_current)) - limb.receive_damage(brute=(1-pain_stam_pct) * damage, wound_bonus = CANT_WOUND) - victim.adjustStaminaLoss(pain_stam_pct * damage) + limb.receive_damage(brute = (1 - embed_data.pain_stam_pct) * damage, wound_bonus = CANT_WOUND) + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) to_chat(victim, span_userdanger("[weapon] embedded in your [limb.plaintext_zone] hurts!")) - var/fall_chance_current = SPT_PROB_RATE(fall_chance / 100, seconds_per_tick) * 100 + var/fall_chance_current = SPT_PROB_RATE(embed_data.fall_chance / 100, seconds_per_tick) * 100 if(victim.body_position == LYING_DOWN) fall_chance_current *= 0.2 @@ -165,25 +131,27 @@ SIGNAL_HANDLER var/mob/living/carbon/victim = parent - var/chance = jostle_chance + var/datum/embed_data/embed_data = weapon.get_embed() + var/chance = embed_data.jostle_chance if(victim.move_intent == MOVE_INTENT_WALK || victim.body_position == LYING_DOWN) chance *= 0.5 if(harmful && prob(chance)) - var/damage = weapon.w_class * jostle_pain_mult - limb.receive_damage(brute=(1-pain_stam_pct) * damage, wound_bonus = CANT_WOUND) - victim.adjustStaminaLoss(pain_stam_pct * damage) + var/damage = weapon.w_class * embed_data.jostle_pain_mult + limb.receive_damage(brute = (1 - embed_data.pain_stam_pct) * damage, wound_bonus = CANT_WOUND) + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) to_chat(victim, span_userdanger("[weapon] embedded in your [limb.plaintext_zone] jostles and stings!")) /// Called when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove() /datum/component/embedded/proc/fallOut() var/mob/living/carbon/victim = parent + var/datum/embed_data/embed_data = weapon.get_embed() if(harmful) - var/damage = weapon.w_class * remove_pain_mult - limb.receive_damage(brute=(1-pain_stam_pct) * damage, wound_bonus = CANT_WOUND) - victim.adjustStaminaLoss(pain_stam_pct * damage) + var/damage = weapon.w_class * embed_data.remove_pain_mult + limb.receive_damage(brute= (1 - embed_data.pain_stam_pct) * damage, wound_bonus = CANT_WOUND) + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) victim.visible_message(span_danger("[weapon] falls [harmful ? "out" : "off"] of [victim.name]'s [limb.plaintext_zone]!"), span_userdanger("[weapon] falls [harmful ? "out" : "off"] of your [limb.plaintext_zone]!")) safeRemove() @@ -195,7 +163,8 @@ if(I != weapon || src.limb != limb) return var/mob/living/carbon/victim = parent - var/time_taken = rip_time * weapon.w_class + var/datum/embed_data/embed_data = weapon.get_embed() + var/time_taken = embed_data.rip_time * weapon.w_class INVOKE_ASYNC(src, PROC_REF(complete_rip_out), victim, I, limb, time_taken) /// everything async that ripOut used to do @@ -214,9 +183,10 @@ /// Proc that actually does the damage associated with ripping something out of yourself. Call this before safeRemove. /datum/component/embedded/proc/damaging_removal(mob/living/carbon/victim, obj/item/removed, obj/item/bodypart/limb, ouch_multiplier = 1) - var/damage = weapon.w_class * remove_pain_mult * ouch_multiplier - limb.receive_damage(brute=(1-pain_stam_pct) * damage, sharpness=SHARP_EDGED) //It hurts to rip it out, get surgery you dingus. unlike the others, this CAN wound + increase slash bloodflow - victim.adjustStaminaLoss(pain_stam_pct * damage) + var/datum/embed_data/embed_data = weapon.get_embed() + var/damage = weapon.w_class * embed_data.remove_pain_mult * ouch_multiplier + limb.receive_damage(brute= (1 - embed_data.pain_stam_pct) * damage, sharpness = SHARP_EDGED) //It hurts to rip it out, get surgery you dingus. unlike the others, this CAN wound + increase slash bloodflow + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) victim.emote("scream") /// This proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely. @@ -271,12 +241,13 @@ /// The actual action for pulling out an embedded object with a hemostat /datum/component/embedded/proc/tweezePluck(obj/item/possible_tweezers, mob/user) var/mob/living/carbon/victim = parent + var/datum/embed_data/embed_data = weapon.get_embed() var/self_pluck = (user == victim) // quality of the tool we're using var/tweezer_speed = possible_tweezers.toolspeed // is this an actual piece of medical equipment var/tweezer_safe = (possible_tweezers.tool_behaviour == TOOL_HEMOSTAT) - var/pluck_time = rip_time * (weapon.w_class * 0.3) * (self_pluck ? 1.5 : 1) * tweezer_speed * (tweezer_safe ? 1 : 1.5) + var/pluck_time = embed_data.rip_time * (weapon.w_class * 0.3) * (self_pluck ? 1.5 : 1) * tweezer_speed * (tweezer_safe ? 1 : 1.5) if(self_pluck) user.visible_message(span_danger("[user] begins plucking [weapon] from [user.p_their()] [limb.plaintext_zone] with [possible_tweezers]..."), span_notice("You start plucking [weapon] from your [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)])"),\ @@ -313,10 +284,12 @@ if(!harmful) victim.visible_message(span_danger("[marked_item] vanishes from [victim.name]'s [limb.plaintext_zone]!"), span_userdanger("[weapon] vanishes from [limb.plaintext_zone]!")) return - var/damage = weapon.w_class * remove_pain_mult - limb.receive_damage(brute=(1-pain_stam_pct) * damage * 1.5, sharpness=SHARP_EDGED) // Performs exit wounds and flings the user to the caster if nearby + + var/datum/embed_data/embed_data = weapon.get_embed() + var/damage = weapon.w_class * embed_data.remove_pain_mult + limb.receive_damage(brute = (1 - embed_data.pain_stam_pct) * damage * 1.5, sharpness = SHARP_EDGED) // Performs exit wounds and flings the user to the caster if nearby victim.cause_wound_of_type_and_severity(WOUND_PIERCE, limb, WOUND_SEVERITY_MODERATE) - victim.adjustStaminaLoss(pain_stam_pct * damage) + victim.adjustStaminaLoss(embed_data.pain_stam_pct * damage) playsound(get_turf(victim), 'sound/effects/wounds/blood2.ogg', 50, TRUE) var/dist = get_dist(caster, victim) //Check if the caster is close enough to yank them in diff --git a/code/datums/components/fishing_spot.dm b/code/datums/components/fishing_spot.dm index 414c17b6d15e3..481f965059f52 100644 --- a/code/datums/components/fishing_spot.dm +++ b/code/datums/components/fishing_spot.dm @@ -42,7 +42,7 @@ return var/has_known_fishes = FALSE - for(var/reward in fish_source.fish_counts) + for(var/reward in fish_source.fish_table) if(!ispath(reward, /obj/item/fish)) continue var/obj/item/fish/prototype = reward @@ -60,7 +60,7 @@ return var/list/known_fishes = list() - for(var/reward in fish_source.fish_counts) + for(var/reward in fish_source.fish_table) if(!ispath(reward, /obj/item/fish)) continue var/obj/item/fish/prototype = reward diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index d4b80ea1dd8ab..056f1e5791e6c 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -641,6 +641,7 @@ Behavior that's still missing from this component that original food items had t ///Delete the item when it is fully eaten /datum/component/edible/proc/On_Consume(mob/living/eater, mob/living/feeder) SEND_SIGNAL(parent, COMSIG_FOOD_CONSUMED, eater, feeder) + SEND_SIGNAL(eater, COMSIG_LIVING_FINISH_EAT, parent, feeder) on_consume?.Invoke(eater, feeder) if (QDELETED(parent)) // might be destroyed by the callback diff --git a/code/datums/components/glass_passer.dm b/code/datums/components/glass_passer.dm new file mode 100644 index 0000000000000..f96300341b0c4 --- /dev/null +++ b/code/datums/components/glass_passer.dm @@ -0,0 +1,50 @@ +/// Allows us to move through glass but not electrified glass. Can also do a little slowdown before passing through +/datum/component/glass_passer + /// How long does it take us to move into glass? + var/pass_time = 0 SECONDS + +/datum/component/glass_passer/Initialize(pass_time) + if(!ismob(parent)) //if its not a mob then just directly use passwindow + return COMPONENT_INCOMPATIBLE + + src.pass_time = pass_time + + if(!pass_time) + passwindow_on(parent, type) + else + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bumped)) + + var/mob/mobbers = parent + mobbers.generic_canpass = FALSE + RegisterSignal(parent, COMSIG_MOVABLE_CROSS_OVER, PROC_REF(cross_over)) + +/datum/component/glass_passer/Destroy() + . = ..() + if(parent) + passwindow_off(parent, type) + +/datum/component/glass_passer/proc/cross_over(mob/passer, atom/crosser) + SIGNAL_HANDLER + + if(istype(crosser, /obj/structure/grille)) + var/obj/structure/grille/grillefriend = crosser + if(grillefriend.is_shocked()) //prevent passage of shocked + crosser.balloon_alert(passer, "is shocked!") + return COMPONENT_BLOCK_CROSS + + return null + +/datum/component/glass_passer/proc/bumped(mob/living/owner, atom/bumpee) + SIGNAL_HANDLER + + if(!istype(bumpee, /obj/structure/window)) + return + + INVOKE_ASYNC(src, PROC_REF(phase_through_glass), owner, bumpee) + +/datum/component/glass_passer/proc/phase_through_glass(mob/living/owner, atom/bumpee) + if(!do_after(owner, pass_time, bumpee)) + return + passwindow_on(owner, type) + try_move_adjacent(owner, get_dir(owner, bumpee)) + passwindow_off(owner, type) diff --git a/code/datums/components/happiness.dm b/code/datums/components/happiness.dm index 0a6274611923b..3a45c571c7c3a 100644 --- a/code/datums/components/happiness.dm +++ b/code/datums/components/happiness.dm @@ -69,6 +69,11 @@ SIGNAL_HANDLER if(!COOLDOWN_FINISHED(src, groom_cooldown)) return + + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) + return + COOLDOWN_START(src, groom_cooldown, GROOM_COOLDOWN) increase_happiness_level(on_groom_change) @@ -76,15 +81,12 @@ SIGNAL_HANDLER if(!LAZYACCESS(modifiers, LEFT_CLICK) || petter.combat_mode) return - pet_animal() -/datum/component/happiness/proc/on_animal_petted(datum/source, mob/living/petter) - SIGNAL_HANDLER - - if(petter.combat_mode) + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) return + pet_animal() - return COMSIG_BASIC_ATTACK_CANCEL_CHAIN /datum/component/happiness/proc/pet_animal() if(!COOLDOWN_FINISHED(src, pet_cooldown)) diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm new file mode 100644 index 0000000000000..5b73c40c9549e --- /dev/null +++ b/code/datums/components/heart_eater.dm @@ -0,0 +1,118 @@ +/datum/component/heart_eater + /// Check if we fully ate whole heart and reset when we start eat new one. + var/bites_taken = 0 + /// Remember the number of species damage_modifier. + var/remember_modifier = 0 + /// Remember last heart we ate and reset bites_taken counter if we start eat new one + var/datum/weakref/last_heart_we_ate + /// List of all mutations allowed to get. + var/static/list/datum/mutation/human/mutations_list = list( + /datum/mutation/human/adaptation/cold, + /datum/mutation/human/adaptation/heat, + /datum/mutation/human/adaptation/pressure, + /datum/mutation/human/adaptation/thermal, + /datum/mutation/human/chameleon, + /datum/mutation/human/cryokinesis, + /datum/mutation/human/cryokinesis/pyrokinesis, + /datum/mutation/human/dwarfism, + /datum/mutation/human/geladikinesis/ash, + /datum/mutation/human/insulated, + /datum/mutation/human/telekinesis, + /datum/mutation/human/telepathy, + /datum/mutation/human/thermal, + /datum/mutation/human/tongue_spike, + /datum/mutation/human/webbing, + /datum/mutation/human/xray, + ) + +/datum/component/heart_eater/Initialize(...) + . = ..() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + prepare_species(parent) + +/datum/component/heart_eater/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(on_species_change)) + RegisterSignal(parent, COMSIG_LIVING_FINISH_EAT, PROC_REF(eat_eat_eat)) + +/datum/component/heart_eater/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_FINISH_EAT) + UnregisterSignal(parent, COMSIG_SPECIES_GAIN) + +/datum/component/heart_eater/proc/prepare_species(mob/living/carbon/human/eater) + if(eater.get_liked_foodtypes() & GORE) + return + var/obj/item/organ/internal/tongue/eater_tongue = eater.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!eater_tongue) + return + eater_tongue.disliked_foodtypes &= ~GORE + eater_tongue.liked_foodtypes |= GORE + +/datum/component/heart_eater/proc/on_species_change(mob/living/carbon/human/eater, datum/species/new_species, datum/species/old_species) + SIGNAL_HANDLER + + eater.dna?.species?.damage_modifier += remember_modifier + prepare_species(eater) + +/// Proc called when we finish eat somthing. +/datum/component/heart_eater/proc/eat_eat_eat(mob/living/carbon/human/eater, datum/what_we_ate) + SIGNAL_HANDLER + + if(get_area(eater) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + if(!istype(what_we_ate, /obj/item/organ/internal/heart)) + return + var/obj/item/organ/internal/heart/we_ate_heart = what_we_ate + var/obj/item/organ/internal/heart/previous_heart = last_heart_we_ate?.resolve() + if(we_ate_heart == previous_heart) + return + bites_taken = 0 + + last_heart_we_ate = WEAKREF(we_ate_heart) + bites_taken++ + if(bites_taken < (we_ate_heart.reagents.total_volume/2)) + return + if(prob(50)) + perfect_heart(eater) + return + not_perfect_heart(eater) + +///Perfect heart give our +10 damage modifier(Max. 80). +/datum/component/heart_eater/proc/perfect_heart(mob/living/carbon/human/eater) + if(eater.dna?.species?.damage_modifier >= 80) + healing_heart(eater) + return + eater.dna?.species?.damage_modifier += 10 + remember_modifier += 10 + healing_heart(eater) + to_chat(eater, span_warning("This heart is perfect. You feel a surge of vital energy.")) + +///Not Perfect heart give random mutation. +/datum/component/heart_eater/proc/not_perfect_heart(mob/living/carbon/human/eater) + var/datum/mutation/human/new_mutation + var/list/datum/mutation/human/shuffle_mutation_list = shuffle(mutations_list) + for(var/mutation_in_list in shuffle_mutation_list) + if(is_type_in_list(mutation_in_list, eater.dna.mutations)) + continue + new_mutation = mutation_in_list + break + if(isnull(new_mutation)) + healing_heart(eater) + return + eater.dna.add_mutation(new_mutation) + healing_heart(eater) + to_chat(eater, span_warning("This heart is not right for you. You now have [new_mutation.name] mutation.")) + +///Heart eater give also strong healing from hearts. +/datum/component/heart_eater/proc/healing_heart(mob/living/carbon/human/eater) + for(var/heal_organ in eater.organs) + eater.adjustOrganLoss(heal_organ, -50) + for(var/datum/wound/heal_wound in eater.all_wounds) + heal_wound.remove_wound() + eater.adjustBruteLoss(-50) + eater.adjustFireLoss(-50) + eater.adjustToxLoss(-50) + eater.adjustOxyLoss(-50) + eater.adjustStaminaLoss(-50) diff --git a/code/datums/components/material/material_container.dm b/code/datums/components/material/material_container.dm index 207e1d080f768..6ee50f5d78c94 100644 --- a/code/datums/components/material/material_container.dm +++ b/code/datums/components/material/material_container.dm @@ -274,7 +274,9 @@ //All messages to be displayed to chat var/list/chat_msgs = list() //differs from held_item when using TK - var/active_held = user.get_active_held_item() + var/obj/item/active_held = user.get_active_held_item() + //omni tools can act as any tool so get its real behaviour + active_held = active_held.get_proxy_attacker_for(held_item) while(items.len) //no point inserting more items diff --git a/code/datums/components/material/remote_materials.dm b/code/datums/components/material/remote_materials.dm index d2804f97df120..d630ce8e77f9b 100644 --- a/code/datums/components/material/remote_materials.dm +++ b/code/datums/components/material/remote_materials.dm @@ -147,7 +147,7 @@ handles linking back and forth. /datum/component/remote_materials/proc/OnMultitool(datum/source, mob/user, obj/item/multitool/M) SIGNAL_HANDLER - . = ITEM_INTERACT_BLOCKING + . = NONE if (!QDELETED(M.buffer) && istype(M.buffer, /obj/machinery/ore_silo)) if (silo == M.buffer) to_chat(user, span_warning("[parent] is already connected to [silo]!")) diff --git a/code/datums/components/mind_linker.dm b/code/datums/components/mind_linker.dm index f06e6d8d05568..ba3f0a6841bee 100644 --- a/code/datums/components/mind_linker.dm +++ b/code/datums/components/mind_linker.dm @@ -239,7 +239,6 @@ return ..() && (owner.stat != DEAD) /datum/action/innate/linked_speech/Activate() - var/datum/component/mind_linker/linker = target var/mob/living/linker_parent = linker.parent @@ -257,7 +256,8 @@ var/list/all_who_can_hear = assoc_to_keys(linker.linked_mobs) + linker_parent for(var/mob/living/recipient as anything in all_who_can_hear) - to_chat(recipient, formatted_message) + var/avoid_highlighting = (recipient == owner) || (recipient == linker_parent) + to_chat(recipient, formatted_message, type = MESSAGE_TYPE_RADIO, avoid_highlighting = avoid_highlighting) for(var/mob/recipient as anything in GLOB.dead_mob_list) - to_chat(recipient, "[FOLLOW_LINK(recipient, owner)] [formatted_message]") + to_chat(recipient, "[FOLLOW_LINK(recipient, owner)] [formatted_message]", type = MESSAGE_TYPE_RADIO) diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index e2f7b2880c4bd..490f88d39b25e 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -94,7 +94,7 @@ process_request(dir = dir) ///check who can give us what we want, and how many each of them will give us -/datum/component/plumbing/proc/process_request(amount = MACHINE_REAGENT_TRANSFER, reagent, dir) +/datum/component/plumbing/proc/process_request(amount = MACHINE_REAGENT_TRANSFER, reagent, dir, round_robin = TRUE) //find the duct to take from var/datum/ductnet/net if(!ducts.Find(num2text(dir))) @@ -115,7 +115,7 @@ var/target_volume = reagents.total_volume + amount for(var/datum/component/plumbing/give as anything in valid_suppliers) currentRequest = (target_volume - reagents.total_volume) / suppliersLeft - give.transfer_to(src, currentRequest, reagent, net) + give.transfer_to(src, currentRequest, reagent, net, round_robin) suppliersLeft-- return TRUE @@ -134,11 +134,11 @@ return FALSE ///this is where the reagent is actually transferred and is thus the finish point of our process() -/datum/component/plumbing/proc/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/proc/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) if(!reagents || !target || !target.reagents) return FALSE - reagents.trans_to(target.recipient_reagents_holder, amount, target_id = reagent) + reagents.trans_to(target.recipient_reagents_holder, amount, target_id = reagent, methods = round_robin ? LINEAR : NONE) ///We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize() /datum/component/plumbing/proc/create_overlays(atom/movable/parent_movable, list/overlays) @@ -376,46 +376,3 @@ // Defer to later frame because pixel_* is actually updated after all callbacks addtimer(CALLBACK(parent_obj, TYPE_PROC_REF(/atom/, update_appearance)), 0.1 SECONDS) - -///has one pipe input that only takes, example is manual output pipe -/datum/component/plumbing/simple_demand - demand_connects = SOUTH - -///has one pipe output that only supplies. example is liquid pump and manual input pipe -/datum/component/plumbing/simple_supply - supply_connects = SOUTH - -///input and output, like a holding tank -/datum/component/plumbing/tank - demand_connects = WEST - supply_connects = EAST - -/datum/component/plumbing/manifold - demand_connects = NORTH - supply_connects = SOUTH - -/datum/component/plumbing/manifold/change_ducting_layer(obj/caller, obj/changer, new_layer) - return - -#define READY 2 -///Baby component for the buffer plumbing machine -/datum/component/plumbing/buffer - demand_connects = WEST - supply_connects = EAST - -/datum/component/plumbing/buffer/Initialize(start=TRUE, _turn_connects=TRUE, _ducting_layer, datum/reagents/custom_receiver) - if(!istype(parent, /obj/machinery/plumbing/buffer)) - return COMPONENT_INCOMPATIBLE - - return ..() - -/datum/component/plumbing/buffer/can_give(amount, reagent, datum/ductnet/net) - var/obj/machinery/plumbing/buffer/buffer = parent - return (buffer.mode == READY) ? ..() : FALSE - -#undef READY - -///Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway. -/datum/component/plumbing/aquarium - demand_connects = SOUTH|NORTH|EAST|WEST - use_overlays = FALSE diff --git a/code/datums/components/plumbing/buffer.dm b/code/datums/components/plumbing/buffer.dm new file mode 100644 index 0000000000000..608d8df9fbc4b --- /dev/null +++ b/code/datums/components/plumbing/buffer.dm @@ -0,0 +1,17 @@ +#define READY 2 + +/datum/component/plumbing/buffer + demand_connects = WEST + supply_connects = EAST + +/datum/component/plumbing/buffer/Initialize(start = TRUE, _turn_connects = TRUE, _ducting_layer, datum/reagents/custom_receiver) + if(!istype(parent, /obj/machinery/plumbing/buffer)) + return COMPONENT_INCOMPATIBLE + + return ..() + +/datum/component/plumbing/buffer/can_give(amount, reagent, datum/ductnet/net) + var/obj/machinery/plumbing/buffer/buffer = parent + return (buffer.mode == READY) ? ..() : FALSE + +#undef READY diff --git a/code/datums/components/plumbing/filter.dm b/code/datums/components/plumbing/filter.dm index 30e36c057886e..76f3a7e13274e 100644 --- a/code/datums/components/plumbing/filter.dm +++ b/code/datums/components/plumbing/filter.dm @@ -22,7 +22,7 @@ if(!can_give_in_direction(direction, reagent)) return FALSE -/datum/component/plumbing/filter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/filter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) if(!reagents || !target || !target.reagents) return FALSE var/direction @@ -31,7 +31,7 @@ direction = get_original_direction(text2num(A)) break if(reagent) - reagents.trans_to(target.parent, amount, target_id = reagent) + reagents.trans_to(target.parent, amount, target_id = reagent, methods = round_robin ? LINEAR : NONE) else for(var/A in reagents.reagent_list) var/datum/reagent/R = A @@ -40,10 +40,11 @@ var/new_amount if(R.volume < amount) new_amount = amount - R.volume - reagents.trans_to(target.parent, amount, target_id = R.type) + reagents.trans_to(target.parent, amount, target_id = R.type, methods = round_robin ? LINEAR : NONE) amount = new_amount if(amount <= 0) break + ///We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours /datum/component/plumbing/filter/proc/can_give_in_direction(dir, reagent) var/obj/machinery/plumbing/filter/F = parent diff --git a/code/datums/components/plumbing/simple_components.dm b/code/datums/components/plumbing/simple_components.dm new file mode 100644 index 0000000000000..d1f8a4c3ca637 --- /dev/null +++ b/code/datums/components/plumbing/simple_components.dm @@ -0,0 +1,26 @@ + +///has one pipe input that only takes, example is manual output pipe +/datum/component/plumbing/simple_demand + demand_connects = SOUTH + +///has one pipe output that only supplies. example is liquid pump and manual input pipe +/datum/component/plumbing/simple_supply + supply_connects = SOUTH + +///input and output, like a holding tank +/datum/component/plumbing/tank + demand_connects = WEST + supply_connects = EAST + +///Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway. +/datum/component/plumbing/aquarium + demand_connects = SOUTH|NORTH|EAST|WEST + use_overlays = FALSE + +///Connects different layer of ducts +/datum/component/plumbing/manifold + demand_connects = NORTH + supply_connects = SOUTH + +/datum/component/plumbing/manifold/change_ducting_layer(obj/caller, obj/changer, new_layer) + return diff --git a/code/datums/components/plumbing/splitter.dm b/code/datums/components/plumbing/splitter.dm index 5ade1dfebc3ba..f94c78c490438 100644 --- a/code/datums/components/plumbing/splitter.dm +++ b/code/datums/components/plumbing/splitter.dm @@ -29,7 +29,7 @@ return FALSE -/datum/component/plumbing/splitter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/splitter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) var/direction for(var/A in ducts) if(ducts[A] == net) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index 3cc853cc77a17..50798fce50157 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -119,20 +119,20 @@ ride_benefit = rough_rider.mob_mood.sanity_level switch(ride_benefit) if(SANITY_LEVEL_GREAT) - modified_move_cooldown *= 0.5 - modified_move_delay *= 0.5 - if(SANITY_LEVEL_NEUTRAL) modified_move_cooldown *= 0.8 modified_move_delay *= 0.8 + if(SANITY_LEVEL_NEUTRAL) + modified_move_cooldown *= 0.9 + modified_move_delay *= 0.9 if(SANITY_LEVEL_DISTURBED) modified_move_cooldown *= 1 modified_move_delay *= 1 if(SANITY_LEVEL_CRAZY) + modified_move_cooldown *= 1.1 + modified_move_delay *= 1.1 + if(SANITY_LEVEL_INSANE) modified_move_cooldown *= 1.2 modified_move_delay *= 1.2 - if(SANITY_LEVEL_INSANE) - modified_move_cooldown *= 1.5 - modified_move_delay *= 1.5 COOLDOWN_START(src, vehicle_move_cooldown = modified_move_cooldown, (last_move_diagonal ? 2 : 1) * modified_move_delay) return ..() @@ -554,7 +554,7 @@ /datum/component/riding/creature/raptor/proc/freak_out() var/mob/living/living_parent = parent - if(!length(living_parent.buckled_mobs)) + if(lavaland_equipment_pressure_check(get_turf(living_parent)) || !length(living_parent.buckled_mobs)) return living_parent.balloon_alert_to_viewers("freaks out!") living_parent.spin(spintime = 2 SECONDS, speed = 1) diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index 68e44c4acd3fa..5555369c67ae8 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -242,15 +242,54 @@ ///Makes sure that the hoverboard can move in zero-g in (open) space but only there's a ground turf on the z-level below. /datum/component/riding/vehicle/scooter/skateboard/hover/proc/hover_check(is_moving = FALSE) var/atom/movable/movable = parent - if(!isopenspaceturf(movable.loc)) - override_allow_spacemove = TRUE + if(!is_space_or_openspace(movable.loc)) + on_hover_enabled() return var/turf/open/our_turf = movable.loc - var/turf/turf_below = GET_TURF_BELOW(our_turf) - if(our_turf.zPassOut(DOWN) && (isnull(turf_below) || (isopenspaceturf(turf_below) && turf_below.zPassIn(DOWN) && turf_below.zPassOut(DOWN)))) - override_allow_spacemove = FALSE - if(turf_below) - our_turf.zFall(movable, falling_from_move = is_moving) + var/turf/below = GET_TURF_BELOW(our_turf) + + if(!check_space_turf(our_turf)) + on_hover_fail() + return + //it's open space without support and the turf below is null or space without lattice, or if it'd fall several z-levels. + if(isopenspaceturf(our_turf) && our_turf.zPassOut(DOWN) && (isnull(below) || !check_space_turf(below) || (below.zPassOut(DOWN) && below.zPassIn(DOWN)))) + on_hover_fail(our_turf, below, is_moving) + return + on_hover_enabled() + +///Part of the hover_check proc that returns false if it's a space turf without lattice or such. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/check_space_turf(turf/turf) + if(!isspaceturf(turf)) + return TRUE + for(var/obj/object in turf.contents) + if(object.obj_flags & BLOCK_Z_OUT_DOWN) + return TRUE + return FALSE + +///Called by hover_check() when the hoverboard is on a valid turf. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_enabled() + override_allow_spacemove = TRUE + +///Called by hover_check() when the hoverboard is on space or open space turf without a support underneath it. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + override_allow_spacemove = FALSE + if(turf_below) + our_turf.zFall(parent, falling_from_move = is_moving) + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy + var/is_slown_down = FALSE + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_enabled() + if(!is_slown_down) + return + is_slown_down = FALSE + vehicle_move_delay -= 1 + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + if(is_slown_down) + return + is_slown_down = TRUE + vehicle_move_delay += 1 /datum/component/riding/vehicle/scooter/skateboard/wheelys vehicle_move_delay = 0 diff --git a/code/datums/components/slime_friends.dm b/code/datums/components/slime_friends.dm new file mode 100644 index 0000000000000..d2b751d092ea9 --- /dev/null +++ b/code/datums/components/slime_friends.dm @@ -0,0 +1,61 @@ +/datum/component/slime_friends + /// Slime maker timer. + var/timer + /// List to pick from when we need slime colour. + var/static/colours = list( + /datum/slime_type/adamantine, + /datum/slime_type/black, + /datum/slime_type/blue, + /datum/slime_type/bluespace, + /datum/slime_type/cerulean, + /datum/slime_type/darkblue, + /datum/slime_type/darkpurple, + /datum/slime_type/gold, + /datum/slime_type/green, + /datum/slime_type/grey, + /datum/slime_type/lightpink, + /datum/slime_type/metal, + /datum/slime_type/oil, + /datum/slime_type/orange, + /datum/slime_type/pink, + /datum/slime_type/purple, + /datum/slime_type/pyrite, + /datum/slime_type/rainbow, + /datum/slime_type/red, + /datum/slime_type/sepia, + /datum/slime_type/silver, + /datum/slime_type/yellow, + ) + +/datum/component/slime_friends/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + var/mob/living/living_parent = parent + living_parent.faction |= FACTION_SLIME + RegisterSignal(living_parent, COMSIG_ENTER_AREA, PROC_REF(start_slime_prodaction)) + +/datum/component/slime_friends/Destroy(force) + . = ..() + var/mob/living/living_parent = parent + living_parent.faction -= FACTION_SLIME + timer = null + +/// Start slime prodaction when we leave wizden. +/datum/component/slime_friends/proc/start_slime_prodaction(mob/living/friend, area/new_area) + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + UnregisterSignal(friend, COMSIG_ENTER_AREA) + +/// Slime prodactor proc. +/datum/component/slime_friends/proc/make_slime_friend(mob/living/friend) + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + if(get_area(friend) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + var/turf/where = get_turf(friend) + var/new_colour = pick(colours) + var/mob/living/basic/slime/new_friend = new(where, new_colour, SLIME_LIFE_STAGE_ADULT) + new_friend.faction = friend.faction.Copy() + new_friend.set_enraged_behaviour() + friend.nutrition -= 50 diff --git a/code/datums/components/space_allaergy.dm b/code/datums/components/space_allaergy.dm new file mode 100644 index 0000000000000..d1bc334ce1f5f --- /dev/null +++ b/code/datums/components/space_allaergy.dm @@ -0,0 +1,14 @@ +/// Slowly kill the thing when iuts on a planet +/datum/component/planet_allergy/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(entered_area)) + +/datum/component/planet_allergy/proc/entered_area(mob/living/parent, area/new_area) + SIGNAL_HANDLER + + if(is_on_a_planet(parent) && parent.has_gravity()) + parent.apply_status_effect(/datum/status_effect/planet_allergy) //your gamer body cant stand real gravity + else + parent.remove_status_effect(/datum/status_effect/planet_allergy) diff --git a/code/datums/components/space_camo.dm b/code/datums/components/space_camo.dm new file mode 100644 index 0000000000000..08b6c10649443 --- /dev/null +++ b/code/datums/components/space_camo.dm @@ -0,0 +1,54 @@ +/// Camouflage us when we enter space by increasing alpha and or changing color +/datum/component/space_camo + /// Alpha we have in space + var/space_alpha + /// Alpha we have elsewhere + var/non_space_alpha + /// How long we can't enter camo after hitting or being hit + var/reveal_after_combat + /// The world time after we can camo again + VAR_PRIVATE/next_camo + +/datum/component/space_camo/Initialize(space_alpha, non_space_alpha, reveal_after_combat) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + src.space_alpha = space_alpha + src.non_space_alpha = non_space_alpha + src.reveal_after_combat = reveal_after_combat + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(on_atom_entering)) + + if(isliving(parent)) + RegisterSignals(parent, list(COMSIG_ATOM_WAS_ATTACKED, COMSIG_MOB_ITEM_ATTACK, COMSIG_LIVING_UNARMED_ATTACK, COMSIG_ATOM_BULLET_ACT, COMSIG_ATOM_REVEAL), PROC_REF(force_exit_camo)) + +/datum/component/space_camo/proc/on_atom_entering(atom/movable/entering, atom/entered) + SIGNAL_HANDLER + + if(!attempt_enter_camo()) + exit_camo(parent) + +/datum/component/space_camo/proc/attempt_enter_camo() + if(!isspaceturf(get_turf(parent)) || next_camo > world.time) + return FALSE + + enter_camo(parent) + return TRUE + +/datum/component/space_camo/proc/force_exit_camo() + SIGNAL_HANDLER + + exit_camo(parent) + next_camo = world.time + reveal_after_combat + addtimer(CALLBACK(src, PROC_REF(attempt_enter_camo)), reveal_after_combat, TIMER_OVERRIDE | TIMER_UNIQUE) + +/datum/component/space_camo/proc/enter_camo(atom/movable/parent) + if(parent.alpha != space_alpha) + animate(parent, alpha = space_alpha, time = 0.5 SECONDS) + parent.remove_from_all_data_huds() + parent.add_atom_colour(SSparallax.get_parallax_color(), TEMPORARY_COLOUR_PRIORITY) + +/datum/component/space_camo/proc/exit_camo(atom/movable/parent) + animate(parent, alpha = non_space_alpha, time = 0.5 SECONDS) + parent.add_to_all_human_data_huds() + parent.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) diff --git a/code/datums/components/space_dive.dm b/code/datums/components/space_dive.dm new file mode 100644 index 0000000000000..870adbc22d4b0 --- /dev/null +++ b/code/datums/components/space_dive.dm @@ -0,0 +1,84 @@ +/// Lets us dive under the station from space +/datum/component/space_dive + /// holder we use when we're in dive + var/jaunt_type = /obj/effect/dummy/phased_mob/space_dive + /// time it takes to enter the dive + var/dive_time = 2 SECONDS + /// the time it takes to exit our space dive + var/surface_time = 2 SECONDS + /// Traits added during phasing (and removed after) + var/static/phase_traits = list(TRAIT_MAGICALLY_PHASED, TRAIT_RUNECHAT_HIDDEN, TRAIT_WEATHER_IMMUNE) + +/datum/component/space_dive/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bump)) + +/datum/component/space_dive/proc/bump(mob/living/parent, atom/bumped) + SIGNAL_HANDLER + + if(!isspaceturf(get_turf(parent))) + return + + if(ismovable(bumped)) + if(istype(bumped, /obj/machinery/door))//door check is kinda lame but it just plays better + return + + var/atom/movable/mover = bumped + if(!mover.anchored) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_dive), parent, bumped) + +/datum/component/space_dive/proc/attempt_dive(mob/living/parent, atom/bumped) + if(!do_after(parent, dive_time, bumped)) + return + + dive(bumped) + +/datum/component/space_dive/proc/dive(atom/bumped) + var/obj/effect/dummy/phased_mob/jaunt = new jaunt_type(get_turf(bumped), parent) + + RegisterSignal(jaunt, COMSIG_MOB_EJECTED_FROM_JAUNT, PROC_REF(surface)) + RegisterSignal(jaunt, COMSIG_MOB_PHASED_CHECK, PROC_REF(move_check)) + parent.add_traits(phase_traits, REF(src)) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_ENTER_JAUNT, src, jaunt) + +/datum/component/space_dive/proc/move_check(obj/effect/dummy/phased_mob/jaunt, mob/living/parent, turf/new_turf) + SIGNAL_HANDLER + + if(!isspaceturf(new_turf)) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_surface), parent, new_turf) + return COMPONENT_BLOCK_PHASED_MOVE + +/// try and surface by doing a do_after +/datum/component/space_dive/proc/attempt_surface(mob/living/parent, turf/new_turf) + if(do_after(parent, surface_time, new_turf, extra_checks = CALLBACK(src, PROC_REF(check_if_moved), parent, get_turf(parent)))) + surface(null, parent, new_turf) + +// we check if we moved for the do_after, since relayed movements arent caught that well by the do_after +/datum/component/space_dive/proc/check_if_moved(mob/living/parent, turf/do_after_turf) + return get_turf(parent) == do_after_turf + +/datum/component/space_dive/proc/surface(atom/holder, mob/living/parent, turf/target) + SIGNAL_HANDLER + + var/obj/effect/dummy/phased_mob/jaunt = parent.loc + if(!istype(jaunt)) + return FALSE + + parent.remove_traits(phase_traits, REF(src)) + + parent.forceMove(target || get_turf(parent)) + qdel(jaunt) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_AFTER_EXIT_JAUNT, src) + +/obj/effect/dummy/phased_mob/space_dive + movespeed = 1 diff --git a/code/datums/components/space_kidnap.dm b/code/datums/components/space_kidnap.dm new file mode 100644 index 0000000000000..adf1e6b572861 --- /dev/null +++ b/code/datums/components/space_kidnap.dm @@ -0,0 +1,65 @@ +/// Component that lets us space kidnap people as the voidwalker with our HAAAADS +/datum/component/space_kidnap + /// How long does it take to kidnap them? + var/kidnap_time = 6 SECONDS + /// Are we kidnapping right now? + var/kidnapping = FALSE + +/datum/component/space_kidnap/Initialize(...) + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(try_kidnap)) + +/datum/component/space_kidnap/proc/try_kidnap(mob/living/parent, atom/target) + SIGNAL_HANDLER + + if(!isliving(target)) + return + + var/mob/living/victim = target + + if(victim.stat == DEAD) + target.balloon_alert(parent, "is dead!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!victim.incapacitated()) + return + + if(!isspaceturf(get_turf(target))) + target.balloon_alert(parent, "not in space!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!kidnapping) + INVOKE_ASYNC(src, PROC_REF(kidnap), parent, target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/space_kidnap/proc/kidnap(mob/living/parent, mob/living/victim) + victim.Paralyze(kidnap_time) //so they don't get up if we already got em + var/obj/particles = new /obj/effect/abstract/particle_holder (victim, /particles/void_kidnap) + kidnapping = TRUE + + if(do_after(parent, kidnap_time, victim, extra_checks = CALLBACK(victim, TYPE_PROC_REF(/mob, incapacitated)))) + take_them(victim) + + qdel(particles) + kidnapping = FALSE + +/datum/component/space_kidnap/proc/take_them(mob/living/victim) + if(ishuman(victim)) + var/mob/living/carbon/human/hewmon = victim + hewmon.gain_trauma(/datum/brain_trauma/voided) + + victim.flash_act(INFINITY, override_blindness_check = TRUE, visual = TRUE, type = /atom/movable/screen/fullscreen/flash/black) + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(victim)) + + if(!SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) || !GLOB.voidwalker_void.len) + victim.forceMove(get_random_station_turf()) + victim.heal_overall_damage(brute = 80, burn = 20) + CRASH("[victim] was instantly dumped after being voidwalker kidnapped due to a missing landmark!") + else + victim.heal_and_revive(90) + victim.adjustOxyLoss(-100, FALSE) + + var/obj/wisp = new /obj/effect/wisp_mobile (get_turf(pick(GLOB.voidwalker_void))) + victim.forceMove(wisp) diff --git a/code/datums/components/speechmod.dm b/code/datums/components/speechmod.dm new file mode 100644 index 0000000000000..2506a0b914077 --- /dev/null +++ b/code/datums/components/speechmod.dm @@ -0,0 +1,134 @@ +/// Used to apply certain speech patterns +/// Can be used on organs, wearables, mutations and mobs +/datum/component/speechmod + /// Assoc list for strings/regexes and their replacements. Should be lowercase, as case will be automatically changed + var/list/replacements = list() + /// String added to the end of the message + var/end_string = "" + /// Chance for the end string to be applied + var/end_string_chance = 100 + /// Current target for modification + var/mob/targeted + /// Slot tags in which this item works when equipped + var/slots + /// If set to true, turns all text to uppercase + var/uppercase = FALSE + /// Any additional checks that we should do before applying the speech modification + var/datum/callback/should_modify_speech = null + +/datum/component/speechmod/Initialize(replacements = list(), end_string = "", end_string_chance = 100, slots, uppercase = FALSE, should_modify_speech) + if (!ismob(parent) && !isitem(parent) && !istype(parent, /datum/mutation/human)) + return COMPONENT_INCOMPATIBLE + + src.replacements = replacements + src.end_string = end_string + src.end_string_chance = end_string_chance + src.slots = slots + src.uppercase = uppercase + src.should_modify_speech = should_modify_speech + + if (istype(parent, /datum/mutation/human)) + RegisterSignal(parent, COMSIG_MUTATION_GAINED, PROC_REF(on_mutation_gained)) + RegisterSignal(parent, COMSIG_MUTATION_LOST, PROC_REF(on_mutation_lost)) + return + + var/atom/owner = parent + + if (ismob(parent)) + targeted = parent + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + return + + if (ismob(owner.loc)) + targeted = owner.loc + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_unequipped)) + RegisterSignal(parent, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_implanted)) + RegisterSignal(parent, COMSIG_ORGAN_REMOVED, PROC_REF(on_removed)) + +/datum/component/speechmod/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] == "*") + return + if(!isnull(should_modify_speech) && !should_modify_speech.Invoke(source, speech_args)) + return + + for (var/to_replace in replacements) + var/replacement = replacements[to_replace] + // Values can be lists to be picked randomly from + if (islist(replacement)) + replacement = pick(replacement) + + message = replacetextEx(message, to_replace, replacement) + message = trim(message) + if (prob(end_string_chance)) + message += islist(end_string) ? pick(end_string) : end_string + speech_args[SPEECH_MESSAGE] = trim(message) + + if (uppercase) + return COMPONENT_UPPERCASE_SPEECH + +/datum/component/speechmod/proc/on_equipped(datum/source, mob/living/user, slot) + SIGNAL_HANDLER + + if (!isnull(slots) && !(slot & slots)) + if (!isnull(targeted)) + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + return + + if (targeted == user) + return + + targeted = user + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_unequipped(datum/source, mob/living/user) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/proc/on_implanted(datum/source, mob/living/carbon/receiver) + SIGNAL_HANDLER + + if (targeted == receiver) + return + + targeted = receiver + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_removed(datum/source, mob/living/carbon/former_owner) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/proc/on_mutation_gained(datum/source, mob/living/carbon/human/owner) + SIGNAL_HANDLER + + if (targeted == owner) + return + + targeted = owner + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_mutation_lost(datum/source, mob/living/carbon/human/owner) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/Destroy() + should_modify_speech = null + return ..() diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 28fc3be29c2fd..b8621d382f6fb 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -405,6 +405,10 @@ if(el_tail && (el_tail.wag_flags & WAG_WAGGING)) // lizard tail wagging is robust and can swat away assailants! defense_mod += 1 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = tackle_target.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + defense_mod += potential_spine.strength_bonus + // OF-FENSE var/mob/living/carbon/sacker = parent var/sacker_drunkenness = sacker.get_drunk_amount() @@ -437,6 +441,10 @@ if(sacker_wing) attack_mod += 2 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = sacker.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + attack_mod += potential_spine.strength_bonus + if(ishuman(sacker)) var/mob/living/carbon/human/human_sacker = sacker @@ -500,6 +508,10 @@ if(HAS_TRAIT(user, TRAIT_HEAD_INJURY_BLOCKED)) oopsie_mod -= 6 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) // Can't snap that spine if it's made of metal. + if(istype(potential_spine)) + oopsie_mod -= potential_spine.strength_bonus + if(HAS_TRAIT(user, TRAIT_CLUMSY)) oopsie_mod += 6 //honk! @@ -596,11 +608,9 @@ if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows for(var/i in 1 to speed) var/obj/item/shard/shard = new /obj/item/shard(get_turf(user)) - shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult=3, pain_chance=5) - shard.updateEmbedding() + shard.set_embed(/datum/embed_data/glass_candy) user.hitby(shard, skipcatch = TRUE, hitpush = FALSE) - shard.embedding = null - shard.updateEmbedding() + shard.set_embed(initial(shard.embed_type)) W.atom_destruction() user.adjustStaminaLoss(10 * speed) user.Paralyze(3 SECONDS) diff --git a/code/datums/components/temporary_glass_shatter.dm b/code/datums/components/temporary_glass_shatter.dm new file mode 100644 index 0000000000000..c2db33190e601 --- /dev/null +++ b/code/datums/components/temporary_glass_shatter.dm @@ -0,0 +1,30 @@ +/// Component to make an item temporarily break glass +/datum/component/temporary_glass_shatterer/Initialize(...) + . = ..() + + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_tap)) + +/datum/component/temporary_glass_shatterer/proc/on_tap(obj/item/parent, mob/tapper, atom/target) + SIGNAL_HANDLER + + if(istype(target, /obj/structure/window)) + var/obj/structure/grille/grille = locate(/obj/structure/grille) in get_turf(target) + if(grille?.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + var/obj/structure/window/window = target + window.temporary_shatter() + else if(istype(target, /obj/structure/grille)) + var/obj/structure/grille/grille = target + if(grille.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + grille.temporary_shatter() + else + return + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/components/wormborn.dm b/code/datums/components/wormborn.dm new file mode 100644 index 0000000000000..1841dbf38cc3e --- /dev/null +++ b/code/datums/components/wormborn.dm @@ -0,0 +1,74 @@ +/datum/component/wormborn + +/datum/component/wormborn/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/wormborn/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(second_breath)) + +/datum/component/wormborn/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_DEATH) + +/datum/component/wormborn/proc/second_breath(mob/living/source) + SIGNAL_HANDLER + + if(get_area(source) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + source.buckled?.unbuckle_mob(source, force = TRUE) + + if(source.movement_type & VENTCRAWLING) + source.forceMove(get_turf(source)) + + var/mob/living/worm = new /mob/living/basic/wizard_worm(get_turf(source)) + source.mind?.transfer_to(worm) + source.forceMove(worm) + +/mob/living/basic/wizard_worm + name = "Magic Worm" + desc = "Large blue worm. What happens if you put your hand in his mouth?." + icon = 'icons/mob/simple/mob.dmi' + icon_state = "wizard_start" + icon_living = "wizard_start" + base_icon_state = "wizard" + maxHealth = 800 + health = 800 + melee_damage_lower = 20 + melee_damage_upper = 30 + obj_damage = 200 + speed = 0 + move_force = MOVE_FORCE_OVERPOWERING + move_resist = MOVE_FORCE_OVERPOWERING + pull_force = MOVE_FORCE_OVERPOWERING + mob_size = MOB_SIZE_HUGE + sentience_type = SENTIENCE_BOSS + mob_biotypes = MOB_ORGANIC|MOB_SPECIAL + +/mob/living/basic/wizard_worm/has_gravity(turf/gravity_turf) + return TRUE + +/mob/living/basic/wizard_worm/can_be_pulled() + return FALSE + +/mob/living/basic/wizard_worm/Initialize(mapload, spawn_bodyparts = TRUE) + . = ..() + AddElement(/datum/element/wall_tearer) + + if(spawn_bodyparts) + build_tail() + +/mob/living/basic/wizard_worm/proc/build_tail(mob/living/tail) + AddComponent(/datum/component/mob_chain, vary_icon_state = TRUE) + var/mob/living/basic/wizard_worm/prev = src + for(var/i in 1 to 5) + prev = new_segment(behind = prev) + update_appearance(UPDATE_ICON_STATE) + +/mob/living/basic/wizard_worm/proc/new_segment(mob/living/basic/wizard_worm/behind) + var/mob/living/segment = new type(drop_location(), FALSE) + ADD_TRAIT(segment, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT) + segment.AddComponent(/datum/component/mob_chain, front = behind, vary_icon_state = TRUE) + return segment diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 17cdb20e3c492..e5d4657c17660 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -469,7 +469,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) generate_dna_blocks() if(randomize_features) for(var/species_type in GLOB.species_prototypes) - features |= GLOB.species_prototypes[species_type].randomize_features() + var/list/new_features = GLOB.species_prototypes[species_type].randomize_features() + for(var/feature in new_features) + features[feature] = new_features[feature] features["mcolor"] = "#[random_color()]" diff --git a/code/datums/elements/caseless.dm b/code/datums/elements/caseless.dm index 587a32f2b304e..9b1c06012079c 100644 --- a/code/datums/elements/caseless.dm +++ b/code/datums/elements/caseless.dm @@ -24,7 +24,6 @@ if(reusable) if(!ispath(proj.shrapnel_type)) proj.shrapnel_type = shell.type - proj.updateEmbedding() proj.AddElement(/datum/element/projectile_drop, shell.type) /datum/element/caseless/proc/on_fired_casing(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro, obj/projectile/proj) diff --git a/code/datums/elements/climbable.dm b/code/datums/elements/climbable.dm index a2c67742a357e..113cc8aaa90ef 100644 --- a/code/datums/elements/climbable.dm +++ b/code/datums/elements/climbable.dm @@ -35,6 +35,8 @@ examine_texts += span_notice("[source] looks climbable.") /datum/element/climbable/proc/can_climb(atom/source, mob/user) + if (!user.CanReach(source)) + return FALSE var/dir_step = get_dir(user, source.loc) //To jump over a railing you have to be standing next to it, not far behind it. if(source.flags_1 & ON_BORDER_1 && user.loc != source.loc && (dir_step & source.dir) == source.dir) diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 78f28d8b81c23..4a8bda37c3a75 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -10,64 +10,33 @@ */ /datum/element/embed - element_flags = ELEMENT_BESPOKE - argument_hash_start_idx = 2 - var/initialized = FALSE /// whether we can skip assigning all the vars (since these are bespoke elements, we don't have to reset the vars every time we attach to something, we already know what we are!) - - // all of this stuff is explained in _DEFINES/combat.dm - var/embed_chance - var/fall_chance - var/pain_chance - var/pain_mult - var/remove_pain_mult - var/impact_pain_mult - var/rip_time - var/ignore_throwspeed_threshold - var/jostle_chance - var/jostle_pain_mult - var/pain_stam_pct - var/payload_type - -/datum/element/embed/Attach(datum/target, embed_chance, fall_chance, pain_chance, pain_mult, remove_pain_mult, impact_pain_mult, rip_time, ignore_throwspeed_threshold, jostle_chance, jostle_pain_mult, pain_stam_pct, projectile_payload=/obj/item/shard) + +/datum/element/embed/Attach(datum/target) . = ..() if(!isitem(target) && !isprojectile(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ELEMENT_ATTACH, PROC_REF(severancePackage)) - if(isitem(target)) - RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(checkEmbed)) - RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examined)) - RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, PROC_REF(tryForceEmbed)) - RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, PROC_REF(detachFromWeapon)) - else - payload_type = projectile_payload - RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(checkEmbedProjectile)) - - if(!initialized) - src.embed_chance = embed_chance - src.fall_chance = fall_chance - src.pain_chance = pain_chance - src.pain_mult = pain_mult - src.remove_pain_mult = remove_pain_mult - src.rip_time = rip_time - src.impact_pain_mult = impact_pain_mult - src.ignore_throwspeed_threshold = ignore_throwspeed_threshold - src.jostle_chance = jostle_chance - src.jostle_pain_mult = jostle_pain_mult - src.pain_stam_pct = pain_stam_pct - initialized = TRUE + RegisterSignal(target, COMSIG_ELEMENT_ATTACH, PROC_REF(sever_element)) + if(isprojectile(target)) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(check_embed_projectile)) + return + + RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(check_embed)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examined)) + RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, PROC_REF(try_force_embed)) + RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, PROC_REF(detach_from_weapon)) /datum/element/embed/Detach(obj/target) . = ..() - if(isitem(target)) - UnregisterSignal(target, list(COMSIG_MOVABLE_IMPACT_ZONE, COMSIG_ELEMENT_ATTACH, COMSIG_MOVABLE_IMPACT, COMSIG_ATOM_EXAMINE, COMSIG_EMBED_TRY_FORCE, COMSIG_ITEM_DISABLE_EMBED)) - else + if(isprojectile(target)) UnregisterSignal(target, list(COMSIG_PROJECTILE_SELF_ON_HIT, COMSIG_ELEMENT_ATTACH)) + return + UnregisterSignal(target, list(COMSIG_MOVABLE_IMPACT_ZONE, COMSIG_ELEMENT_ATTACH, COMSIG_MOVABLE_IMPACT, COMSIG_ATOM_EXAMINE, COMSIG_EMBED_TRY_FORCE, COMSIG_ITEM_DISABLE_EMBED)) /// Checking to see if we're gonna embed into a human -/datum/element/embed/proc/checkEmbed(obj/item/weapon, mob/living/carbon/victim, hit_zone, blocked, datum/thrownthing/throwingdatum, forced=FALSE) +/datum/element/embed/proc/check_embed(obj/item/weapon, mob/living/carbon/victim, hit_zone, blocked, datum/thrownthing/throwingdatum, forced=FALSE) SIGNAL_HANDLER if(forced) @@ -82,7 +51,7 @@ var/flying_speed = throwingdatum?.speed || weapon.throw_speed - if(flying_speed < EMBED_THROWSPEED_THRESHOLD && !ignore_throwspeed_threshold) + if(flying_speed < EMBED_THROWSPEED_THRESHOLD && !weapon.get_embed().ignore_throwspeed_threshold) return FALSE if(!roll_embed_chance(weapon, victim, hit_zone, throwingdatum)) @@ -97,27 +66,17 @@ victim.AddComponent(/datum/component/embedded,\ weapon,\ throwingdatum,\ - part = limb,\ - embed_chance = embed_chance,\ - fall_chance = fall_chance,\ - pain_chance = pain_chance,\ - pain_mult = pain_mult,\ - remove_pain_mult = remove_pain_mult,\ - rip_time = rip_time,\ - ignore_throwspeed_threshold = ignore_throwspeed_threshold,\ - jostle_chance = jostle_chance,\ - jostle_pain_mult = jostle_pain_mult,\ - pain_stam_pct = pain_stam_pct) + part = limb) ///A different embed element has been attached, so we'll detach and let them handle things -/datum/element/embed/proc/severancePackage(obj/weapon, datum/element/E) +/datum/element/embed/proc/sever_element(obj/weapon, datum/element/E) SIGNAL_HANDLER if(istype(E, /datum/element/embed)) Detach(weapon) ///If we don't want to be embeddable anymore (deactivating an e-dagger for instance) -/datum/element/embed/proc/detachFromWeapon(obj/weapon) +/datum/element/embed/proc/detach_from_weapon(obj/weapon) SIGNAL_HANDLER Detach(weapon) @@ -126,27 +85,28 @@ /datum/element/embed/proc/examined(obj/item/I, mob/user, list/examine_list) SIGNAL_HANDLER - if(I.isEmbedHarmless()) + if(I.is_embed_harmless()) examine_list += "[I] feels sticky, and could probably get stuck to someone if thrown properly!" else examine_list += "[I] has a fine point, and could probably embed in someone if thrown properly!" /** - * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. + * check_embed_projectile() is what we get when a projectile with a defined shrapnel_type impacts a target. * * If we hit a valid target, we create the shrapnel_type object and then forcefully try to embed it on its * behalf. DO NOT EVER add an embed element to the payload and let it do the rest. * That's awful, and it'll limit us to drop-deletable shrapnels in the worry of stuff like * arrows and harpoons being embeddable even when not let loose by their weapons. */ -/datum/element/embed/proc/checkEmbedProjectile(obj/projectile/source, atom/movable/firer, atom/hit, angle, hit_zone) +/datum/element/embed/proc/check_embed_projectile(obj/projectile/source, atom/movable/firer, atom/hit, angle, hit_zone, blocked) SIGNAL_HANDLER - if(!source.can_embed_into(hit)) + if(!source.can_embed_into(hit) || blocked) Detach(source) return // we don't care - + var/payload_type = source.shrapnel_type var/obj/item/payload = new payload_type(get_turf(hit)) + payload.set_embed(source.get_embed()) if(istype(payload, /obj/item/shrapnel/bullet)) payload.name = source.name SEND_SIGNAL(source, COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED, payload) @@ -155,12 +115,12 @@ if(!limb) limb = C.get_bodypart() - if(!tryForceEmbed(payload, limb)) + if(!try_force_embed(payload, limb)) payload.failedEmbed() Detach(source) /** - * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. + * try_force_embed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. * * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel, and possibly * AGAIN if we actually embed. This way, we save on at least one message. @@ -171,7 +131,7 @@ * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. * * forced- if we want this to succeed 100% */ -/datum/element/embed/proc/tryForceEmbed(obj/item/embedding_item, atom/target, hit_zone, forced=FALSE) +/datum/element/embed/proc/try_force_embed(obj/item/embedding_item, atom/target, hit_zone, forced=FALSE) SIGNAL_HANDLER var/obj/item/bodypart/limb @@ -190,16 +150,16 @@ if(!forced && !roll_embed_chance(embedding_item, victim, hit_zone)) return - return checkEmbed(embedding_item, victim, hit_zone, forced=TRUE) // Don't repeat the embed roll, we already did it + return check_embed(embedding_item, victim, hit_zone, forced=TRUE) // Don't repeat the embed roll, we already did it /// Calculates the actual chance to embed based on armour penetration and throwing speed, then returns true if we pass that probability check /datum/element/embed/proc/roll_embed_chance(obj/item/embedding_item, mob/living/victim, hit_zone, datum/thrownthing/throwingdatum) - var/actual_chance = embed_chance + var/actual_chance = embedding_item.get_embed().embed_chance if(throwingdatum?.speed > embedding_item.throw_speed) actual_chance += (throwingdatum.speed - embedding_item.throw_speed) * EMBED_CHANCE_SPEED_BONUS - if(embedding_item.isEmbedHarmless()) // all the armor in the world won't save you from a kick me sign + if(embedding_item.is_embed_harmless()) // all the armor in the world won't save you from a kick me sign return prob(actual_chance) var/armor = max(victim.run_armor_check(hit_zone, BULLET, silent=TRUE), victim.run_armor_check(hit_zone, BOMB, silent=TRUE)) * 0.5 // we'll be nice and take the better of bullet and bomb armor, halved diff --git a/code/datums/elements/floorloving.dm b/code/datums/elements/floorloving.dm index 229dea11da874..c14d9d5801e68 100644 --- a/code/datums/elements/floorloving.dm +++ b/code/datums/elements/floorloving.dm @@ -14,7 +14,7 @@ /// Block movement to any non-floor location /datum/element/floor_loving/proc/attempting_move(atom/movable/parent, newloc) SIGNAL_HANDLER - if (!isopenturf(newloc) || isspaceturf(newloc) || isopenspaceturf(newloc)) + if (!isopenturf(newloc) || is_space_or_openspace(newloc)) return COMPONENT_MOVABLE_BLOCK_PRE_MOVE if (isliving(parent)) var/mob/living/living_parent = parent diff --git a/code/datums/components/crafting/slapcrafting.dm b/code/datums/elements/slapcrafting.dm similarity index 77% rename from code/datums/components/crafting/slapcrafting.dm rename to code/datums/elements/slapcrafting.dm index a15a8a80b17dd..42776bf31f773 100644 --- a/code/datums/components/crafting/slapcrafting.dm +++ b/code/datums/elements/slapcrafting.dm @@ -1,10 +1,11 @@ /// Slapcrafting component! -/datum/component/slapcrafting - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS +/datum/element/slapcrafting + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 var/list/slapcraft_recipes = list() /** - * Slapcraft component + * Slapcraft element * * Slap it onto a item to be able to slapcraft with it * @@ -14,35 +15,28 @@ * It will check the area near the user for the rest of the ingredients and tools. * * **/ -/datum/component/slapcrafting/Initialize( - slapcraft_recipes = null, - ) +/datum/element/slapcrafting/Attach(datum/target, slapcraft_recipes = null) + ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE - if(!isitem(parent)) - return COMPONENT_INCOMPATIBLE + var/obj/item/target_item = target - var/obj/item/parent_item = parent + if((target_item.item_flags & ABSTRACT) || (target_item.item_flags & DROPDEL)) + return //Don't do anything, it just shouldn't be used in crafting. - if((parent_item.item_flags & ABSTRACT) || (parent_item.item_flags & DROPDEL)) - return COMPONENT_NOTRANSFER + RegisterSignal(target, COMSIG_ATOM_ATTACKBY, PROC_REF(attempt_slapcraft)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(get_examine_info)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(get_examine_more_info)) + RegisterSignal(target, COMSIG_TOPIC, PROC_REF(topic_handler)) - RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(attempt_slapcraft)) - RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(get_examine_info)) - RegisterSignal(parent, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(get_examine_more_info)) - RegisterSignal(parent, COMSIG_TOPIC, PROC_REF(topic_handler)) + src.slapcraft_recipes = slapcraft_recipes - src.slapcraft_recipes += slapcraft_recipes +/datum/element/slapcrafting/Detach(datum/source, ...) + . = ..() + UnregisterSignal(source, list(COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_EXAMINE_MORE)) -/datum/component/slapcrafting/InheritComponent(datum/component/slapcrafting/new_comp, original, slapcraft_recipes) - if(!original) - return - src.slapcraft_recipes += slapcraft_recipes - -/datum/component/slapcrafting/Destroy(force) - UnregisterSignal(parent, list(COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_EXAMINE_MORE)) - return ..() - -/datum/component/slapcrafting/proc/attempt_slapcraft(obj/item/parent_item, obj/item/slapper, mob/user) +/datum/element/slapcrafting/proc/attempt_slapcraft(obj/item/parent_item, obj/item/slapper, mob/user) if(isnull(slapcraft_recipes)) CRASH("NULL SLAPCRAFT RECIPES?") @@ -71,9 +65,9 @@ return // We might use radials so we need to split the proc chain - INVOKE_ASYNC(src, PROC_REF(slapcraft_async), valid_recipes, user, craft_sheet) + INVOKE_ASYNC(src, PROC_REF(slapcraft_async), parent_item, valid_recipes, user, craft_sheet) -/datum/component/slapcrafting/proc/slapcraft_async(list/valid_recipes, mob/user, datum/component/personal_crafting/craft_sheet) +/datum/element/slapcrafting/proc/slapcraft_async(obj/parent_item, list/valid_recipes, mob/user, datum/component/personal_crafting/craft_sheet) var/list/recipe_choices = list() @@ -90,7 +84,7 @@ if(!recipe_choices) CRASH("No recipe choices despite validating in earlier proc") - string_chosen_recipe = show_radial_menu(user, parent, recipe_choices, require_near = TRUE) + string_chosen_recipe = show_radial_menu(user, parent_item, recipe_choices, require_near = TRUE) if(isnull(string_chosen_recipe)) return // they closed the thing @@ -118,7 +112,7 @@ to_chat(user, span_warning("crafting failed" + error_string)) /// Alerts any examiners to the recipe, if they wish to know more. -/datum/component/slapcrafting/proc/get_examine_info(atom/source, mob/user, list/examine_list) +/datum/element/slapcrafting/proc/get_examine_info(atom/source, mob/user, list/examine_list) SIGNAL_HANDLER var/list/string_results = list() @@ -132,17 +126,17 @@ already_used_names += initial(result.name) string_results += list("\a [initial(result.name)]") - examine_list += span_notice("You think [parent] could be used to make [english_list(string_results)]! Examine again to look at the details...") + examine_list += span_notice("You think [source] could be used to make [english_list(string_results)]! Examine again to look at the details...") /// Alerts any examiners to the details of the recipe. -/datum/component/slapcrafting/proc/get_examine_more_info(atom/source, mob/user, list/examine_list) +/datum/element/slapcrafting/proc/get_examine_more_info(atom/source, mob/user, list/examine_list) SIGNAL_HANDLER for(var/datum/crafting_recipe/recipe as anything in slapcraft_recipes) var/atom/result = initial(recipe.result) examine_list += "See Recipe For [initial(result.name)]" -/datum/component/slapcrafting/proc/topic_handler(atom/source, user, href_list) +/datum/element/slapcrafting/proc/topic_handler(atom/source, user, href_list) SIGNAL_HANDLER if(!href_list["check_recipe"]) @@ -176,7 +170,7 @@ var/amount = initial(cur_recipe.reqs[ingredient]) // If we're about to describe the ingredient that the component is based on, lower the described amount by 1 or remove it outright. - if(parent.type == valid_type) + if(source.type == valid_type) if(amount > 1) amount-- else diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index b050dd0866f0e..c9fb667cff922 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -219,10 +219,10 @@ GLOBAL_LIST_EMPTY(pillars_by_z) // it will make them look significantly nicer, and should let you tie into their logic more easily // Just please don't break behavior yeah? thanks, I love you <3 if(isclosedturf(our_turf)) //Show girders below closed turfs - var/mutable_appearance/girder_underlay = mutable_appearance('icons/obj/structures.dmi', "girder", layer = TURF_LAYER-0.01) + var/mutable_appearance/girder_underlay = mutable_appearance('icons/obj/structures.dmi', "girder", layer = BELOW_CLOSED_TURF_LAYER) girder_underlay.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays += girder_underlay - var/mutable_appearance/plating_underlay = mutable_appearance('icons/turf/floors.dmi', "plating", layer = TURF_LAYER-0.02) + var/mutable_appearance/plating_underlay = mutable_appearance('icons/turf/floors.dmi', "plating", layer = LOW_FLOOR_LAYER, offset_spokesman = our_turf, plane = FLOOR_PLANE) plating_underlay.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays += plating_underlay return TRUE @@ -240,10 +240,10 @@ GLOBAL_LIST_EMPTY(pillars_by_z) our_turf.underlays -= get_baseturf_underlay(our_turf) if(isclosedturf(our_turf)) //Show girders below closed turfs - var/mutable_appearance/girder_underlay = mutable_appearance('icons/obj/structures.dmi', "girder", layer = TURF_LAYER-0.01) + var/mutable_appearance/girder_underlay = mutable_appearance('icons/obj/structures.dmi', "girder", layer = BELOW_CLOSED_TURF_LAYER) girder_underlay.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays -= girder_underlay - var/mutable_appearance/plating_underlay = mutable_appearance('icons/turf/floors.dmi', "plating", layer = TURF_LAYER-0.02) + var/mutable_appearance/plating_underlay = mutable_appearance('icons/turf/floors.dmi', "plating", layer = LOW_FLOOR_LAYER, offset_spokesman = our_turf, plane = FLOOR_PLANE) plating_underlay.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays -= plating_underlay @@ -271,7 +271,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) if(!ispath(path)) warning("Z-level [our_turf.z] has invalid baseturf '[SSmapping.level_trait(our_turf.z, ZTRAIT_BASETURF)]'") path = /turf/open/space - var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), initial(path.icon_state), layer = TURF_LAYER-0.02, offset_spokesman = our_turf, plane = PLANE_SPACE) + var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), initial(path.icon_state), layer = SPACE_LAYER + 0.1, offset_spokesman = our_turf, plane = PLANE_SPACE) underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR return underlay_appearance diff --git a/code/datums/elements/undertile.dm b/code/datums/elements/undertile.dm index ecc621a57e42f..ed901b196c1aa 100644 --- a/code/datums/elements/undertile.dm +++ b/code/datums/elements/undertile.dm @@ -44,6 +44,7 @@ if(underfloor_accessibility < UNDERFLOOR_INTERACTABLE) SET_PLANE_IMPLICIT(source, FLOOR_PLANE) // We do this so that turfs that allow you to see what's underneath them don't have to be on the game plane (which causes ambient occlusion weirdness) + source.layer = ABOVE_OPEN_TURF_LAYER ADD_TRAIT(source, TRAIT_UNDERFLOOR, REF(src)) if(tile_overlay) @@ -61,6 +62,7 @@ else SET_PLANE_IMPLICIT(source, initial(source.plane)) + source.layer = initial(source.layer) REMOVE_TRAIT(source, TRAIT_UNDERFLOOR, REF(src)) if(invisibility_trait) diff --git a/code/datums/embed_data.dm b/code/datums/embed_data.dm new file mode 100644 index 0000000000000..a82d305c8e6eb --- /dev/null +++ b/code/datums/embed_data.dm @@ -0,0 +1,55 @@ +/// Assosciative list of type -> embed data. +GLOBAL_LIST_INIT(embed_by_type, generate_embed_type_cache()) + +/proc/generate_embed_type_cache() + var/list/embed_cache = list() + for(var/datum/embed_data/embed_type as anything in subtypesof(/datum/embed_data)) + var/datum/embed_data/embed = new embed_type + embed_cache[embed_type] = embed + return embed_cache + +/proc/get_embed_by_type(embed_type) + var/datum/embed_data/embed = GLOB.embed_by_type[embed_type] + if(embed) + return embed + CRASH("Attempted to get an embed type that did not exist! '[embed_type]'") + +/datum/embed_data + /// Chance for an object to embed into somebody when thrown + var/embed_chance = 45 + /// Chance for embedded object to fall out (causing pain but removing the object) + var/fall_chance = 5 + /// Chance for embedded objects to cause pain (damage user) + var/pain_chance = 15 + /// Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) + var/pain_mult = 2 + /// Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) + var/impact_pain_mult = 4 + /// Coefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class) + var/remove_pain_mult = 6 + /// Time in ticks, total removal time = (this*item.w_class) + var/rip_time = 30 + /// If this should ignore throw speed threshold of 4 + var/ignore_throwspeed_threshold = FALSE + /// Chance for embedded objects to cause pain every time they move (jostle) + var/jostle_chance = 5 + /// Coefficient of multiplication for the damage the item does while + var/jostle_pain_mult = 1 + /// This percentage of all pain will be dealt as stam damage rather than brute (0-1) + var/pain_stam_pct = 0 + +/datum/embed_data/proc/generate_with_values(embed_chance, fall_chance, pain_chance, pain_mult, impact_pain_mult, remove_pain_mult, rip_time, ignore_throwspeed_threshold, jostle_chance, jostle_pain_mult, pain_stam_pct, force_new = FALSE) + var/datum/embed_data/data = isnull(GLOB.embed_by_type[type]) && !force_new ? src : new() + + data.embed_chance = !isnull(embed_chance) ? embed_chance : src.embed_chance + data.fall_chance = !isnull(fall_chance) ? fall_chance : src.fall_chance + data.pain_chance = !isnull(pain_chance) ? pain_chance : src.pain_chance + data.pain_mult = !isnull(pain_mult) ? pain_mult : src.pain_mult + data.impact_pain_mult = !isnull(impact_pain_mult) ? impact_pain_mult : src.impact_pain_mult + data.remove_pain_mult = !isnull(remove_pain_mult) ? remove_pain_mult : src.remove_pain_mult + data.rip_time = !isnull(rip_time) ? rip_time : src.rip_time + data.ignore_throwspeed_threshold = !isnull(ignore_throwspeed_threshold) ? ignore_throwspeed_threshold : src.ignore_throwspeed_threshold + data.jostle_chance = !isnull(jostle_chance) ? jostle_chance : src.jostle_chance + data.jostle_pain_mult = !isnull(jostle_pain_mult) ? jostle_pain_mult : src.jostle_pain_mult + data.pain_stam_pct = !isnull(pain_stam_pct) ? pain_stam_pct : src.pain_stam_pct + return data diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm index 25d006a44ee8e..60c12c25b9ef1 100644 --- a/code/datums/greyscale/_greyscale_config.dm +++ b/code/datums/greyscale/_greyscale_config.dm @@ -278,8 +278,9 @@ for(var/datum/greyscale_layer/layer as anything in group) var/icon/layer_icon if(islist(layer)) + var/list/layer_list = layer layer_icon = GenerateLayerGroup(colors, layer, render_steps, new_icon || last_external_icon) - layer = layer[1] // When there are multiple layers in a group like this we use the first one's blend mode + layer = layer_list[1] // When there are multiple layers in a group like this we use the first one's blend mode else layer_icon = layer.Generate(colors, render_steps, new_icon || last_external_icon) diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm index a3866971aae5f..2137aea08f3b4 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm @@ -265,15 +265,15 @@ /datum/greyscale_config/vape/open_low name = "Open Vape Low" - json_config = 'code/datums/greyscale/json_configs/vape_open_low.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_low.json' /datum/greyscale_config/vape/open_med name = "Open Vape Medium" - json_config = 'code/datums/greyscale/json_configs/vape_open_med.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_med.json' /datum/greyscale_config/vape/open_high name = "Open Vape High" - json_config = 'code/datums/greyscale/json_configs/vape_open_high.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_high.json' // // TAPE diff --git a/code/datums/greyscale/json_configs/vape_open_high.json b/code/datums/greyscale/json_configs/vapeopen_high.json similarity index 94% rename from code/datums/greyscale/json_configs/vape_open_high.json rename to code/datums/greyscale/json_configs/vapeopen_high.json index 65a0400d00334..1ef82459ca8c6 100644 --- a/code/datums/greyscale/json_configs/vape_open_high.json +++ b/code/datums/greyscale/json_configs/vapeopen_high.json @@ -1,5 +1,5 @@ { - "vape_open_high": [ + "vapeopen_high": [ { "type": "icon_state", "icon_state": "vapeOutlet", diff --git a/code/datums/greyscale/json_configs/vape_open_low.json b/code/datums/greyscale/json_configs/vapeopen_low.json similarity index 94% rename from code/datums/greyscale/json_configs/vape_open_low.json rename to code/datums/greyscale/json_configs/vapeopen_low.json index 3ad5971bc3783..eaef871bf3d1f 100644 --- a/code/datums/greyscale/json_configs/vape_open_low.json +++ b/code/datums/greyscale/json_configs/vapeopen_low.json @@ -1,5 +1,5 @@ { - "vape_open_low": [ + "vapeopen_low": [ { "type": "icon_state", "icon_state": "vapeOutlet", diff --git a/code/datums/greyscale/json_configs/vape_open_med.json b/code/datums/greyscale/json_configs/vapeopen_med.json similarity index 94% rename from code/datums/greyscale/json_configs/vape_open_med.json rename to code/datums/greyscale/json_configs/vapeopen_med.json index f26302edd77b3..508015825cef6 100644 --- a/code/datums/greyscale/json_configs/vape_open_med.json +++ b/code/datums/greyscale/json_configs/vapeopen_med.json @@ -1,5 +1,5 @@ { - "vape_open_med": [ + "vapeopen_med": [ { "type": "icon_state", "icon_state": "vapeOutlet", diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index 4d4c44138e0c2..190c4a38a299c 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -77,7 +77,7 @@ return TRUE /datum/id_trim/job/assistant - assignment = "Assistant" + assignment = JOB_ASSISTANT trim_state = "trim_assistant" intern_alt_name = "Intern" sechud_icon_state = SECHUD_ASSISTANT @@ -104,7 +104,7 @@ ACCESS_MAINT_TUNNELS) /datum/id_trim/job/atmospheric_technician - assignment = "Atmospheric Technician" + assignment = JOB_ATMOSPHERIC_TECHNICIAN trim_state = "trim_atmospherictechnician" department_color = COLOR_ENGINEERING_ORANGE subdepartment_color = COLOR_ENGINEERING_ORANGE @@ -133,7 +133,7 @@ job = /datum/job/atmospheric_technician /datum/id_trim/job/bartender - assignment = "Bartender" + assignment = JOB_BARTENDER trim_state = "trim_bartender" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -157,7 +157,7 @@ job = /datum/job/bartender /datum/id_trim/job/bitrunner - assignment = "Bitrunner" + assignment = JOB_BITRUNNER trim_state = "trim_bitrunner" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_CARGO_BROWN @@ -181,7 +181,7 @@ job = /datum/job/bitrunner /datum/id_trim/job/botanist - assignment = "Botanist" + assignment = JOB_BOTANIST trim_state = "trim_botanist" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -204,7 +204,7 @@ job = /datum/job/botanist /datum/id_trim/job/bridge_assistant - assignment = "Bridge Assistant" + assignment = JOB_BRIDGE_ASSISTANT trim_state = "trim_assistant" department_color = COLOR_COMMAND_BLUE subdepartment_color = COLOR_COMMAND_BLUE @@ -226,7 +226,7 @@ job = /datum/job/bridge_assistant /datum/id_trim/job/captain - assignment = "Captain" + assignment = JOB_CAPTAIN intern_alt_name = "Captain-in-Training" trim_state = "trim_captain" department_color = COLOR_COMMAND_BLUE @@ -249,7 +249,7 @@ return ..() /datum/id_trim/job/cargo_technician - assignment = "Cargo Technician" + assignment = JOB_CARGO_TECHNICIAN trim_state = "trim_cargotechnician" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_CARGO_BROWN @@ -274,7 +274,7 @@ job = /datum/job/cargo_technician /datum/id_trim/job/chaplain - assignment = "Chaplain" + assignment = JOB_CHAPLAIN trim_state = "trim_chaplain" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -296,7 +296,7 @@ job = /datum/job/chaplain /datum/id_trim/job/chemist - assignment = "Chemist" + assignment = JOB_CHEMIST trim_state = "trim_chemist" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -321,7 +321,7 @@ job = /datum/job/chemist /datum/id_trim/job/chief_engineer - assignment = "Chief Engineer" + assignment = JOB_CHIEF_ENGINEER intern_alt_name = "Chief Engineer-in-Training" trim_state = "trim_stationengineer" department_color = COLOR_COMMAND_BLUE @@ -362,7 +362,7 @@ job = /datum/job/chief_engineer /datum/id_trim/job/chief_medical_officer - assignment = "Chief Medical Officer" + assignment = JOB_CHIEF_MEDICAL_OFFICER intern_alt_name = "Chief Medical Officer-in-Training" trim_state = "trim_medicaldoctor" department_color = COLOR_COMMAND_BLUE @@ -401,7 +401,7 @@ job = /datum/job/chief_medical_officer /datum/id_trim/job/clown - assignment = "Clown" + assignment = JOB_CLOWN trim_state = "trim_clown" department_color = COLOR_MAGENTA subdepartment_color = COLOR_MAGENTA @@ -420,7 +420,7 @@ job = /datum/job/clown /datum/id_trim/job/cook - assignment = "Cook" + assignment = JOB_COOK trim_state = "trim_cook" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -443,11 +443,11 @@ job = /datum/job/cook /datum/id_trim/job/cook/chef - assignment = "Chef" + assignment = JOB_CHEF sechud_icon_state = SECHUD_CHEF /datum/id_trim/job/coroner - assignment = "Coroner" + assignment = JOB_CORONER trim_state = "trim_coroner" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_SERVICE_LIME @@ -474,7 +474,7 @@ job = /datum/job/coroner /datum/id_trim/job/curator - assignment = "Curator" + assignment = JOB_CURATOR trim_state = "trim_curator" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -495,7 +495,7 @@ job = /datum/job/curator /datum/id_trim/job/detective - assignment = "Detective" + assignment = JOB_DETECTIVE trim_state = "trim_detective" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED @@ -533,7 +533,7 @@ access |= list(ACCESS_MAINT_TUNNELS) /datum/id_trim/job/geneticist - assignment = "Geneticist" + assignment = JOB_GENETICIST trim_state = "trim_geneticist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -561,7 +561,7 @@ job = /datum/job/geneticist /datum/id_trim/job/head_of_personnel - assignment = "Head of Personnel" + assignment = JOB_HEAD_OF_PERSONNEL intern_alt_name = "Head of Personnel-in-Training" trim_state = "trim_headofpersonnel" department_color = COLOR_COMMAND_BLUE @@ -614,7 +614,7 @@ job = /datum/job/head_of_personnel /datum/id_trim/job/head_of_security - assignment = "Head of Security" + assignment = JOB_HEAD_OF_SECURITY intern_alt_name = "Head of Security-in-Training" trim_state = "trim_securityofficer" department_color = COLOR_COMMAND_BLUE @@ -673,7 +673,7 @@ access |= list(ACCESS_MAINT_TUNNELS) /datum/id_trim/job/janitor - assignment = "Janitor" + assignment = JOB_JANITOR trim_state = "trim_janitor" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -693,7 +693,7 @@ job = /datum/job/janitor /datum/id_trim/job/lawyer - assignment = "Lawyer" + assignment = JOB_LAWYER trim_state = "trim_lawyer" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SECURITY_RED @@ -714,7 +714,7 @@ job = /datum/job/lawyer /datum/id_trim/job/medical_doctor - assignment = "Medical Doctor" + assignment = JOB_MEDICAL_DOCTOR trim_state = "trim_medicaldoctor" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -739,7 +739,7 @@ job = /datum/job/doctor /datum/id_trim/job/mime - assignment = "Mime" + assignment = JOB_MIME trim_state = "trim_mime" department_color = COLOR_SILVER subdepartment_color = COLOR_WHITE @@ -758,7 +758,7 @@ job = /datum/job/mime /datum/id_trim/job/paramedic - assignment = "Paramedic" + assignment = JOB_PARAMEDIC trim_state = "trim_paramedic" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -790,7 +790,7 @@ job = /datum/job/paramedic /datum/id_trim/job/prisoner - assignment = "Prisoner" + assignment = JOB_PRISONER trim_state = "trim_warden" department_color = COLOR_PRISONER_BLACK subdepartment_color = COLOR_PRISONER_BLACK @@ -833,7 +833,7 @@ template_access = null /datum/id_trim/job/psychologist - assignment = "Psychologist" + assignment = JOB_PSYCHOLOGIST trim_state = "trim_psychologist" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_MEDICAL_BLUE @@ -857,7 +857,7 @@ job = /datum/job/psychologist /datum/id_trim/job/quartermaster - assignment = "Quartermaster" + assignment = JOB_QUARTERMASTER intern_alt_name = "Quartermaster-in-Training" trim_state = "trim_cargotechnician" department_color = COLOR_COMMAND_BLUE @@ -895,7 +895,7 @@ job = /datum/job/quartermaster /datum/id_trim/job/research_director - assignment = "Research Director" + assignment = JOB_RESEARCH_DIRECTOR intern_alt_name = "Research Director-in-Training" trim_state = "trim_scientist" department_color = COLOR_COMMAND_BLUE @@ -943,7 +943,7 @@ job = /datum/job/research_director /datum/id_trim/job/roboticist - assignment = "Roboticist" + assignment = JOB_ROBOTICIST trim_state = "trim_roboticist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -973,7 +973,7 @@ job = /datum/job/roboticist /datum/id_trim/job/scientist - assignment = "Scientist" + assignment = JOB_SCIENTIST trim_state = "trim_scientist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -1001,7 +1001,7 @@ /// Sec officers have departmental variants. They each have their own trims with bonus departmental accesses. /datum/id_trim/job/security_officer - assignment = "Security Officer" + assignment = JOB_SECURITY_OFFICER trim_state = "trim_securityofficer" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED @@ -1064,7 +1064,7 @@ access |= elevated_access /datum/id_trim/job/security_officer/supply - assignment = "Security Officer (Cargo)" + assignment = JOB_SECURITY_OFFICER_SUPPLY subdepartment_color = COLOR_CARGO_BROWN department_access = list( ACCESS_BIT_DEN, @@ -1078,7 +1078,7 @@ ) /datum/id_trim/job/security_officer/engineering - assignment = "Security Officer (Engineering)" + assignment = JOB_SECURITY_OFFICER_ENGINEERING subdepartment_color = COLOR_ENGINEERING_ORANGE department_access = list( ACCESS_ATMOSPHERICS, @@ -1092,7 +1092,7 @@ ) /datum/id_trim/job/security_officer/medical - assignment = "Security Officer (Medical)" + assignment = JOB_SECURITY_OFFICER_MEDICAL subdepartment_color = COLOR_MEDICAL_BLUE department_access = list( ACCESS_MEDICAL, @@ -1106,7 +1106,7 @@ ) /datum/id_trim/job/security_officer/science - assignment = "Security Officer (Science)" + assignment = JOB_SECURITY_OFFICER_SCIENCE subdepartment_color = COLOR_SCIENCE_PINK department_access = list( ACCESS_RESEARCH, @@ -1122,7 +1122,7 @@ ) /datum/id_trim/job/shaft_miner - assignment = "Shaft Miner" + assignment = JOB_SHAFT_MINER trim_state = "trim_shaftminer" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_SCIENCE_PINK @@ -1159,7 +1159,7 @@ template_access = null /datum/id_trim/job/station_engineer - assignment = "Station Engineer" + assignment = JOB_STATION_ENGINEER trim_state = "trim_stationengineer" department_color = COLOR_ENGINEERING_ORANGE subdepartment_color = COLOR_ENGINEERING_ORANGE @@ -1188,7 +1188,7 @@ job = /datum/job/station_engineer /datum/id_trim/job/veteran_advisor - assignment = "Veteran Security Advisor" + assignment = JOB_VETERAN_ADVISOR trim_state = "trim_veteranadvisor" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_COMMAND_BLUE @@ -1219,7 +1219,7 @@ /datum/id_trim/job/warden - assignment = "Warden" + assignment = JOB_WARDEN trim_state = "trim_warden" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm index 7b18ff7225f03..3faefc0cc78b4 100644 --- a/code/datums/lazy_template.dm +++ b/code/datums/lazy_template.dm @@ -130,3 +130,7 @@ /datum/lazy_template/heretic_sacrifice_room key = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE map_name = "heretic_sacrifice" + +/datum/lazy_template/voidwalker_void + key = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID + map_name = "voidwalker_void" diff --git a/code/datums/looping_sounds/breathing.dm b/code/datums/looping_sounds/breathing.dm new file mode 100644 index 0000000000000..82b33ee8311b1 --- /dev/null +++ b/code/datums/looping_sounds/breathing.dm @@ -0,0 +1,8 @@ +/datum/looping_sound/breathing + mid_sounds = 'sound/voice/breathing.ogg' + //Calculated this by using the average breathing time of an adult (12 to 20 per minute, which on average is 16 per minute) + mid_length = 3.75 SECONDS + mid_length_vary = 0.2 SECONDS + //spess station- + volume = 13 + pressure_affected = FALSE diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 4e6400163a34b..5c24aaf45b7b2 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -98,6 +98,11 @@ if(honor_check(defender)) var/strength_bonus = HAS_TRAIT(attacker, TRAIT_STRENGTH) ? 2 : 0 //Investing into genetic strength improvements makes you a better boxer + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = attacker.get_organ_slot(ORGAN_SLOT_SPINE) //Getting a cyberspine also pushes you further than just mere meat + if(istype(potential_spine)) + strength_bonus *= potential_spine.strength_bonus + damage += round(athletics_skill * check_streak(attacker, defender) + strength_bonus) grant_experience = TRUE diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 8116084127ecf..cd8065a72a3a8 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -9,7 +9,7 @@ help_verb = /mob/living/proc/sleeping_carp_help display_combos = TRUE /// List of traits applied to users of this martial art. - var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) + var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) /datum/martial_art/the_sleeping_carp/on_teach(mob/living/new_holder) . = ..() diff --git a/code/datums/mood.dm b/code/datums/mood.dm index 2b2a83fc6964d..8193f9c1c15c9 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -48,10 +48,15 @@ RegisterSignal(mob_to_make_moody, COMSIG_MOB_HUD_CREATED, PROC_REF(modify_hud)) RegisterSignal(mob_to_make_moody, COMSIG_ENTER_AREA, PROC_REF(check_area_mood)) + RegisterSignal(mob_to_make_moody, COMSIG_EXIT_AREA, PROC_REF(exit_area)) RegisterSignal(mob_to_make_moody, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) RegisterSignal(mob_to_make_moody, COMSIG_MOB_STATCHANGE, PROC_REF(handle_mob_death)) RegisterSignal(mob_to_make_moody, COMSIG_QDELETING, PROC_REF(clear_parent_ref)) + var/area/our_area = get_area(mob_to_make_moody) + if(our_area) + check_area_mood(mob_to_make_moody, our_area) + mob_to_make_moody.become_area_sensitive(MOOD_DATUM_TRAIT) if(mob_to_make_moody.hud_used) modify_hud() @@ -63,7 +68,10 @@ unmodify_hud() mob_parent.lose_area_sensitivity(MOOD_DATUM_TRAIT) - UnregisterSignal(mob_parent, list(COMSIG_MOB_HUD_CREATED, COMSIG_ENTER_AREA, COMSIG_LIVING_REVIVE, COMSIG_MOB_STATCHANGE, COMSIG_QDELETING)) + UnregisterSignal(mob_parent, list(COMSIG_MOB_HUD_CREATED, COMSIG_ENTER_AREA, COMSIG_EXIT_AREA, COMSIG_LIVING_REVIVE, COMSIG_MOB_STATCHANGE, COMSIG_QDELETING)) + var/area/our_area = get_area(mob_parent) + if(our_area) + UnregisterSignal(our_area, COMSIG_AREA_BEAUTY_UPDATED) mob_parent = null @@ -383,6 +391,8 @@ /datum/mood/proc/check_area_mood(datum/source, area/new_area) SIGNAL_HANDLER + RegisterSignal(new_area, COMSIG_AREA_BEAUTY_UPDATED, PROC_REF(update_beauty)) + update_beauty(new_area) if (new_area.mood_bonus && (!new_area.mood_trait || HAS_TRAIT(source, new_area.mood_trait))) add_mood_event("area", /datum/mood_event/area, new_area.mood_bonus, new_area.mood_message) @@ -391,10 +401,32 @@ /// Updates the mob's given beauty moodie, based on the area /datum/mood/proc/update_beauty(area/area_to_beautify) + SIGNAL_HANDLER if (area_to_beautify.outdoors) // if we're outside, we don't care clear_mood_event(MOOD_CATEGORY_AREA_BEAUTY) return + if(HAS_TRAIT(mob_parent, TRAIT_MORBID)) + if(HAS_TRAIT(mob_parent, TRAIT_SNOB)) + switch(area_to_beautify.beauty) + if(BEAUTY_LEVEL_DECENT to BEAUTY_LEVEL_GOOD) + add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/ehroom) + return + if(BEAUTY_LEVEL_GOOD to BEAUTY_LEVEL_GREAT) + add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/badroom) + return + if(BEAUTY_LEVEL_GREAT to INFINITY) + add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/horridroom) + return + switch(area_to_beautify.beauty) + if(-INFINITY to BEAUTY_LEVEL_HORRID) + add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/greatroom) + if(BEAUTY_LEVEL_HORRID to BEAUTY_LEVEL_BAD) + add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/goodroom) + if(BEAUTY_LEVEL_BAD to BEAUTY_LEVEL_DECENT) + clear_mood_event(MOOD_CATEGORY_AREA_BEAUTY) + return + if(HAS_TRAIT(mob_parent, TRAIT_SNOB)) switch(area_to_beautify.beauty) if(-INFINITY to BEAUTY_LEVEL_HORRID) @@ -413,6 +445,10 @@ if(BEAUTY_LEVEL_GREAT to INFINITY) add_mood_event(MOOD_CATEGORY_AREA_BEAUTY, /datum/mood_event/greatroom) +/datum/mood/proc/exit_area(datum/source, area/old_area) + SIGNAL_HANDLER + UnregisterSignal(old_area, COMSIG_AREA_BEAUTY_UPDATED) + /// Called when parent is ahealed. /datum/mood/proc/on_revive(datum/source, full_heal) SIGNAL_HANDLER diff --git a/code/datums/mood_events/beauty_events.dm b/code/datums/mood_events/beauty_events.dm index 31e199c47e181..ec89a9b41b933 100644 --- a/code/datums/mood_events/beauty_events.dm +++ b/code/datums/mood_events/beauty_events.dm @@ -6,6 +6,10 @@ description = "This room looks really bad." mood_change = -3 +/datum/mood_event/ehroom + description = "This room looks kinda bad." + mood_change = -1 + /datum/mood_event/decentroom description = "This room looks alright." mood_change = 1 diff --git a/code/datums/mood_events/morbid_events.dm b/code/datums/mood_events/morbid_events.dm index b21548c81228d..27c5424ec5cf1 100644 --- a/code/datums/mood_events/morbid_events.dm +++ b/code/datums/mood_events/morbid_events.dm @@ -37,6 +37,11 @@ Intended to push a creepy, mad scientist/doctor vibe, or someone who is downrigh mood_change = 3 timeout = 6 MINUTES +/datum/mood_event/morbid_aquarium_good + description = "Eh eh, all the fish are sleeping..." + mood_change = 3 + timeout = 90 SECONDS + // Negative Events - We helped someone stay alive. /datum/mood_event/morbid_tend_wounds @@ -49,3 +54,7 @@ Intended to push a creepy, mad scientist/doctor vibe, or someone who is downrigh mood_change = -6 timeout = 2 MINUTES +/datum/mood_event/morbid_aquarium_bad + description = "Watching fish in an aquarium is lousy." + mood_change = -3 + timeout = 90 SECONDS diff --git a/code/datums/mutable_appearance.dm b/code/datums/mutable_appearance.dm index c066b96cea419..db5acbca388b6 100644 --- a/code/datums/mutable_appearance.dm +++ b/code/datums/mutable_appearance.dm @@ -45,4 +45,7 @@ else if(!isnull(offset_spokesman) && !isatom(offset_spokesman)) stack_trace("Why did you pass in offset_spokesman as [offset_spokesman]? We need an atom to properly offset planes") + if(PERFORM_ALL_TESTS(focus_only/topdown_filtering)) + check_topdown_validity(appearance) + return appearance diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index baa7c2c1215b5..5b7b5d429015e 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -52,3 +52,7 @@ /datum/generecipe/heckacious required = "/datum/mutation/human/wacky; /datum/mutation/human/stoner" result = /datum/mutation/human/heckacious + +/datum/generecipe/ork + required = "/datum/mutation/human/hulk; /datum/mutation/human/clumsy" + result = /datum/mutation/human/hulk/ork diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index ba3c20a0cfe74..22988f5ebdd19 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -132,6 +132,7 @@ owner = acquirer dna = acquirer.dna dna.mutations += src + SEND_SIGNAL(src, COMSIG_MUTATION_GAINED, acquirer) if(text_gain_indication) to_chat(owner, text_gain_indication) if(visual_indicators.len) @@ -158,6 +159,7 @@ if(!istype(owner) || !(owner.dna.mutations.Remove(src))) return TRUE . = FALSE + SEND_SIGNAL(src, COMSIG_MUTATION_LOST, owner) if(text_lose_indication && owner.stat != DEAD) to_chat(owner, text_lose_indication) if(visual_indicators.len) diff --git a/code/datums/mutations/adaptation.dm b/code/datums/mutations/adaptation.dm index 7e332984cf9b9..3d0fcf0f8e962 100644 --- a/code/datums/mutations/adaptation.dm +++ b/code/datums/mutations/adaptation.dm @@ -13,7 +13,7 @@ /datum/mutation/human/adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) ..() - conflicts = typesof(src) + conflicts = typesof(/datum/mutation/human/adaptation) if(!(type in visual_indicators)) visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', adapt_icon, -MUTATIONS_LAYER)) diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index f2db642261633..72dccc755013c 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -583,9 +583,9 @@ var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN) if(brain) - brain.Remove(owner, special = TRUE) + brain.Remove(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) brain.zone = BODY_ZONE_CHEST - brain.Insert(owner, special = TRUE) + brain.Insert(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) var/obj/item/bodypart/head/head = owner.get_bodypart(BODY_ZONE_HEAD) if(head) @@ -608,9 +608,9 @@ return TRUE var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN) if(brain) - brain.Remove(owner, special = TRUE) + brain.Remove(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) brain.zone = initial(brain.zone) - brain.Insert(owner, special = TRUE) + brain.Insert(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) owner.dna.species.regenerate_organs(owner, replace_current = FALSE, excluded_zones = list(BODY_ZONE_CHEST)) //replace_current needs to be FALSE to prevent weird adding and removing mutation healing owner.apply_damage(damage = 50, damagetype = BRUTE, def_zone = BODY_ZONE_HEAD) //and this to DISCOURAGE organ farming, or at least not make it free. diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 7a09687ea40bc..dbe91091ab89c 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -9,8 +9,10 @@ species_allowed = list(SPECIES_HUMAN) //no skeleton/lizard hulk health_req = 25 instability = POSITIVE_INSTABILITY_MAJOR + conflicts = list(/datum/mutation/human/hulk/ork) var/scream_delay = 50 var/last_scream = 0 + var/bodypart_color = COLOR_DARK_LIME /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_CHUNKYFINGERS, @@ -20,16 +22,21 @@ TRAIT_STUNIMMUNE, ) +/datum/mutation/human/hulk/New(class, timer, datum/mutation/human/copymut) + . = ..() + add_speechmod() + +/datum/mutation/human/hulk/proc/add_speechmod() + AddComponent(/datum/component/speechmod, replacements = list("." = "!"), end_string = "!!", uppercase = TRUE) /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = COLOR_DARK_LIME + part.variable_color = bodypart_color owner.update_body_parts() owner.add_mood_event("hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) RegisterSignal(owner, COMSIG_MOB_CLICKON, PROC_REF(check_swing)) /datum/mutation/human/hulk/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, modifiers) @@ -91,21 +98,8 @@ owner.update_body_parts() owner.clear_mood_event("hulk") UnregisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK) - UnregisterSignal(owner, COMSIG_MOB_SAY) UnregisterSignal(owner, COMSIG_MOB_CLICKON) -/datum/mutation/human/hulk/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = "[replacetext(message, ".", "!")]!!" - speech_args[SPEECH_MESSAGE] = message - - // the reason we don't just uppertext(message) in this proc is so that our hulk speech - // can uppercase all other speech moidifiers after they are done (by returning COMPONENT_UPPERCASE_SPEECH) - return COMPONENT_UPPERCASE_SPEECH - /// How many steps it takes to throw the mob #define HULK_TAILTHROW_STEPS 28 @@ -293,4 +287,14 @@ /datum/mutation/human/hulk/superhuman/on_life(seconds_per_tick, times_fired) return +/datum/mutation/human/hulk/ork + name = "Ork" + desc = "A mutation caused by a mixup of hulk genes which severely impacts speech centers in owners' brains." + text_gain_indication = span_notice("You feel significantly dumber!") + bodypart_color = COLOR_ASSISTANT_OLIVE + conflicts = list(/datum/mutation/human/hulk) + +/datum/mutation/human/hulk/ork/add_speechmod() + AddComponent(/datum/component/speechmod, replacements = strings("ork_replacement.json", "ork"), end_string = "!!", uppercase = TRUE) + #undef HULK_TAILTHROW_STEPS diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 98560bb252679..d6b6f714e5964 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -177,30 +177,11 @@ quality = MINOR_NEGATIVE text_gain_indication = span_notice("You feel Swedish, however that works.") text_lose_indication = span_notice("The feeling of Swedishness passes.") + var/static/list/language_mutilation = list("w" = "v", "j" = "y", "bo" = "bjo", "a" = list("å","ä","æ","a"), "o" = list("ö","ø","o")) -/datum/mutation/human/swedish/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/swedish/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = replacetext(message,"w","v") - message = replacetext(message,"j","y") - message = replacetext(message,"a",pick("å","ä","æ","a")) - message = replacetext(message,"bo","bjo") - message = replacetext(message,"o",pick("ö","ø","o")) - if(prob(30)) - message += " Bork[pick("",", bork",", bork, bork")]!" - speech_args[SPEECH_MESSAGE] = trim(message) +/datum/mutation/human/swedish/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = language_mutilation, end_string = list("",", bork",", bork, bork"), end_string_chance = 30) /datum/mutation/human/chav name = "Chav" @@ -210,35 +191,9 @@ text_gain_indication = span_notice("Ye feel like a reet prat like, innit?") text_lose_indication = span_notice("You no longer feel like being rude and sassy.") -/datum/mutation/human/chav/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/chav/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" - var/list/chav_words = strings("chav_replacement.json", "chav") - - for(var/key in chav_words) - var/value = chav_words[key] - if(islist(value)) - value = pick(value) - - message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") - message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") - message = replacetextEx(message, " [key]", " [value]") - if(prob(30)) - message += ", mate" - speech_args[SPEECH_MESSAGE] = trim(message) +/datum/mutation/human/chav/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("chav_replacement.json", "chav"), end_string = ", mate", end_string_chance = 30) /datum/mutation/human/elvis name = "Elvis" @@ -248,6 +203,10 @@ text_gain_indication = span_notice("You feel pretty good, honeydoll.") text_lose_indication = span_notice("You feel a little less conversation would be great.") +/datum/mutation/human/chav/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("elvis_replacement.json", "elvis")) + /datum/mutation/human/elvis/on_life(seconds_per_tick, times_fired) switch(pick(1,2)) if(1) @@ -259,34 +218,6 @@ if(SPT_PROB(7.5, seconds_per_tick)) owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") -/datum/mutation/human/elvis/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/elvis/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = " [message] " - message = replacetext(message," i'm not "," I ain't ") - message = replacetext(message," girl ",pick(" honey "," baby "," baby doll ")) - message = replacetext(message," man ",pick(" son "," buddy "," brother"," pal "," friendo ")) - message = replacetext(message," out of "," outta ") - message = replacetext(message," thank you "," thank you, thank you very much ") - message = replacetext(message," thanks "," thank you, thank you very much ") - message = replacetext(message," what are you "," whatcha ") - message = replacetext(message," yes ",pick(" sure", "yea ")) - message = replacetext(message," muh valids "," my kicks ") - speech_args[SPEECH_MESSAGE] = trim(message) - - /datum/mutation/human/stoner name = "Stoner" desc = "A common mutation that severely decreases intelligence." diff --git a/code/datums/mutations/tongue_spike.dm b/code/datums/mutations/tongue_spike.dm index 9e25ad6f4f296..d5db738213fec 100644 --- a/code/datums/mutations/tongue_spike.dm +++ b/code/datums/mutations/tongue_spike.dm @@ -48,13 +48,7 @@ force = 2 throwforce = 25 throw_speed = 4 - embedding = list( - "impact_pain_mult" = 0, - "embedded_pain_multiplier" = 15, - "embed_chance" = 100, - "embedded_fall_chance" = 0, - "embedded_ignore_throwspeed_threshold" = TRUE, - ) + embed_type = /datum/embed_data/tongue_spike w_class = WEIGHT_CLASS_SMALL sharpness = SHARP_POINTY custom_materials = list(/datum/material/biomass = SMALL_MATERIAL_AMOUNT * 5) @@ -63,6 +57,13 @@ /// if we missed our target var/missed = TRUE +/datum/embed_data/tongue_spike + impact_pain_mult = 0 + pain_mult = 15 + embed_chance = 100 + fall_chance = 0 + ignore_throwspeed_threshold = TRUE + /obj/item/hardened_spike/Initialize(mapload, mob/living/carbon/source) . = ..() src.fired_by_ref = WEAKREF(source) @@ -110,17 +111,14 @@ desc = "Hardened biomass, shaped into... something." icon_state = "tonguespikechem" throwforce = 2 - embedding = list( - "impact_pain_mult" = 0, - "embedded_pain_multiplier" = 0, - "embed_chance" = 100, - "embedded_fall_chance" = 0, - "embedded_pain_chance" = 0, - "embedded_ignore_throwspeed_threshold" = TRUE, //never hurts once it's in you - ) + embed_type = /datum/embed_data/tongue_spike/chem /// Whether the tongue's already embedded in a target once before var/embedded_once_alread = FALSE +/datum/embed_data/tongue_spike/chem + pain_mult = 0 + pain_chance = 0 + /obj/item/hardened_spike/chem/embedded(mob/living/carbon/human/embedded_mob) . = ..() if(embedded_once_alread) diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm index 4bc4ec83bb0a0..98d3d18807fea 100644 --- a/code/datums/mutations/touch.dm +++ b/code/datums/mutations/touch.dm @@ -107,10 +107,10 @@ if(!istype(to_modify)) // null or invalid return - // More healing if powered up. - to_modify.heal_multiplier = GET_MUTATION_POWER(src) - // Less pain if synchronized. - to_modify.pain_multiplier = GET_MUTATION_SYNCHRONIZER(src) + // Transfers more damage if strengthened. (1.5 with power chromosome) + to_modify.power_coefficient = GET_MUTATION_POWER(src) + // Halves transferred damage if synchronized. (0.5 with synchronizer chromosome) + to_modify.synchronizer_coefficient = GET_MUTATION_SYNCHRONIZER(src) /datum/action/cooldown/spell/touch/lay_on_hands name = "Mending Touch" @@ -127,36 +127,55 @@ hand_path = /obj/item/melee/touch_attack/lay_on_hands draw_message = span_notice("You ready your hand to transfer injuries to yourself.") drop_message = span_notice("You lower your hand.") - /// Multiplies the amount healed, without increasing the received damage. + /// Multiplies the amount healed. var/heal_multiplier = 1 - /// Multiplies the incoming pain from healing. + /// Multiplies the incoming pain from healing. (Halved with synchronizer chromosome) var/pain_multiplier = 1 /// Icon used for beaming effect var/beam_icon = "blood" + /// The mutation's power coefficient. + var/power_coefficient = 1 + /// The mutation's synchronizer coefficient. + var/synchronizer_coefficient = 1 + +/datum/action/cooldown/spell/touch/lay_on_hands/create_hand(mob/living/carbon/cast_on) + . = ..() + if(!.) + return . + var/obj/item/bodypart/transfer_limb = cast_on.get_active_hand() + if(IS_ROBOTIC_LIMB(transfer_limb)) + to_chat(cast_on, span_notice("You fail to channel your mending powers through your inorganic hand.")) + return FALSE + + return TRUE /datum/action/cooldown/spell/touch/lay_on_hands/cast_on_hand_hit(obj/item/melee/touch_attack/hand, atom/victim, mob/living/carbon/mendicant) var/mob/living/hurtguy = victim + heal_multiplier = initial(heal_multiplier) * power_coefficient + pain_multiplier = initial(pain_multiplier) * synchronizer_coefficient + + // Message to show on a succesful heal if the healer has a special pacifism interaction with the mutation. + var/peaceful_message = null + // Heal more, hurt a bit more. // If you crunch the numbers it sounds crazy good, // but I think that's a fair reward for combining the efforts of Genetics, Medbay, and Mining to reach a hidden mechanic. if(HAS_TRAIT_FROM(mendicant, TRAIT_HIPPOCRATIC_OATH, HIPPOCRATIC_OATH_TRAIT)) - heal_multiplier = 2 - pain_multiplier = 0.5 - to_chat(mendicant, span_green("You can feel the magic of the Rod of Aesculapius aiding your efforts!")) + heal_multiplier *= 2 + pain_multiplier *= 0.5 + peaceful_message = span_boldnotice("You can feel the magic of the Rod of Aesculapius aiding your efforts!") beam_icon = "sendbeam" var/obj/item/rod_of_asclepius/rod = locate() in mendicant.contents if(rod) rod.add_filter("cool_glow", 2, list("type" = "outline", "color" = COLOR_VERY_PALE_LIME_GREEN, "size" = 1.25)) addtimer(CALLBACK(rod, TYPE_PROC_REF(/datum, remove_filter), "cool_glow"), 6 SECONDS) - - // If a normal pacifist, heal and hurt more! + // If a normal pacifist, transfer more. else if(HAS_TRAIT(mendicant, TRAIT_PACIFISM)) - heal_multiplier = 1.75 - pain_multiplier = 1.75 - to_chat(mendicant, span_green("Your peaceful nature helps you guide all the pain to yourself.")) + heal_multiplier *= 1.75 + peaceful_message = span_boldnotice("Your peaceful nature helps you guide all the pain to yourself.") var/success if(iscarbon(hurtguy)) @@ -164,6 +183,13 @@ else success = do_simple_heal(mendicant, hurtguy, heal_multiplier, pain_multiplier) + // No healies in the end, cancel + if(!success) + return FALSE + + if(peaceful_message) + to_chat(mendicant, peaceful_message) + // Both types can be ignited (technically at least), so we can just do this here. if(hurtguy.fire_stacks > 0) mendicant.set_fire_stacks(hurtguy.fire_stacks * pain_multiplier, remove_wet_stacks = TRUE) @@ -171,10 +197,6 @@ mendicant.ignite_mob() hurtguy.extinguish_mob() - // No healies in the end, cancel - if(!success) - return FALSE - mendicant.Beam(hurtguy, icon_state = beam_icon, time = 0.5 SECONDS) beam_icon = initial(beam_icon) @@ -182,7 +204,7 @@ mendicant.update_damage_overlays() hurtguy.visible_message(span_notice("[mendicant] lays hands on [hurtguy]!")) - to_chat(target, span_boldnotice("[mendicant] lays hands on you, healing you!")) + to_chat(hurtguy, span_boldnotice("[mendicant] lays hands on you, healing you!")) new /obj/effect/temp_visual/heal(get_turf(hurtguy), COLOR_VERY_PALE_LIME_GREEN) return success @@ -202,6 +224,7 @@ mendicant_organic_limbs += possible_limb // None? Gtfo if(!length(mendicant_organic_limbs)) + mendicant.balloon_alert(mendicant, "no organic limbs!") return . // Try to use our active hand, otherwise pick at random @@ -218,7 +241,8 @@ hurtguy.adjustFireLoss(-burn_to_heal) . = TRUE - return . + if(!.) + hurtguy.balloon_alert(mendicant, "unhurt!") /datum/action/cooldown/spell/touch/lay_on_hands/proc/do_complicated_heal(mob/living/carbon/mendicant, mob/living/carbon/hurtguy, heal_multiplier, pain_multiplier) @@ -232,8 +256,12 @@ mendicant_organic_limbs += possible_limb // If we have no organic available limbs just give up. - if(!length(mendicant_organic_limbs) || !length(hurt_limbs)) - return + if(!length(mendicant_organic_limbs)) + mendicant.balloon_alert(mendicant, "no organic limbs!") + return . + if(!length(hurt_limbs)) + hurtguy.balloon_alert(mendicant, "no damaged organic limbs!") + return . // Counter to make sure we don't take too much from separate limbs var/total_damage_healed = 0 @@ -244,28 +272,71 @@ if(!(mendicant_transfer_limb in mendicant_organic_limbs)) mendicant_transfer_limb = pick(mendicant_organic_limbs) - // Transfer at most 35 damage by default. + // Transfer at most 35 damage, by default. var/brute_damage = min(affected_limb.brute_dam, 35 * heal_multiplier) // no double dipping var/burn_damage = min(affected_limb.burn_dam, (35 * heal_multiplier) - brute_damage) if((brute_damage || burn_damage) && total_damage_healed < (35 * heal_multiplier)) - total_damage_healed = brute_damage + burn_damage + total_damage_healed += brute_damage + burn_damage . = TRUE + var/brute_taken = brute_damage * pain_multiplier + var/burn_taken = burn_damage * pain_multiplier // Heal! - affected_limb.heal_damage(brute_damage * heal_multiplier, burn_damage * heal_multiplier, required_bodytype = BODYTYPE_ORGANIC) + affected_limb.heal_damage(brute_damage, burn_damage, required_bodytype = BODYTYPE_ORGANIC) // Hurt! - mendicant_transfer_limb.receive_damage(brute_damage * pain_multiplier, burn_damage * pain_multiplier, forced = TRUE, wound_bonus = CANT_WOUND) + mendicant_transfer_limb.receive_damage(brute_taken, burn_taken, forced = TRUE, wound_bonus = CANT_WOUND) // Force light wounds onto you. for(var/datum/wound/iter_wound as anything in affected_limb.wounds) - if(iter_wound.severity > WOUND_SEVERITY_MODERATE) - continue + switch(iter_wound.severity) + if(WOUND_SEVERITY_SEVERE) // half and half + if(prob(50 * heal_multiplier)) + continue + if(WOUND_SEVERITY_CRITICAL) + if(heal_multiplier < 1.5) // need buffs to transfer crit wounds + continue . = TRUE iter_wound.remove_wound() iter_wound.apply_wound(mendicant_transfer_limb) + if(HAS_TRAIT(mendicant, TRAIT_NOBLOOD)) + return . - return . + // 10% base + var/max_blood_transfer = (BLOOD_VOLUME_NORMAL * 0.10) * heal_multiplier + // Too little blood + if(hurtguy.blood_volume < BLOOD_VOLUME_NORMAL) + var/max_blood_to_hurtguy = min(mendicant.blood_volume, BLOOD_VOLUME_NORMAL - hurtguy.blood_volume) + var/blood_to_hurtguy = min(max_blood_transfer, max_blood_to_hurtguy) + if(!blood_to_hurtguy) + return . + // We ignore incompatibility here. + mendicant.transfer_blood_to(hurtguy, blood_to_hurtguy, forced = TRUE, ignore_incompatibility = TRUE) + to_chat(mendicant, span_notice("Your veins (and brain) feel a bit lighter.")) + . = TRUE + // Because we do our own spin on it! + if(hurtguy.get_blood_compatibility(mendicant) == FALSE) + hurtguy.adjustToxLoss((blood_to_hurtguy * 0.1) * pain_multiplier) // 1 dmg per 10 blood + to_chat(hurtguy, span_notice("Your veins feel thicker, but they itch a bit.")) + else + to_chat(hurtguy, span_notice("Your veins feel thicker!")) + + // Too MUCH blood + if(hurtguy.blood_volume > BLOOD_VOLUME_MAXIMUM) + var/max_blood_to_mendicant = BLOOD_VOLUME_EXCESS - hurtguy.blood_volume + var/blood_to_mendicant = min(max_blood_transfer, max_blood_to_mendicant) + // mender always gonna have blood + + // We ignore incompatibility here. + hurtguy.transfer_blood_to(mendicant, hurtguy.blood_volume - BLOOD_VOLUME_EXCESS, forced = TRUE, ignore_incompatibility = TRUE) + to_chat(hurtguy, span_notice("Your veins don't feel quite so swollen anymore.")) + . = TRUE + // Because we do our own spin on it! + if(mendicant.get_blood_compatibility(hurtguy) == FALSE) + mendicant.adjustToxLoss((blood_to_mendicant * 0.1) * pain_multiplier) // 1 dmg per 10 blood + to_chat(mendicant, span_notice("Your veins swell and itch!")) + else + to_chat(mendicant, span_notice("Your veins swell!")) /obj/item/melee/touch_attack/lay_on_hands name = "mending touch" diff --git a/code/datums/proximity_monitor/field.dm b/code/datums/proximity_monitor/field.dm index 03e7c054d0908..e3f0ade5e7dba 100644 --- a/code/datums/proximity_monitor/field.dm +++ b/code/datums/proximity_monitor/field.dm @@ -168,6 +168,7 @@ /obj/item/multitool/field_debug name = "strange multitool" desc = "Seems to project a colored field!" + apc_scanner = FALSE var/operating = FALSE var/range_to_use = 5 var/datum/proximity_monitor/advanced/debug/current = null diff --git a/code/datums/quirks/positive_quirks/friendly.dm b/code/datums/quirks/positive_quirks/friendly.dm index 8ab0003639bc3..943bc2c4b8457 100644 --- a/code/datums/quirks/positive_quirks/friendly.dm +++ b/code/datums/quirks/positive_quirks/friendly.dm @@ -9,3 +9,15 @@ quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case." mail_goodies = list(/obj/item/storage/box/hug) + +/datum/quirk/friendly/add_unique(client/client_source) + var/mob/living/carbon/human/human_quirkholder = quirk_holder + var/obj/item/organ/internal/heart/holder_heart = human_quirkholder.get_organ_slot(ORGAN_SLOT_HEART) + if(isnull(holder_heart) || isnull(holder_heart.reagents)) + return + holder_heart.reagents.maximum_volume = 20 + // We have a bigger heart full of love! + holder_heart.reagents.add_reagent(/datum/reagent/love, 2.5) + // Like, physically bigger. + holder_heart.reagents.add_reagent(/datum/reagent/consumable/nutriment, 5) + holder_heart.transform = holder_heart.transform.Scale(1.5) diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 73153792ee647..14909ab0861f5 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -123,7 +123,7 @@ suffix = "icemoon_underground_hermit.dmm" /datum/map_template/ruin/icemoon/underground/lavaland - name = "Ice-Ruin Lavaland Site" + name = "Ice-Ruin Lavaland Incursion" id = "lavalandsite" description = "I guess we never really left you huh?" suffix = "icemoon_underground_lavaland.dmm" diff --git a/code/datums/shuttles/arrival.dm b/code/datums/shuttles/arrival.dm index 376de809afa23..645147ee5ba67 100644 --- a/code/datums/shuttles/arrival.dm +++ b/code/datums/shuttles/arrival.dm @@ -26,10 +26,6 @@ suffix = "pubby" name = "arrival shuttle (Pubby)" -/datum/map_template/shuttle/arrival/omega - suffix = "omega" - name = "arrival shuttle (Omega)" - /datum/map_template/shuttle/arrival/northstar suffix = "northstar" name = "arrival shuttle (North Star)" diff --git a/code/datums/shuttles/cargo.dm b/code/datums/shuttles/cargo.dm index a18b7a4ac9af7..8f5d83619f416 100644 --- a/code/datums/shuttles/cargo.dm +++ b/code/datums/shuttles/cargo.dm @@ -11,10 +11,6 @@ suffix = "birdboat" name = "supply shuttle (Birdboat)" -/datum/map_template/shuttle/cargo/donut - suffix = "donut" - name = "supply shuttle (Donut)" - /datum/map_template/shuttle/cargo/pubby suffix = "pubby" name = "supply shuttle (Pubby)" diff --git a/code/datums/shuttles/ferry.dm b/code/datums/shuttles/ferry.dm index e4f540992ff06..a0d3eac82d971 100644 --- a/code/datums/shuttles/ferry.dm +++ b/code/datums/shuttles/ferry.dm @@ -33,8 +33,3 @@ suffix = "kilo" name = "kilo transport ferry" description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers." - -/datum/map_template/shuttle/ferry/northstar - suffix = "northstar" - name = "north star transport ferry" - description = "In the very depths of the frontier, you'll need a rugged shuttle capable of delivering crew, this is that." diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index 5c7f99daf7e25..eccb2161c73bb 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -661,6 +661,10 @@ name = "Short Bangs" icon_state = "hair_shortbangs" +/datum/sprite_accessory/hair/shortbangs2 + name = "Short Bangs 2" + icon_state = "hair_shortbangs2" + /datum/sprite_accessory/hair/short name = "Short Hair" icon_state = "hair_a" diff --git a/code/datums/station_traits/job_traits.dm b/code/datums/station_traits/job_traits.dm index 42e5f680786b3..f2bd456aaee77 100644 --- a/code/datums/station_traits/job_traits.dm +++ b/code/datums/station_traits/job_traits.dm @@ -205,8 +205,7 @@ SIGNAL_HANDLER var/datum/job_department/department = SSjob.joinable_departments_by_type[/datum/job_department/silicon] department.remove_job(/datum/job/ai) - var/datum/station_trait/triple_ai/triple_ais = locate() in SSstation.station_traits - if(triple_ais) + if(GLOB.triple_ai_controller) position_amount = 3 /// Gives the AI SAT a fax machine if it doesn't have one. This is copy pasted from Bridge Assistant's coffee maker. diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index 266725cf337fc..727f487bd3ede 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -185,6 +185,22 @@ for(var/mob/living/found_bot as anything in GLOB.bots_list) found_bot.randomize_language_if_on_station() +/datum/station_trait/machine_languages + name = "Machine Language Matrix Malfunction" + trait_type = STATION_TRAIT_NEGATIVE + weight = 2 + cost = STATION_TRAIT_COST_FULL + show_in_report = TRUE + report_message = "Your station's machines have had their language matrix fried due to an event, \ + resulting in some strange and unfamiliar speech patterns." + trait_to_give = STATION_TRAIT_MACHINES_GLITCHED + +/datum/station_trait/machine_languages/New() + . = ..() + // What "caused" our machines to go haywire (fluff) + var/event_source = pick("an ion storm", "a malfunction", "a software update", "a power surge", "a computer virus", "a subdued machine uprising", "a clown's prank") + report_message = "Your station's machinery have had their language matrix fried due to [event_source], resulting in some strange and unfamiliar speech patterns." + /datum/station_trait/revenge_of_pun_pun name = "Revenge of Pun Pun" trait_type = STATION_TRAIT_NEGATIVE diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index 0ecb49f96a063..3069e644d6e1b 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -383,63 +383,19 @@ /datum/station_trait/linked_closets/on_round_start() . = ..() - var/list/roundstart_non_secure_closets = GLOB.roundstart_station_closets.Copy() - for(var/obj/structure/closet/closet in roundstart_non_secure_closets) - if(closet.secure) - roundstart_non_secure_closets -= closet + var/list/roundstart_closets = GLOB.roundstart_station_closets.Copy() /** - * The number of links to perform. - * Combined with 50/50 the probability of the link being triangular, the boundaries of any given - * on-station, non-secure closet being linked are as high as 1 in 7/8 and as low as 1 in 16-17, - * nearing an a mean of 1 in 9 to 11/12 the more repetitions are done. - * - * There are more than 220 roundstart closets on meta, around 150 of which aren't secure, - * so, about 13 to 17 closets will be affected by this most of the times. + * The number of links to perform. the chance of a closet being linked are about 1 in 10 + * There are more than 220 roundstart closets on meta, so, about 22 closets will be affected on average. */ - var/number_of_links = round(length(roundstart_non_secure_closets) * (rand(350, 450)*0.0001), 1) + var/number_of_links = round(length(roundstart_closets) * (rand(400, 430)*0.0001), 1) for(var/repetition in 1 to number_of_links) - var/closets_left = length(roundstart_non_secure_closets) - if(closets_left < 2) - return var/list/targets = list() - for(var/how_many in 1 to min(closets_left, rand(2,3))) - targets += pick_n_take(roundstart_non_secure_closets) - if(closets_left == 1) //there's only one closet left. Let's not leave it alone. - targets += roundstart_non_secure_closets[1] + for(var/how_many in 1 to rand(2,3)) + targets += pick_n_take(roundstart_closets) GLOB.eigenstate_manager.create_new_link(targets) -/datum/station_trait/triple_ai - name = "AI Triumvirate" - trait_type = STATION_TRAIT_NEUTRAL - trait_flags = parent_type::trait_flags | STATION_TRAIT_REQUIRES_AI - show_in_report = TRUE - weight = 1 - report_message = "Your station has been instated with three Nanotrasen Artificial Intelligence models." - -/datum/station_trait/triple_ai/New() - . = ..() - RegisterSignal(SSjob, COMSIG_OCCUPATIONS_SETUP, PROC_REF(on_occupations_setup)) - -/datum/station_trait/triple_ai/revert() - UnregisterSignal(SSjob, COMSIG_OCCUPATIONS_SETUP) - return ..() - -/datum/station_trait/triple_ai/proc/on_occupations_setup(datum/controller/subsystem/job/source) - SIGNAL_HANDLER - - //allows for latejoining AIs - for(var/obj/effect/landmark/start/ai/secondary/secondary_ai_spawn in GLOB.start_landmarks_list) - secondary_ai_spawn.latejoin_active = TRUE - - var/datum/station_trait/job/human_ai/ai_trait = locate() in SSstation.station_traits - //human AI quirk will handle adding its own job positions, but for now don't allow more AI slots. - if(ai_trait) - return - for(var/datum/job/ai/ai_datum in SSjob.joinable_occupations) - ai_datum.spawn_positions = 3 - ai_datum.total_positions = 3 - #define PRO_SKUB "pro-skub" #define ANTI_SKUB "anti-skub" diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 99ed18f6fc734..1af74533775fa 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -63,6 +63,55 @@ /datum/station_trait/bountiful_bounties/on_round_start() SSeconomy.bounty_modifier *= 1.2 +///A positive station trait that scatters a bunch of lit glowsticks throughout maintenance +/datum/station_trait/glowsticks + name = "Glowsticks party" + trait_type = STATION_TRAIT_POSITIVE + weight = 2 + show_in_report = TRUE + report_message = "We've glowsticks upon glowsticks to spare, so we scattered some around maintenance (plus a couple floor lights)." + +/datum/station_trait/glowsticks/New() + ..() + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, PROC_REF(on_pregame)) + +/datum/station_trait/glowsticks/proc/on_pregame(datum/source) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(light_up_the_night)) + +/datum/station_trait/glowsticks/proc/light_up_the_night() + var/list/glowsticks = list( + /obj/item/flashlight/glowstick, + /obj/item/flashlight/glowstick/red, + /obj/item/flashlight/glowstick/blue, + /obj/item/flashlight/glowstick/cyan, + /obj/item/flashlight/glowstick/orange, + /obj/item/flashlight/glowstick/yellow, + /obj/item/flashlight/glowstick/pink, + ) + for(var/area/station/maintenance/maint in GLOB.areas) + var/list/turfs = get_area_turfs(maint) + for(var/i in 1 to round(length(turfs) * 0.115)) + CHECK_TICK + var/turf/open/chosen = pick_n_take(turfs) + if(!istype(chosen)) + continue + var/skip_this = FALSE + for(var/atom/movable/mov as anything in chosen) //stop glowing sticks from spawning on windows + if(mov.density && !(mov.pass_flags_self & LETPASSTHROW)) + skip_this = TRUE + break + if(skip_this) + continue + if(prob(3.4)) ///Rare, but this is something that can survive past the lifespawn of glowsticks. + new /obj/machinery/light/floor(chosen) + continue + var/stick_type = pick(glowsticks) + var/obj/item/flashlight/glowstick/stick = new stick_type(chosen) + ///we want a wider range, otherwise they'd all burn out in about 20 minutes. + stick.max_fuel = stick.fuel = rand(10 MINUTES, 45 MINUTES) + stick.turn_on() + /datum/station_trait/strong_supply_lines name = "Strong supply lines" trait_type = STATION_TRAIT_POSITIVE diff --git a/code/datums/status_effects/debuffs/staggered.dm b/code/datums/status_effects/debuffs/staggered.dm index 89cf4943c1980..9db72e1fd06ee 100644 --- a/code/datums/status_effects/debuffs/staggered.dm +++ b/code/datums/status_effects/debuffs/staggered.dm @@ -1,3 +1,7 @@ +/// Staggered, Next Shove Stuns, No Side Kick +/// Status effects related to shoving effects and collisions due to shoving + +/// Staggered can occur most often via shoving, but can also occur in other places too. /datum/status_effect/staggered id = "staggered" tick_interval = 0.5 SECONDS @@ -43,3 +47,88 @@ /mob/living/proc/do_stagger_animation() animate(src, pixel_x = 4, time = 0.2 SECONDS, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) animate(pixel_x = -4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) + +/// Status effect specifically for instances where someone is vulnerable to being stunned when shoved. +/datum/status_effect/next_shove_stuns + id = "next shove stuns" + duration = 3 SECONDS + status_type = STATUS_EFFECT_UNIQUE + tick_interval = 0.5 SECONDS + alert_type = null + remove_on_fullheal = TRUE + /// Our visual cue for the vulnerable state this status effect puts us in. + var/mutable_appearance/vulnverability_overlay + +/datum/status_effect/next_shove_stuns/on_apply() + //Let's just clear this if they're dead or we can't stun them on a shove + if(owner.stat == DEAD || HAS_TRAIT(owner, TRAIT_NO_SIDE_KICK) || HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) + return FALSE + RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_stun_vulnverability_on_death)) + RegisterSignals(owner, list( + COMSIG_LIVING_STATUS_PARALYZE, + COMSIG_LIVING_STATUS_STUN, + COMSIG_LIVING_STATUS_IMMOBILIZE), PROC_REF(clear_stun_vulnverability) + ) + ADD_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, STATUS_EFFECT_TRAIT) + vulnverability_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "dazed") + owner.add_overlay(vulnverability_overlay) + return TRUE + +/datum/status_effect/next_shove_stuns/on_remove() + UnregisterSignal(owner, list( + COMSIG_LIVING_STATUS_PARALYZE, + COMSIG_LIVING_STATUS_STUN, + COMSIG_LIVING_STATUS_IMMOBILIZE, + COMSIG_LIVING_DEATH, + )) + REMOVE_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, STATUS_EFFECT_TRAIT) + if(vulnverability_overlay) + clear_stun_vulnverability_overlay() + +/// If our owner is either stunned, paralzyed or immobilized, we remove the status effect. +/// This is both an anti-chainstun measure and a sanity check. +/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability(mob/living/source, amount = 0, ignore_canstun = FALSE) + SIGNAL_HANDLER + + if(amount > 0) + // Making absolutely sure we're removing this overlay + clear_stun_vulnverability_overlay() + qdel(src) + +/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability_on_death(mob/living/source) + SIGNAL_HANDLER + + clear_stun_vulnverability_overlay() + qdel(src) + +/// Clears our overlay where needed. +/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability_overlay() + owner.cut_overlay(vulnverability_overlay) + vulnverability_overlay = null + +/// Status effect to prevent stuns from a shove +/// Only applied by shoving someone to paralyze them +/datum/status_effect/no_side_kick + id = "no side kick" + duration = 3.5 SECONDS + status_type = STATUS_EFFECT_UNIQUE + tick_interval = 0.5 SECONDS + alert_type = null + remove_on_fullheal = TRUE + +/datum/status_effect/no_side_kick/on_apply() + // Once again, clear if dead + if(owner.stat == DEAD) + return FALSE + RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_on_death)) + ADD_TRAIT(owner, TRAIT_NO_SIDE_KICK, STATUS_EFFECT_TRAIT) + return TRUE + +/datum/status_effect/no_side_kick/on_remove() + UnregisterSignal(owner, list(COMSIG_LIVING_DEATH)) + REMOVE_TRAIT(owner, TRAIT_NO_SIDE_KICK, STATUS_EFFECT_TRAIT) + +/datum/status_effect/no_side_kick/proc/clear_on_death(mob/living/source) + SIGNAL_HANDLER + + qdel(src) diff --git a/code/datums/status_effects/debuffs/stamcrit.dm b/code/datums/status_effects/debuffs/stamcrit.dm index 05433244df09c..c0359c7ddf3b1 100644 --- a/code/datums/status_effects/debuffs/stamcrit.dm +++ b/code/datums/status_effects/debuffs/stamcrit.dm @@ -28,6 +28,8 @@ return FALSE if(owner.check_stun_immunity(CANKNOCKDOWN)) return FALSE + if(SEND_SIGNAL(owner, COMSIG_LIVING_ENTER_STAMCRIT) & STAMCRIT_CANCELLED) + return FALSE . = ..() if(!.) diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 8c98d7d56bd16..cad7e84ebe0f3 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -44,6 +44,9 @@ var/animated = TRUE /// Determines whether we play a rustle sound when inserting/removing items. var/rustle_sound = TRUE + /// The sound to play when we open/access the storage + var/open_sound + var/open_sound_vary = TRUE /// The maximum amount of items that can be inserted into this storage. var/max_slots = 7 @@ -444,7 +447,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(!can_insert(to_insert, user, messages = messages, force = force)) return FALSE - SEND_SIGNAL(parent, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) + SEND_SIGNAL(parent, COMSIG_ATOM_STORED_ITEM, to_insert, user, force) SEND_SIGNAL(src, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) to_insert.forceMove(real_location) item_insertion_feedback(user, to_insert, override) @@ -920,7 +923,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) animate_parent() if(rustle_sound) - playsound(parent, SFX_RUSTLE, 50, TRUE, -5) + playsound(parent, (open_sound ? open_sound : SFX_RUSTLE), 50, open_sound_vary, -5) return TRUE diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index ca9cff19c73a8..16ffb326f8a86 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -56,7 +56,7 @@ /// The list of z-levels that this weather is actively affecting var/impacted_z_levels - /// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. + /// Since it's above everything else, this is the layer used by default. var/overlay_layer = AREA_LAYER /// Plane for the overlay var/overlay_plane = AREA_PLANE diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 8049f08d8dcf4..584e862eb5d51 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -126,7 +126,7 @@ A.update_appearance() if(WIRE_IDSCAN) // Pulse to disable emergency access and flash the red lights. if(A.hasPower() && A.density) - A.do_animate("deny") + A.run_animation(DOOR_DENY_ANIMATION) if(A.emergency) A.emergency = FALSE A.update_appearance() diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index f713819c81786..47f29a21e9dd5 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -498,7 +498,7 @@ // check if we have a valid treatable tool if(potential_treater.tool_behaviour in treatable_tools) return TRUE - if(TOOL_CAUTERY in treatable_tools && potential_treater.get_temperature() && user == victim) // allow improvised cauterization on yourself without an aggro grab + if((TOOL_CAUTERY in treatable_tools) && potential_treater.get_temperature() && (user == victim)) // allow improvised cauterization on yourself without an aggro grab return TRUE // failing that, see if we're aggro grabbing them and if we have an item that works for aggro grabs only if(user.pulling == victim && user.grab_state >= GRAB_AGGRESSIVE && check_grab_treatments(potential_treater, user)) diff --git a/code/datums/wounds/cranial_fissure.dm b/code/datums/wounds/cranial_fissure.dm index 0b7c00dee7e32..df973d3bdec90 100644 --- a/code/datums/wounds/cranial_fissure.dm +++ b/code/datums/wounds/cranial_fissure.dm @@ -81,7 +81,7 @@ ) /datum/wound/cranial_fissure/try_handling(mob/living/user) - if (user.usable_hands <= 0) + if (user.usable_hands <= 0 || user.combat_mode) return FALSE if(!isnull(user.hud_used?.zone_select) && (user.zone_selected != BODY_ZONE_HEAD && user.zone_selected != BODY_ZONE_PRECISE_EYES)) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 36ce8c5a24fe4..0c6847e7db348 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -567,6 +567,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) beauty = 0 return FALSE //Too big beauty = totalbeauty / areasize + SEND_SIGNAL(src, COMSIG_AREA_BEAUTY_UPDATED) /** * Setup an area (with the given name) diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 9eaec1b48378e..4a398a635a73c 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -5,7 +5,7 @@ * as much as possible to the components/elements system */ /atom - layer = TURF_LAYER + layer = ABOVE_NORMAL_TURF_LAYER plane = GAME_PLANE appearance_flags = TILE_BOUND|LONG_GLIDE diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 8135a3af59346..ae987cb668f15 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -879,9 +879,10 @@ // Make sure you know what you're doing if you call this // You probably want CanPass() /atom/movable/Cross(atom/movable/crossed_atom) - . = TRUE - SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) - SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) & COMPONENT_BLOCK_CROSS) + return FALSE + if(SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) & COMPONENT_BLOCK_CROSS) + return FALSE return CanPass(crossed_atom, get_dir(src, crossed_atom)) ///default byond proc that is deprecated for us in lieu of signals. do not call @@ -926,7 +927,8 @@ /atom/movable/Bump(atom/bumped_atom) if(!bumped_atom) CRASH("Bump was called with no argument.") - SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) & COMPONENT_INTERCEPT_BUMPED) + return . = ..() if(!QDELETED(throwing)) throwing.finalize(hit = TRUE, target = bumped_atom) @@ -1420,7 +1422,15 @@ /atom/movable/proc/CanPassThrough(atom/blocker, movement_dir, blocker_opinion) SHOULD_CALL_PARENT(TRUE) SHOULD_BE_PURE(TRUE) - return blocker_opinion + + var/blocking_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_CAN_PASS_THROUGH, blocker, movement_dir) + if(!blocking_signal) + return blocker_opinion + + if(blocking_signal & COMSIG_COMPONENT_PERMIT_PASSAGE) + return TRUE + else //we have a COMSIG_COMPONENT_REFUSE_PASSAGE but like its either this or that, unlike someone wanna adds half-passing through but fuck you + return FALSE /// called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /atom/movable/proc/on_exit_storage(datum/storage/master_storage) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index a4d59d668ae11..91c500fd8f12e 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -282,7 +282,7 @@ Security HUDs! Basic mode shows only the job. /mob/living/proc/sec_hud_set_implants() var/image/holder - for(var/i in list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD)) + for(var/i in (list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD) & hud_list)) holder = hud_list[i] holder.icon_state = null set_hud_image_inactive(i) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index a8ae65ef24cd4..40d9ef556dc56 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -177,7 +177,7 @@ flags_1 |= PREVENT_CONTENTS_EXPLOSION_1 } - if(HAS_TRAIT(SSstation, STATION_TRAIT_BOTS_GLITCHED)) + if(HAS_TRAIT(SSstation, STATION_TRAIT_MACHINES_GLITCHED) && mapload) randomize_language_if_on_station() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_MACHINE, src) @@ -831,10 +831,13 @@ return //Just delete us, no need to call anything else. on_deconstruction(disassembled) + + if(circuit) + spawn_frame(disassembled) + if(!LAZYLEN(component_parts)) dump_contents() //drop everything inside us return //we don't have any parts. - spawn_frame(disassembled) for(var/part in component_parts) if(istype(part, /datum/stock_part)) diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index 117577e66eb83..08cd5bdc61a11 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/devices/tool.dmi' icon_state = "ai-slipper0" base_icon_state = "ai-slipper" - layer = PROJECTILE_HIT_THRESHHOLD_LAYER + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE max_integrity = 200 armor_type = /datum/armor/machinery_ai_slipper diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index edb945f483e9c..1700abb0af1ab 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -32,6 +32,9 @@ GLOBAL_LIST_EMPTY(announcement_systems) radio = new /obj/item/radio/headset/silicon/ai(src) update_appearance() +/obj/machinery/announcement_system/randomize_language_if_on_station() + return + /obj/machinery/announcement_system/update_icon_state() icon_state = "[base_icon_state]_[is_operational ? "On" : "Off"][panel_open ? "_Open" : null]" return ..() diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index c8e0251b3dd4b..3292cbf977b5f 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -93,7 +93,7 @@ return for(var/obj/item/circuitboard/computer/board in src.contents) if(!contents || board.GetComponent(/datum/component/gps)) - return + CRASH("[src] Called imprint_gps without setting gps_tag") board.AddComponent(/datum/component/gps, "[tracker]") balloon_alert_to_viewers("board tracker enabled", vision_distance = 1) diff --git a/code/game/machinery/computer/atmos_computers/inlets.dm b/code/game/machinery/computer/atmos_computers/inlets.dm index 32de77cc632de..474ccae2c14e1 100644 --- a/code/game/machinery/computer/atmos_computers/inlets.dm +++ b/code/game/machinery/computer/atmos_computers/inlets.dm @@ -4,6 +4,14 @@ /// The air sensor type this injector is linked to var/chamber_id +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer2 + piping_layer = 2 + icon_state = "inje_map-2" + +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer4 + piping_layer = 4 + icon_state = "inje_map-4" + /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/Initialize(mapload) id_tag = CHAMBER_INPUT_FROM_ID(chamber_id) return ..() diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 1fb46abd1201f..8fb1e71f05ed7 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -380,15 +380,7 @@ post_status(picture) else if(picture == "currentalert") // You cannot set Code Blue display during Code Red and similiar - switch(SSsecurity_level.get_current_level_as_number()) - if(SEC_LEVEL_DELTA) - post_status("alert", "deltaalert") - if(SEC_LEVEL_RED) - post_status("alert", "redalert") - if(SEC_LEVEL_BLUE) - post_status("alert", "bluealert") - if(SEC_LEVEL_GREEN) - post_status("alert", "greenalert") + post_status("alert", SSsecurity_level?.current_security_level?.status_display_icon_state || "greenalert") else post_status("alert", picture) diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 383a980a64da0..742166b285659 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -28,7 +28,7 @@ current = null return M.install(current.laws, user) - imprint_gps(gps_tag = "Weak Upload Signal") + imprint_gps("Weak Upload Signal") else return ..() diff --git a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm index 47d65a9492f04..e3e7112b0fec9 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm @@ -42,17 +42,16 @@ toxic_foodtypes = NONE // these fucks eat vomit, i am sure they can handle drinking bleach or whatever too modifies_speech = TRUE languages_native = list(/datum/language/buzzwords) + var/static/list/speech_replacements = list( + new /regex("z+", "g") = "zzz", + new /regex("Z+", "g") = "ZZZ", + "s" = "z", + "S" = "Z", + ) -/obj/item/organ/internal/tongue/fly/modify_speech(datum/source, list/speech_args) - var/static/regex/fly_buzz = new("z+", "g") - var/static/regex/fly_buZZ = new("Z+", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = fly_buzz.Replace(message, "zzz") - message = fly_buZZ.Replace(message, "ZZZ") - message = replacetext(message, "s", "z") - message = replacetext(message, "S", "Z") - speech_args[SPEECH_MESSAGE] = message +/obj/item/organ/internal/tongue/fly/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) /obj/item/organ/internal/tongue/fly/Initialize(mapload) . = ..() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 67f069c062c4c..d64e63369554c 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -139,6 +139,9 @@ /// Used for papers and photos pinned to the airlock var/note_overlay_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + /// Airlock pump that overrides airlock controlls when set up for cycling + var/obj/machinery/atmospherics/components/unary/airlock_pump/cycle_pump + var/cyclelinkeddir = 0 var/obj/machinery/door/airlock/cyclelinkedairlock var/shuttledocked = 0 @@ -591,13 +594,13 @@ floorlight.pixel_y = 0 . += floorlight -/obj/machinery/door/airlock/do_animate(animation) +/obj/machinery/door/airlock/run_animation(animation) switch(animation) - if("opening") + if(DOOR_OPENING_ANIMATION) update_icon(ALL, AIRLOCK_OPENING) - if("closing") + if(DOOR_OPENING_ANIMATION) update_icon(ALL, AIRLOCK_CLOSING) - if("deny") + if(DOOR_DENY_ANIMATION) if(!machine_stat) update_icon(ALL, AIRLOCK_DENY) playsound(src,doorDeni,50,FALSE,3) @@ -607,6 +610,28 @@ if(airlock_state == AIRLOCK_DENY) update_icon(ALL, AIRLOCK_CLOSED) +/obj/machinery/door/airlock/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.6 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.6 SECONDS + +/obj/machinery/door/airlock/animation_segment_delay(animation) + switch(animation) + if(AIRLOCK_OPENING_TRANSPARENT) + return 0.1 SECONDS + if(AIRLOCK_OPENING_PASSABLE) + return 0.5 SECONDS + if(AIRLOCK_OPENING_FINISHED) + return 0.6 SECONDS + if(AIRLOCK_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(AIRLOCK_CLOSING_OPAQUE) + return 0.5 SECONDS + if(AIRLOCK_CLOSING_FINISHED) + return 0.6 SECONDS + /obj/machinery/door/airlock/examine(mob/user) . = ..() if(closeOtherId) @@ -1200,6 +1225,10 @@ INVOKE_ASYNC(src, density ? PROC_REF(open) : PROC_REF(close), BYPASS_DOOR_CHECKS) /obj/machinery/door/airlock/open(forced = DEFAULT_DOOR_CHECKS) + if(cycle_pump && !operating && !welded && !seal && locked && density) + cycle_pump.airlock_act(src) + return FALSE // The rest will be handled by the pump + if( operating || welded || locked || seal ) return FALSE @@ -1234,18 +1263,21 @@ SEND_SIGNAL(src, COMSIG_AIRLOCK_OPEN, forced) operating = TRUE update_icon(ALL, AIRLOCK_OPENING, TRUE) - sleep(0.1 SECONDS) + var/transparent_delay = animation_segment_delay(AIRLOCK_OPENING_TRANSPARENT) + sleep(transparent_delay) set_opacity(0) if(multi_tile) filler.set_opacity(FALSE) update_freelook_sight() - sleep(0.4 SECONDS) + var/passable_delay = animation_segment_delay(AIRLOCK_OPENING_PASSABLE) - transparent_delay + sleep(passable_delay) set_density(FALSE) if(multi_tile) filler.set_density(FALSE) flags_1 &= ~PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, FALSE) - sleep(0.1 SECONDS) + var/open_delay = animation_segment_delay(AIRLOCK_OPENING_FINISHED) - transparent_delay - passable_delay + sleep(open_delay) layer = OPEN_DOOR_LAYER update_icon(ALL, AIRLOCK_OPEN, TRUE) operating = FALSE @@ -1314,14 +1346,16 @@ filler.density = TRUE flags_1 |= PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, TRUE) - sleep(0.1 SECONDS) + var/unpassable_delay = animation_segment_delay(AIRLOCK_CLOSING_UNPASSABLE) + sleep(unpassable_delay) if(!air_tight) set_density(TRUE) if(multi_tile) filler.density = TRUE flags_1 |= PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, TRUE) - sleep(0.4 SECONDS) + var/opaque_delay = animation_segment_delay(AIRLOCK_CLOSING_OPAQUE) - unpassable_delay + sleep(opaque_delay) if(dangerous_close) crush() if(visible && !glass) @@ -1329,7 +1363,8 @@ if(multi_tile) filler.set_opacity(TRUE) update_freelook_sight() - sleep(0.1 SECONDS) + var/close_delay = animation_segment_delay(AIRLOCK_CLOSING_FINISHED) - unpassable_delay - opaque_delay + sleep(close_delay) update_icon(ALL, AIRLOCK_CLOSED, 1) operating = FALSE delayed_close_requested = FALSE @@ -1794,6 +1829,17 @@ /obj/structure/fluff/airlock_filler/singularity_pull(S, current_size) return +/obj/machinery/door/airlock/proc/set_cycle_pump(obj/machinery/atmospherics/components/unary/airlock_pump/pump) + RegisterSignal(pump, COMSIG_QDELETING, PROC_REF(unset_cycle_pump)) + cycle_pump = pump + +/obj/machinery/door/airlock/proc/unset_cycle_pump() + SIGNAL_HANDLER + if(locked) + unbolt() + say("Link broken, unbolting.") + cycle_pump = null + // Station Airlocks Regular /obj/machinery/door/airlock/command diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index b1fec07f422f4..601ad67a6e9a4 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -3,7 +3,7 @@ name = "door" desc = "It opens and closes." icon = 'icons/obj/doors/doorint.dmi' - icon_state = "door1" + icon_state = "door_closed" base_icon_state = "door" opacity = TRUE density = TRUE @@ -24,6 +24,8 @@ idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.1 active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 0.2 + /// The animation we're currently playing, if any + var/animation var/visible = TRUE var/operating = FALSE var/glass = FALSE @@ -100,6 +102,8 @@ else flags_1 &= ~PREVENT_CLICK_UNDER_1 + if(glass) + passwindow_on(src, INNATE_TRAIT) //doors only block while dense though so we have to use the proc real_explosion_block = explosion_block update_explosive_block() @@ -252,7 +256,7 @@ if(requiresID() && check_access(I)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return /obj/machinery/door/Move() @@ -282,7 +286,7 @@ else if(requiresID() && allowed(user)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/attack_hand(mob/user, list/modifiers) . = ..() @@ -310,7 +314,7 @@ close() return TRUE if(density) - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/allowed(mob/M) if(emergency) @@ -405,24 +409,68 @@ INVOKE_ASYNC(src, PROC_REF(open)) /obj/machinery/door/update_icon_state() - icon_state = "[base_icon_state][density]" - return ..() - -/obj/machinery/door/proc/do_animate(animation) + . = ..() switch(animation) - if("opening") + if(DOOR_OPENING_ANIMATION) if(panel_open) - flick("o_doorc0", src) + icon_state = "o_door_opening" else - flick("doorc0", src) - if("closing") + icon_state = "door_opening" + if(DOOR_CLOSING_ANIMATION) if(panel_open) - flick("o_doorc1", src) + icon_state = "o_door_closing" else - flick("doorc1", src) - if("deny") + icon_state = "door_closing" + if(DOOR_DENY_ANIMATION) if(!machine_stat) - flick("door_deny", src) + icon_state = "door_deny" + else + icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + +/obj/machinery/door/update_overlays() + . = ..() + if(panel_open) + . += mutable_appearance(icon, "panel_open") + +/// Returns the delay to use for the passed in animation +/// We'll do our cleanup once the delay runs out +/obj/machinery/door/proc/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.6 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.6 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.3 SECONDS + +/// Returns the time required to hit particular points in an animation +/// Used to manage delays for opening/closing and such +/obj/machinery/door/proc/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 0.6 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 0.6 SECONDS + +/// Override this to do misc tasks on animation start +/obj/machinery/door/proc/animation_effects(animation) + return + +/// Used to start a new animation +/// Accepts the animation to start as an arg +/obj/machinery/door/proc/run_animation(animation) + set_animation(animation) + addtimer(CALLBACK(src, PROC_REF(set_animation), null), animation_length(animation), TIMER_UNIQUE|TIMER_OVERRIDE) + animation_effects(animation) + +// React to our animation changing +/obj/machinery/door/proc/set_animation(animation) + src.animation = animation + update_appearance() /// Public proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. /// Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened. @@ -433,12 +481,14 @@ return FALSE operating = TRUE use_energy(active_power_usage) - do_animate("opening") + run_animation(DOOR_OPENING_ANIMATION) set_opacity(0) - SLEEP_NOT_DEL(0.5 SECONDS) + var/passable_delay = animation_segment_delay(DOOR_OPENING_PASSABLE) + SLEEP_NOT_DEL(passable_delay) set_density(FALSE) flags_1 &= ~PREVENT_CLICK_UNDER_1 - SLEEP_NOT_DEL(0.5 SECONDS) + var/open_delay = animation_segment_delay(DOOR_OPENING_FINISHED) - passable_delay + SLEEP_NOT_DEL(open_delay) layer = initial(layer) update_appearance() set_opacity(0) @@ -470,12 +520,14 @@ operating = TRUE - do_animate("closing") + run_animation(DOOR_CLOSING_ANIMATION) layer = closingLayer - SLEEP_NOT_DEL(0.5 SECONDS) + var/unpassable_delay = animation_segment_delay(DOOR_CLOSING_UNPASSABLE) + SLEEP_NOT_DEL(unpassable_delay) set_density(TRUE) flags_1 |= PREVENT_CLICK_UNDER_1 - SLEEP_NOT_DEL(0.5 SECONDS) + var/close_delay = animation_segment_delay(DOOR_CLOSING_FINISHED) - unpassable_delay + SLEEP_NOT_DEL(close_delay) update_appearance() if(visible && !glass) set_opacity(1) @@ -556,6 +608,26 @@ /obj/machinery/door/get_dumping_location() return null +/obj/machinery/door/morgue/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.5 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.5 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.1 SECONDS + +/obj/machinery/door/morgue/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 1.4 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.5 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.5 SECONDS + /obj/machinery/door/proc/lock() return diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 30deaef9183f3..dd274b3053169 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -546,7 +546,7 @@ if(density) being_held_open = TRUE - user.balloon_alert_to_viewers("holding [src] open", "holding [src] open") + user.balloon_alert_to_viewers("holding firelock open", "holding firelock open") COOLDOWN_START(src, activation_cooldown, REACTIVATION_DELAY) open() if(QDELETED(user)) @@ -583,7 +583,7 @@ UnregisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION) UnregisterSignal(user, COMSIG_QDELETING) if(user) - user.balloon_alert_to_viewers("released [src]", "released [src]") + user.balloon_alert_to_viewers("released firelock", "released firelock") /obj/machinery/door/firedoor/attack_ai(mob/user) add_fingerprint(user) @@ -603,22 +603,43 @@ /obj/machinery/door/firedoor/attack_alien(mob/user, list/modifiers) add_fingerprint(user) if(welded) - to_chat(user, span_warning("[src] refuses to budge!")) + balloon_alert(user, "refuses to budge!") return open() if(active) addtimer(CALLBACK(src, PROC_REF(correct_state)), 2 SECONDS, TIMER_UNIQUE) -/obj/machinery/door/firedoor/do_animate(animation) - switch(animation) - if("opening") - flick("[base_icon_state]_opening", src) - if("closing") - flick("[base_icon_state]_closing", src) - /obj/machinery/door/firedoor/update_icon_state() . = ..() - icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "[base_icon_state]_opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "[base_icon_state]_closing" + if(DOOR_DENY_ANIMATION) + icon_state = "[base_icon_state]_deny" + else + icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + +/obj/machinery/door/firedoor/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.2 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.2 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.3 SECONDS + +/obj/machinery/door/firedoor/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 1.0 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.2 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.2 SECONDS /obj/machinery/door/firedoor/update_overlays() . = ..() diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm index df8f7fa936afd..bccc243381ba4 100644 --- a/code/game/machinery/doors/passworddoor.dm +++ b/code/game/machinery/doors/passworddoor.dm @@ -62,22 +62,44 @@ if(access_bypass || ask_for_pass(user)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/password/update_icon_state() . = ..() - icon_state = density ? "closed" : "open" + //Deny animation would be nice to have. + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "closing" + else + icon_state = density ? "closed" : "open" + +/obj/machinery/door/password/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.1 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.1 SECONDS + +/obj/machinery/door/password/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.1 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.1 SECONDS -/obj/machinery/door/password/do_animate(animation) +/obj/machinery/door/password/animation_effects(animation) switch(animation) - if("opening") - flick("opening", src) + if(DOOR_OPENING_ANIMATION) playsound(src, door_open, 50, TRUE) - if("closing") - flick("closing", src) + if(DOOR_CLOSING_ANIMATION) playsound(src, door_close, 50, TRUE) - if("deny") - //Deny animation would be nice to have. + if(DOOR_DENY_ANIMATION) playsound(src, door_deny, 30, TRUE) /obj/machinery/door/password/proc/ask_for_pass(mob/user) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 48e0cb195d7f3..ab18a63361c97 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -40,7 +40,7 @@ if(panel_open) if(deconstruction == BLASTDOOR_FINISHED) . += span_notice("The maintenance panel is opened and the electronics could be pried out.") - . += span_notice("\The [src] could be calibrated to a blast door controller ID with a multitool.") + . += span_notice("\The [src] could be calibrated to a blast door controller ID with a multitool or a blast door controller.") else if(deconstruction == BLASTDOOR_NEEDS_ELECTRONICS) . += span_notice("The electronics are missing and there are some wires sticking out.") else if(deconstruction == BLASTDOOR_NEEDS_WIRES) @@ -56,6 +56,9 @@ if(deconstruction == BLASTDOOR_NEEDS_ELECTRONICS && istype(held_item, /obj/item/electronics/airlock)) context[SCREENTIP_CONTEXT_LMB] = "Add electronics" return CONTEXTUAL_SCREENTIP_SET + if(deconstruction == BLASTDOOR_FINISHED && istype(held_item, /obj/item/assembly/control)) + context[SCREENTIP_CONTEXT_LMB] = "Calibrate ID" + return CONTEXTUAL_SCREENTIP_SET //we do not check for special effects like if they can actually perform the action because they will be told they can't do it when they try, //with feedback on what they have to do in order to do so. switch(held_item.tool_behaviour) @@ -99,6 +102,19 @@ balloon_alert(user, "electronics added") deconstruction = BLASTDOOR_FINISHED return ITEM_INTERACT_SUCCESS + + if(deconstruction == BLASTDOOR_FINISHED && istype(tool, /obj/item/assembly/control)) + if(density) + balloon_alert(user, "open the door first!") + return ITEM_INTERACT_BLOCKING + if(!panel_open) + balloon_alert(user, "open the panel first!") + return ITEM_INTERACT_BLOCKING + var/obj/item/assembly/control/controller_item = tool + id = controller_item.id + balloon_alert(user, "id changed") + return ITEM_INTERACT_SUCCESS + return NONE /obj/machinery/door/poddoor/screwdriver_act(mob/living/user, obj/item/tool) @@ -195,19 +211,43 @@ return FALSE return ..() -/obj/machinery/door/poddoor/do_animate(animation) +/obj/machinery/door/poddoor/update_icon_state() + . = ..() + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "closing" + if(DOOR_DENY_ANIMATION) + icon_state = "deny" + else + icon_state = density ? "closed" : "open" + +/obj/machinery/door/poddoor/animation_length(animation) switch(animation) - if("opening") - flick("opening", src) + if(DOOR_OPENING_ANIMATION) + return 1.1 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.1 SECONDS + +/obj/machinery/door/poddoor/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.1 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.1 SECONDS + +/obj/machinery/door/poddoor/animation_effects(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) playsound(src, animation_sound, 50, TRUE) - if("closing") - flick("closing", src) + if(DOOR_CLOSING_ANIMATION) playsound(src, animation_sound, 50, TRUE) -/obj/machinery/door/poddoor/update_icon_state() - . = ..() - icon_state = density ? "closed" : "open" - /obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) if(density & !(resistance_flags & INDESTRUCTIBLE)) add_fingerprint(user) diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index 0df6024ca827a..56e2f5a9743b2 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -11,6 +11,24 @@ recipe_type = /datum/crafting_recipe/shutters animation_sound = 'sound/machines/shutter.ogg' +/obj/machinery/door/poddoor/shutters/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.388 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.388 SECONDS + +/obj/machinery/door/poddoor/shutters/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.76 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.388 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.152 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.388 SECONDS + /obj/machinery/door/poddoor/shutters/preopen icon_state = "open" density = FALSE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 8dca3d1bdadb2..0c897c6809666 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -19,12 +19,16 @@ interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN set_dir_on_move = FALSE opens_with_door_remote = TRUE + /// Reference to the airlock electronics inside for determining window access. var/obj/item/electronics/airlock/electronics = null + /// If the door is considered reinforced. If TRUE, the door will resist twice as much heat (1600 deg C vs 800 deg C). var/reinf = 0 + /// On deconstruction, how many shards to drop. var/shards = 2 + /// On deconstruction, how many rods to drop. var/rods = 2 + /// On deconstruction, how much cable to drop. var/cable = 1 - var/list/debris = list() /datum/armor/door_window melee = 20 @@ -72,7 +76,15 @@ /obj/machinery/door/window/update_icon_state() . = ..() - icon_state = "[base_state][density ? null : "open"]" + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "[base_state]opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "[base_state]closing" + if(DOOR_DENY_ANIMATION) + icon_state = "[base_state]deny" + else + icon_state = "[base_state][density ? null : "open"]" if(hasPower() && unres_sides) set_light(l_range = 2, l_power = 1) @@ -80,6 +92,24 @@ set_light(l_range = 0) +/obj/machinery/door/window/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.9 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.9 SECONDS + +/obj/machinery/door/window/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.7 SECONDS + if(DOOR_OPENING_FINISHED) + return 0.9 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 0.9 SECONDS + /obj/machinery/door/window/update_overlays() . = ..() @@ -131,7 +161,7 @@ if(allowed(occupant)) open_and_close() return - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return if(!SSticker) return @@ -155,7 +185,7 @@ open_and_close() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return @@ -214,11 +244,13 @@ if(!operating) //in case of emag operating = TRUE - do_animate("opening") + run_animation(DOOR_OPENING_ANIMATION) playsound(src, 'sound/machines/windowdoor.ogg', 100, TRUE) - icon_state ="[base_state]open" - sleep(1 SECONDS) + var/passable_delay = animation_segment_delay(DOOR_OPENING_PASSABLE) + sleep(passable_delay) set_density(FALSE) + var/open_delay = animation_segment_delay(DOOR_OPENING_FINISHED) - passable_delay + sleep(open_delay) air_update_turf(TRUE, FALSE) update_freelook_sight() @@ -257,14 +289,15 @@ return FALSE operating = TRUE - do_animate("closing") + run_animation(DOOR_CLOSING_ANIMATION) playsound(src, 'sound/machines/windowdoor.ogg', 100, TRUE) - icon_state = base_state - + var/unpassable_delay = animation_segment_delay(DOOR_CLOSING_UNPASSABLE) + sleep(unpassable_delay) set_density(TRUE) air_update_turf(TRUE, TRUE) update_freelook_sight() - sleep(1 SECONDS) + var/close_delay = animation_segment_delay(DOOR_CLOSING_FINISHED) - unpassable_delay + sleep(close_delay) operating = FALSE return TRUE @@ -349,6 +382,10 @@ . = ..() if(obj_flags & EMAGGED) . += span_warning("Its access panel is smoking slightly.") + if(!density) + if(panel_open) + . += span_notice("The [span_boldnotice("airlock electronics")] could be [span_boldnotice("levered")] out.") + /obj/machinery/door/window/screwdriver_act(mob/living/user, obj/item/tool) . = ..() @@ -431,15 +468,6 @@ else to_chat(user, span_warning("The door's motors resist your efforts to force it!")) -/obj/machinery/door/window/do_animate(animation) - switch(animation) - if("opening") - flick("[base_state]opening", src) - if("closing") - flick("[base_state]closing", src) - if("deny") - flick("[base_state]deny", src) - /obj/machinery/door/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 10055aee5b29d..a852ea019c697 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -179,15 +179,7 @@ var/current_level = SSsecurity_level.get_current_level_as_number() . += mutable_appearance(icon, "fire_[current_level]") . += emissive_appearance(icon, "fire_level_e", src, alpha = src.alpha) - switch(current_level) - if(SEC_LEVEL_GREEN) - set_light(l_color = LIGHT_COLOR_BLUEGREEN) - if(SEC_LEVEL_BLUE) - set_light(l_color = LIGHT_COLOR_ELECTRIC_CYAN) - if(SEC_LEVEL_RED) - set_light(l_color = LIGHT_COLOR_FLARE) - if(SEC_LEVEL_DELTA) - set_light(l_color = LIGHT_COLOR_INTENSE_RED) + set_light(l_color = SSsecurity_level?.current_security_level?.fire_alarm_light_color || LIGHT_COLOR_BLUEGREEN) else . += mutable_appearance(icon, "fire_offstation") . += emissive_appearance(icon, "fire_level_e", src, alpha = src.alpha) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 172607451bda7..cbb7eede250b9 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -39,9 +39,9 @@ Possible to do for anyone motivated enough: icon = 'icons/obj/machines/floor.dmi' icon_state = "holopad0" base_icon_state = "holopad" - layer = LOW_OBJ_LAYER /// The plane is set such that it shows up without being covered by pipes/wires in a map editor, we change this on initialize. - plane = GAME_PLANE + layer = MAP_SWITCH(ABOVE_OPEN_TURF_LAYER, LOW_OBJ_LAYER) + plane = MAP_SWITCH(FLOOR_PLANE, GAME_PLANE) req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though. max_integrity = 300 armor_type = /datum/armor/machinery_holopad @@ -101,9 +101,6 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/Initialize(mapload) . = ..() - /// We set the plane on mapload such that we can see the holopad render over atmospherics pipe and cabling in a map editor (without initialization), but so it gets that "inset" look in the floor in-game. - SET_PLANE_IMPLICIT(src, FLOOR_PLANE) - update_appearance() var/static/list/hovering_mob_typechecks = list( /mob/living/silicon = list( diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 9ad6bcac58dc0..3fa7d25767f2f 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/machines/floor.dmi' icon_state = "igniter0" base_icon_state = "igniter" + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE max_integrity = 300 armor_type = /datum/armor/machinery_igniter diff --git a/code/game/machinery/incident_display.dm b/code/game/machinery/incident_display.dm index b8452675c71aa..77194a26dd7ba 100644 --- a/code/game/machinery/incident_display.dm +++ b/code/game/machinery/incident_display.dm @@ -1,4 +1,8 @@ -GLOBAL_LIST_EMPTY(map_delamination_counters) +/** + * List of incident displays on the map + * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. + */ +GLOBAL_LIST_EMPTY(map_incident_displays) /// Display days since last delam on incident sign #define DISPLAY_DELAM (1<<0) @@ -13,25 +17,28 @@ DEFINE_BITFIELD(sign_features, list( #define TREND_RISING "rising" #define TREND_FALLING "falling" -#define NAME_DUAL "safety incident display" #define NAME_DELAM "delamination incident display" #define NAME_TRAM "tram incident display" -#define DESC_DUAL "A display that provides information on the station's safety record. Features an advert for SAFETY MOTH." #define DESC_DELAM "A signs describe how long it's been since the last delamination incident. Features an advert for SAFETY MOTH." -#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift. Features an advert for SAFETY MOTH." +#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift." -/** - * List of safety statistic signs on the map that have delam counting enabled. - * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. - */ +#define DISPLAY_PIXEL_1_W 21 +#define DISPLAY_PIXEL_1_Z -2 +#define DISPLAY_PIXEL_2_W 16 +#define DISPLAY_PIXEL_2_Z -2 +#define DISPLAY_BASE_ALPHA 64 +#define DISPLAY_PIXEL_ALPHA 96 + +#define LIGHT_COLOR_NORMAL "#4b4290" +#define LIGHT_COLOR_SHAME "#e24e76" /obj/machinery/incident_display name = NAME_DELAM desc = DESC_DELAM icon = 'icons/obj/machines/incident_display.dmi' - icon_preview = "stat_display_delam" - icon_state = "stat_display_delam" + icon_preview = "display_normal" + icon_state = "display_normal" verb_say = "beeps" verb_ask = "bloops" verb_exclaim = "blares" @@ -41,6 +48,10 @@ DEFINE_BITFIELD(sign_features, list( custom_materials = list(/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 4, /datum/material/alloy/titaniumglass = SHEET_MATERIAL_AMOUNT * 4) /// What statistics we want the sign to display var/sign_features = DISPLAY_DELAM + /// Delam digits color + var/delam_display_color = COLOR_DISPLAY_YELLOW + /// Tram hits digits color + var/tram_display_color = COLOR_DISPLAY_BLUE /// Tram hits before hazard warning var/hit_threshold = 0 /// Tram hits @@ -49,49 +60,88 @@ DEFINE_BITFIELD(sign_features, list( var/last_delam = 0 /// Delam record high-score var/delam_record = 0 - -/obj/machinery/incident_display/dual - name = NAME_DUAL - desc = DESC_DUAL - icon_preview = "stat_display_dual" - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + /// If the display is currently running live updated content + var/live_display = FALSE + /// The default advert to show on this display + var/configured_advert + /// Duration of the advert set on this display + var/configured_advert_duration + /// How often to show an advert + var/advert_frequency = 30 SECONDS + /// Timer for sign currently showing an advert + COOLDOWN_DECLARE(active_advert) + /// Cooldown until next advert + COOLDOWN_DECLARE(advert_cooldown) + +/obj/machinery/incident_display/bridge /obj/machinery/incident_display/delam name = NAME_DELAM desc = DESC_DELAM - icon_preview = "stat_display_delam" - icon_state = "stat_display_delam" sign_features = DISPLAY_DELAM + configured_advert = "advert_meson" + configured_advert_duration = 7 SECONDS /obj/machinery/incident_display/tram name = NAME_TRAM desc = DESC_TRAM - icon_preview = "stat_display_tram" - icon_state = "stat_display_tram" sign_features = DISPLAY_TRAM -MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display, 32) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/bridge, 32) MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/delam, 32) -MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/dual, 32) MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) /obj/machinery/incident_display/Initialize(mapload) ..() + register_context() return INITIALIZE_HINT_LATELOAD /obj/machinery/incident_display/post_machine_initialize() . = ..() - GLOB.map_delamination_counters += src + GLOB.map_incident_displays += src update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) RegisterSignal(SStransport, COMSIG_TRAM_COLLISION, PROC_REF(update_tram_count)) update_appearance() /obj/machinery/incident_display/Destroy() - GLOB.map_delamination_counters -= src + GLOB.map_incident_displays -= src return ..() +/obj/machinery/incident_display/process() + if(!isnull(configured_advert) && COOLDOWN_FINISHED(src, advert_cooldown))// time to show an advert + show_advert(advert = configured_advert, duration = configured_advert_duration) + COOLDOWN_START(src, advert_cooldown, rand(advert_frequency - 5 SECONDS, advert_frequency + 5 SECONDS)) + return + + if(!live_display) // displaying static content, no processing required + return + + if(machine_stat & (NOPOWER|BROKEN|MAINT)) + return + + if(COOLDOWN_FINISHED(src, active_advert)) // advert finished, revert to static content + COOLDOWN_RESET(src, active_advert) + live_display = FALSE + update_appearance() + +/obj/machinery/incident_display/add_context(atom/source, list/context, obj/item/held_item, mob/user) + if(!isliving(user)) + return + + var/mob/living/living_user = user + + if(held_item?.tool_behaviour == TOOL_WELDER && !living_user.combat_mode && atom_integrity < max_integrity) + context[SCREENTIP_CONTEXT_LMB] = "repair display" + + if(held_item?.tool_behaviour == TOOL_MULTITOOL && !living_user.combat_mode) + if(sign_features == DISPLAY_TRAM) + context[SCREENTIP_CONTEXT_LMB] = "change to delam mode" + else + context[SCREENTIP_CONTEXT_LMB] = "change to tram mode" + + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/incident_display/welder_act(mob/living/user, obj/item/tool) if(user.combat_mode) return FALSE @@ -101,7 +151,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) return TRUE balloon_alert(user, "repairing display...") - if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume=50)) + if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume = 50)) return TRUE balloon_alert(user, "repaired") @@ -117,35 +167,22 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) if(sign_features == DISPLAY_TRAM) tool.play_tool_sound(src) - balloon_alert(user, "set to dual") - name = NAME_DUAL - desc = DESC_DUAL - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + balloon_alert(user, "set to delam") + name = NAME_DELAM + desc = DESC_DELAM + sign_features = DISPLAY_DELAM update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) - update_tram_count(src, SSpersistence.tram_hits_this_round) update_appearance() return TRUE - else if(sign_features == DISPLAY_DELAM) + else tool.play_tool_sound(src) balloon_alert(user, "set to tram") name = NAME_TRAM desc = DESC_TRAM - icon_state = "stat_display_tram" sign_features = DISPLAY_TRAM update_tram_count(src, SSpersistence.tram_hits_this_round) update_appearance() return TRUE - else if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) - tool.play_tool_sound(src) - balloon_alert(user, "set to delam") - name = NAME_DELAM - desc = DESC_DELAM - icon_state = "stat_display_delam" - sign_features = DISPLAY_DELAM - update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) - update_appearance() - return TRUE // EMP causes the display to display random numbers or outright break. /obj/machinery/incident_display/emp_act(severity) @@ -154,14 +191,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) set_machine_stat(machine_stat | BROKEN) update_appearance() return - name = NAME_DUAL - desc = DESC_DUAL - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + hit_threshold = rand(1,99) hit_count = rand(1,99) - last_delam = rand(1,99) - delam_record = rand(1,99) + + if(prob(33)) + last_delam = 0 + delam_record = 0 + else + last_delam = rand(1,99) + delam_record = rand(1,99) + update_appearance() /obj/machinery/incident_display/on_deconstruction(disassembled) @@ -169,159 +209,165 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) new /obj/item/shard(drop_location()) new /obj/item/shard(drop_location()) +/** + * Update the delamination count on the display + * + * Use the provided args to update the incident display when in delam mode. + * Arguments: + * * new_count - number of shifts without a delam + * * record - current high score for the delam count + */ /obj/machinery/incident_display/proc/update_delam_count(new_count, record) delam_record = record last_delam = min(new_count, 199) update_appearance() +/** + * Update the tram hit count on the display + * + * Sign receives a signal from SStransport that the tram has hit someone, and updates the count. + * Arguments: + * * source - hopefully is the transport subsystem + * * tram_collisions - current number of tram hits + */ /obj/machinery/incident_display/proc/update_tram_count(source, tram_collisions) SIGNAL_HANDLER hit_count = min(tram_collisions, 199) update_appearance() -/obj/machinery/incident_display/update_appearance(updates=ALL) +/** + * Run an animated advert on the display + * + * Arguments: + * * advert - icon state to flick to + * * duration - length of the advert animation + */ +/obj/machinery/incident_display/proc/show_advert(advert, duration = 7 SECONDS) + COOLDOWN_START(src, active_advert, duration) + live_display = TRUE + update_appearance() + flick(advert, src) + +/obj/machinery/incident_display/update_appearance(updates = ALL) . = ..() if(machine_stat & NOPOWER) - icon_state = "stat_display_blank" + icon_state = "display_normal" set_light(l_on = FALSE) return - - if(machine_stat & BROKEN) - icon_state = "stat_display_broken" - else if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) - icon_state = "stat_display_dual" - else if(sign_features == DISPLAY_DELAM) - icon_state = "stat_display_delam" - else if(sign_features == DISPLAY_TRAM) - icon_state = "stat_display_tram" - - set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_FAINT_CYAN, l_on = TRUE) + else if(machine_stat & BROKEN) + icon_state = "display_broken" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_NORMAL, l_on = TRUE) + else if((sign_features & DISPLAY_DELAM) && last_delam <= 0) // you done fucked up + icon_state = "display_shame" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_SHAME, l_on = TRUE) + else + icon_state = "display_normal" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_NORMAL, l_on = TRUE) /obj/machinery/incident_display/update_overlays() . = ..() if(machine_stat & (NOPOWER|BROKEN)) return - var/mutable_appearance/moff_base_emissive = emissive_appearance(icon, "moff_base_emissive", src, alpha = src.alpha) - . += moff_base_emissive + . += emissive_appearance(icon, "display_emissive", src, alpha = DISPLAY_BASE_ALPHA) + + if(COOLDOWN_STARTED(src, active_advert)) // we don't show the static content during adverts + return if(sign_features & DISPLAY_DELAM) - var/mutable_appearance/delam_base_emissive = emissive_appearance(icon, "delam_base_emissive", src, alpha = src.alpha) - var/delam_display_color - . += delam_base_emissive - if(last_delam <= 0) - delam_display_color = COLOR_DISPLAY_RED - else - delam_display_color = COLOR_DISPLAY_YELLOW + . += mutable_appearance(icon, "overlay_delam") + . += emissive_appearance(icon, "overlay_delam", src, alpha = DISPLAY_PIXEL_ALPHA) var/delam_pos1 = clamp(last_delam, 0, 199) % 10 var/mutable_appearance/delam_pos1_overlay = mutable_appearance(icon, "num_[delam_pos1]") - var/mutable_appearance/delam_pos1_emissive = emissive_appearance(icon, "num_[delam_pos1]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_pos1_emissive = emissive_appearance(icon, "num_[delam_pos1]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_pos1_overlay.color = delam_display_color - delam_pos1_overlay.pixel_w = 9 - delam_pos1_emissive.pixel_w = 9 - delam_pos1_overlay.pixel_z = 4 - delam_pos1_emissive.pixel_z = 4 + delam_pos1_overlay.pixel_w = DISPLAY_PIXEL_1_W + delam_pos1_emissive.pixel_w = DISPLAY_PIXEL_1_W + delam_pos1_overlay.pixel_z = DISPLAY_PIXEL_1_Z + delam_pos1_emissive.pixel_z = DISPLAY_PIXEL_1_Z . += delam_pos1_overlay . += delam_pos1_emissive var/delam_pos2 = (clamp(last_delam, 0, 199) / 10) % 10 var/mutable_appearance/delam_pos2_overlay = mutable_appearance(icon, "num_[delam_pos2]") - var/mutable_appearance/delam_pos2_emissive = emissive_appearance(icon, "num_[delam_pos2]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_pos2_emissive = emissive_appearance(icon, "num_[delam_pos2]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_pos2_overlay.color = delam_display_color - delam_pos2_overlay.pixel_w = 4 - delam_pos2_emissive.pixel_w = 4 - delam_pos2_overlay.pixel_z = 4 - delam_pos2_emissive.pixel_z = 4 + delam_pos2_overlay.pixel_w = DISPLAY_PIXEL_2_W + delam_pos2_emissive.pixel_w = DISPLAY_PIXEL_2_W + delam_pos2_overlay.pixel_z = DISPLAY_PIXEL_2_Z + delam_pos2_emissive.pixel_z = DISPLAY_PIXEL_2_Z . += delam_pos2_overlay . += delam_pos2_emissive if(last_delam >= 100) - var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_red") - var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_red", src, alpha = src.alpha) - . += there_i_fixed_it_overlay - . += there_i_fixed_it_emissive + . += mutable_appearance(icon, "num_100_red") + . += emissive_appearance(icon, "num_100_red", src, alpha = DISPLAY_BASE_ALPHA) if(last_delam == delam_record) var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_RISING) - var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_RISING]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_trend_overlay.color = COLOR_DISPLAY_GREEN - delam_trend_overlay.pixel_w = 1 - delam_trend_emissive.pixel_w = 1 - delam_trend_overlay.pixel_z = 6 - delam_trend_emissive.pixel_z = 6 . += delam_trend_overlay . += delam_trend_emissive else var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_FALLING) - var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_trend_overlay.color = COLOR_DISPLAY_RED - delam_trend_overlay.pixel_w = 1 - delam_trend_emissive.pixel_w = 1 - delam_trend_overlay.pixel_z = 6 - delam_trend_emissive.pixel_z = 6 . += delam_trend_overlay . += delam_trend_emissive if(sign_features & DISPLAY_TRAM) - var/mutable_appearance/tram_base_emissive = emissive_appearance(icon, "tram_base_emissive", src, alpha = src.alpha) - var/tram_display_color = COLOR_DISPLAY_BLUE + . += mutable_appearance(icon, "overlay_tram") + . += emissive_appearance(icon, "overlay_tram", src, alpha = DISPLAY_PIXEL_ALPHA) var/tram_pos1 = hit_count % 10 var/mutable_appearance/tram_pos1_overlay = mutable_appearance(icon, "num_[tram_pos1]") - var/mutable_appearance/tram_pos1_emissive = emissive_appearance(icon, "num_[tram_pos1]_e", src, alpha = src.alpha) - . += tram_base_emissive + var/mutable_appearance/tram_pos1_emissive = emissive_appearance(icon, "num_[tram_pos1]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_pos1_overlay.color = tram_display_color - tram_pos1_overlay.pixel_w = 9 - tram_pos1_emissive.pixel_w = 9 - tram_pos1_overlay.pixel_z = -6 - tram_pos1_emissive.pixel_z = -6 + tram_pos1_overlay.pixel_w = DISPLAY_PIXEL_1_W + tram_pos1_emissive.pixel_w = DISPLAY_PIXEL_1_W + tram_pos1_overlay.pixel_z = DISPLAY_PIXEL_1_Z + tram_pos1_emissive.pixel_z = DISPLAY_PIXEL_1_Z . += tram_pos1_overlay . += tram_pos1_emissive var/tram_pos2 = (hit_count / 10) % 10 var/mutable_appearance/tram_pos2_overlay = mutable_appearance(icon, "num_[tram_pos2]") - var/mutable_appearance/tram_pos2_emissive = emissive_appearance(icon, "num_[tram_pos2]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_pos2_emissive = emissive_appearance(icon, "num_[tram_pos2]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_pos2_overlay.color = tram_display_color - tram_pos2_overlay.pixel_w = 4 - tram_pos2_emissive.pixel_w = 4 - tram_pos2_overlay.pixel_z = -6 - tram_pos2_emissive.pixel_z = -6 + tram_pos2_overlay.pixel_w = DISPLAY_PIXEL_2_W + tram_pos2_emissive.pixel_w = DISPLAY_PIXEL_2_W + tram_pos2_overlay.pixel_z = DISPLAY_PIXEL_2_Z + tram_pos2_emissive.pixel_z = DISPLAY_PIXEL_2_Z . += tram_pos2_overlay . += tram_pos2_emissive if(hit_count >= 100) - var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_blue") - var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_blue", src, alpha = src.alpha) - . += there_i_fixed_it_overlay - . += there_i_fixed_it_emissive + . += mutable_appearance(icon, "num_100_blue") + . += emissive_appearance(icon, "num_100_blue", src, alpha = DISPLAY_BASE_ALPHA) if(hit_count > SSpersistence.tram_hits_last_round) var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_RISING) - var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_RISING]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_trend_overlay.color = COLOR_DISPLAY_RED - tram_trend_overlay.pixel_w = 1 - tram_trend_emissive.pixel_w = 1 - tram_trend_overlay.pixel_z = -4 - tram_trend_emissive.pixel_z = -4 . += tram_trend_overlay . += tram_trend_emissive else var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_FALLING) - var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_trend_overlay.color = COLOR_DISPLAY_GREEN - tram_trend_overlay.pixel_w = 1 - tram_trend_emissive.pixel_w = 1 - tram_trend_overlay.pixel_z = -4 - tram_trend_emissive.pixel_z = -4 . += tram_trend_overlay . += tram_trend_emissive /obj/machinery/incident_display/examine(mob/user) . = ..() + if(atom_integrity < max_integrity) + . += span_notice("It can be repaired with a [EXAMINE_HINT("welder")].") if(sign_features & DISPLAY_DELAM) + . += span_notice("It can be changed to display tram hits with a [EXAMINE_HINT("multitool")].") if(last_delam >= 0) . += span_info("It has been [last_delam] shift\s since the last delamination event at this Nanotrasen facility.") switch(last_delam) @@ -339,6 +385,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) . += span_info("The supermatter crystal has delaminated, in case you didn't notice.") if(sign_features & DISPLAY_TRAM) + . += span_notice("It can be changed to display delam-free shifts with a [EXAMINE_HINT("multitool")].") . += span_info("The station has had [hit_count] tram incident\s this shift.") switch(hit_count) if(0) @@ -357,13 +404,21 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) #undef DISPLAY_DELAM #undef DISPLAY_TRAM -#undef NAME_DUAL #undef NAME_DELAM #undef NAME_TRAM -#undef DESC_DUAL #undef DESC_DELAM #undef DESC_TRAM #undef TREND_RISING #undef TREND_FALLING + +#undef DISPLAY_PIXEL_1_W +#undef DISPLAY_PIXEL_1_Z +#undef DISPLAY_PIXEL_2_W +#undef DISPLAY_PIXEL_2_Z +#undef DISPLAY_BASE_ALPHA +#undef DISPLAY_PIXEL_ALPHA + +#undef LIGHT_COLOR_NORMAL +#undef LIGHT_COLOR_SHAME diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 391cf38b74b7d..8733ca548632e 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -98,7 +98,7 @@ /// Updates diagnostic huds /obj/machinery/launchpad/proc/update_hud() var/image/holder = hud_list[DIAG_LAUNCHPAD_HUD] - var/mutable_appearance/target = mutable_appearance('icons/effects/effects.dmi', "launchpad_target", ABOVE_OPEN_TURF_LAYER, src, GAME_PLANE) + var/mutable_appearance/target = mutable_appearance('icons/effects/effects.dmi', "launchpad_target", ABOVE_NORMAL_TURF_LAYER, src, GAME_PLANE) holder.appearance = target update_indicator() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 9e926d9a84189..80289a201be98 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -53,6 +53,9 @@ Buildable meters /obj/item/pipe/directional/he_exchanger icon_state_preview = "heunary" pipe_type = /obj/machinery/atmospherics/components/unary/heat_exchanger +/obj/item/pipe/directional/airlock_pump + icon_state_preview = "airlock_pump" + pipe_type = /obj/machinery/atmospherics/components/unary/airlock_pump /obj/item/pipe/binary RPD_type = PIPE_STRAIGHT /obj/item/pipe/binary/layer_adapter @@ -120,8 +123,8 @@ Buildable meters return ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/ghettojetpack, /datum/crafting_recipe/pipegun, /datum/crafting_recipe/smoothbore_disabler, /datum/crafting_recipe/improvised_pneumatic_cannon) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scanner_gate.dm similarity index 80% rename from code/game/machinery/scan_gate.dm rename to code/game/machinery/scanner_gate.dm index 3986b109ffc7d..860a5b1bc05b1 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scanner_gate.dm @@ -5,6 +5,7 @@ #define SCANGATE_WANTED "Wanted" #define SCANGATE_SPECIES "Species" #define SCANGATE_NUTRITION "Nutrition" +#define SCANGATE_CONTRABAND "Contraband" #define SCANGATE_HUMAN "human" #define SCANGATE_LIZARD "lizard" @@ -29,7 +30,7 @@ var/next_beep = 0 ///Bool to check if the scanner's controls are locked by an ID. var/locked = FALSE - ///Which setting is the scanner checking for? See defines in scan_gate.dm for the list. + ///Which setting is the scanner checking for? See defines in scanner_gate.dm for the list. var/scangate_mode = SCANGATE_NONE ///Is searching for a disease, what severity is enough to trigger the gate? var/disease_threshold = DISEASE_SEVERITY_MINOR @@ -45,6 +46,8 @@ var/light_fail = FALSE ///Does the scanner ignore light_pass and light_fail for sending signals? var/ignore_signals = FALSE + ///Is an n-spect scanner attached to the gate? Enables contraband scanning. + var/obj/item/inspector/n_spect = null /obj/machinery/scanner_gate/Initialize(mapload) @@ -55,18 +58,37 @@ COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) + register_context() /obj/machinery/scanner_gate/Destroy() qdel(wires) set_wires(null) . = ..() +/obj/machinery/scanner_gate/atom_deconstruct(disassembled) + . = ..() + if(n_spect) + n_spect.forceMove(drop_location()) + n_spect = null + /obj/machinery/scanner_gate/examine(mob/user) . = ..() if(locked) . += span_notice("The control panel is ID-locked. Swipe a valid ID to unlock it.") else . += span_notice("The control panel is unlocked. Swipe an ID to lock it.") + if(n_spect) + . += span_notice("The scanner is equipped with an N-Spect scanner. Use a [span_boldnotice("crowbar")] to uninstall.") + +/obj/machinery/scanner_gate/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(n_spect && held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Remove N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + if(!n_spect && istype(held_item, /obj/item/inspector)) + context[SCREENTIP_CONTEXT_LMB] = "Install N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER @@ -83,6 +105,19 @@ if(duration) scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) +/obj/machinery/scanner_gate/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/inspector)) + if(n_spect) + to_chat(user, span_warning("The scanner is already equipped with an N-Spect scanner.")) + return ITEM_INTERACT_BLOCKING + else + to_chat(user, span_notice("You install an N-Spect scanner on [src].")) + n_spect = tool + if(!user.transferItemToLoc(tool, src)) + return ITEM_INTERACT_BLOCKING + return ITEM_INTERACT_SUCCESS + return NONE + /obj/machinery/scanner_gate/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/card = W.GetID() if(card) @@ -105,6 +140,20 @@ wires.interact(user) return ..() +/obj/machinery/scanner_gate/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(n_spect) + to_chat(user, span_notice("You uninstall [n_spect] from [src].")) + n_spect.forceMove(drop_location()) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/scanner_gate/Exited(atom/gone) + . = ..() + if(gone == n_spect) + n_spect = null + if(scangate_mode == SCANGATE_CONTRABAND) + scangate_mode = SCANGATE_NONE + /obj/machinery/scanner_gate/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) return FALSE @@ -175,6 +224,13 @@ beep = TRUE if(H.nutrition >= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_FAT) beep = TRUE + if(SCANGATE_CONTRABAND) + for(var/obj/item/content in M.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + if(content.is_contraband()) + beep = TRUE + break + if(!n_spect.scans_correctly) + beep = !beep //We do a little trolling if(reverse) beep = !beep @@ -222,6 +278,7 @@ data["disease_threshold"] = disease_threshold data["target_species"] = detect_species data["target_nutrition"] = detect_nutrition + data["contraband_enabled"] = !!n_spect return data /obj/machinery/scanner_gate/ui_act(action, params) @@ -271,6 +328,7 @@ #undef SCANGATE_WANTED #undef SCANGATE_SPECIES #undef SCANGATE_NUTRITION +#undef SCANGATE_CONTRABAND #undef SCANGATE_HUMAN #undef SCANGATE_LIZARD diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index a74d7456ed8ef..1c69dbecb7ea0 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -2,7 +2,7 @@ #define HEATER_MODE_HEAT "heat" #define HEATER_MODE_COOL "cool" #define HEATER_MODE_AUTO "auto" -#define BASE_HEATING_ENERGY (STANDARD_CELL_RATE * 0.1) +#define BASE_HEATING_ENERGY (STANDARD_CELL_RATE * 4) /obj/machinery/space_heater anchored = FALSE @@ -32,7 +32,7 @@ ///How much heat/cold we can deliver var/heating_energy = BASE_HEATING_ENERGY ///How efficiently we can deliver that heat/cold (higher indicates less cell consumption) - var/efficiency = 20 + var/efficiency = 200 ///The amount of degrees above and below the target temperature for us to change mode to heater or cooler var/temperature_tolerance = 1 ///What's the middle point of our settable temperature (30 °C) @@ -178,8 +178,8 @@ heating_energy = laser * BASE_HEATING_ENERGY - settable_temperature_range = cap * 30 - efficiency = (cap + 1) * 10 + settable_temperature_range = cap * initial(settable_temperature_range) + efficiency = (cap + 1) * initial(efficiency) * 0.5 target_temperature = clamp(target_temperature, max(settable_temperature_median - settable_temperature_range, TCMB), diff --git a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm index c57a629d85c2b..27c02fb9d1806 100644 --- a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm +++ b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm @@ -24,7 +24,7 @@ if(!COOLDOWN_FINISHED(src, pulse_cooldown)) return - new /obj/effect/temp_visual/bioscrambler_wave(get_turf(src)) + new /obj/effect/temp_visual/circle_wave/bioscrambler(get_turf(src)) playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) COOLDOWN_START(src, pulse_cooldown, pulse_delay) for(var/mob/living/carbon/nearby in hearers(range, src)) @@ -81,18 +81,26 @@ return /// Visual effect spawned when the bioscrambler scrambles your bio -/obj/effect/temp_visual/bioscrambler_wave +/obj/effect/temp_visual/circle_wave icon = 'icons/effects/64x64.dmi' icon_state = "circle_wave" pixel_x = -16 pixel_y = -16 duration = 0.5 SECONDS color = COLOR_LIME + var/max_alpha = 255 -/obj/effect/temp_visual/bioscrambler_wave/Initialize(mapload) +/obj/effect/temp_visual/circle_wave/Initialize(mapload) transform = matrix().Scale(0.1) animate(src, transform = matrix().Scale(2), time = duration, flags = ANIMATION_PARALLEL) - animate(src, alpha = 255, time = duration * 0.6, flags = ANIMATION_PARALLEL) + animate(src, alpha = max_alpha, time = duration * 0.6, flags = ANIMATION_PARALLEL) animate(alpha = 0, time = duration * 0.4) apply_wibbly_filters(src) return ..() + +/obj/effect/temp_visual/circle_wave/bioscrambler + color = COLOR_LIME + +/obj/effect/temp_visual/circle_wave/bioscrambler/light + max_alpha = 128 + diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm index d07ced626dbc5..d1267c59c747c 100644 --- a/code/game/objects/effects/blessing.dm +++ b/code/game/objects/effects/blessing.dm @@ -12,7 +12,7 @@ for(var/obj/effect/blessing/B in loc) if(B != src) return INITIALIZE_HINT_QDEL - var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "blessed", layer = ABOVE_OPEN_TURF_LAYER, loc = src) + var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "blessed", layer = ABOVE_NORMAL_TURF_LAYER, loc = src) I.alpha = 64 I.appearance_flags = RESET_ALPHA add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessed_aware, "blessing", I) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 21eff5028b57e..b6837df6f9546 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -1,5 +1,6 @@ /obj/effect/decal/cleanable gender = PLURAL + plane = GAME_PLANE layer = FLOOR_CLEAN_LAYER var/list/random_icon_states = null ///I'm sorry but cleanable/blood code is ass, and so is blood_DNA diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 0f4c9dee3127f..062ba3837230b 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -296,7 +296,7 @@ /obj/effect/decal/cleanable/blood/footprints/update_icon() . = ..() - alpha = min(BLOODY_FOOTPRINT_BASE_ALPHA + (255 - BLOODY_FOOTPRINT_BASE_ALPHA) * bloodiness / (BLOOD_ITEM_MAX / 2), 255) + alpha = max(BLOODY_FOOTPRINT_BASE_ALPHA, min(255 * (bloodiness / 15), 255)) //Cache of bloody footprint images //Key: diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 04da0c517b0a6..f3fbf0b817caa 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -458,7 +458,6 @@ COMSIG_TURF_MOVABLE_THROW_LANDED = PROC_REF(ignition_trigger), ) AddElement(/datum/element/connect_loc, ignition_trigger_connections) - RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) for(var/obj/effect/decal/cleanable/fuel_pool/pool in get_turf(src)) //Can't use locate because we also belong to that turf if(pool == src) continue @@ -468,6 +467,15 @@ if(burn_stacks) burn_amount = max(min(burn_stacks, 10), 1) + return INITIALIZE_HINT_LATELOAD + +// Just in case of fires, do this after mapload. +/obj/effect/decal/cleanable/fuel_pool/LateInitialize() +// We don't want to burn down the create_and_destroy test area +#ifndef UNIT_TESTS + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) +#endif + /obj/effect/decal/cleanable/fuel_pool/fire_act(exposed_temperature, exposed_volume) . = ..() ignite() diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 941034ec511be..646713a21d74a 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -1,5 +1,6 @@ /obj/effect/decal name = "decal" + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE anchored = TRUE resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm index dcd4e39189c87..f48f0979083e3 100644 --- a/code/game/objects/effects/phased_mob.dm +++ b/code/game/objects/effects/phased_mob.dm @@ -84,6 +84,10 @@ return var/area/destination_area = newloc.loc movedelay = world.time + movespeed + + if(SEND_SIGNAL(src, COMSIG_MOB_PHASED_CHECK, user, newloc) & COMPONENT_BLOCK_PHASED_MOVE) + return null + if(newloc.turf_flags & NOJAUNT) to_chat(user, span_warning("Some strange aura is blocking the way.")) return diff --git a/code/game/objects/effects/posters/contraband.dm b/code/game/objects/effects/posters/contraband.dm index 52528c251b659..04bc790daea83 100644 --- a/code/game/objects/effects/posters/contraband.dm +++ b/code/game/objects/effects/posters/contraband.dm @@ -4,6 +4,10 @@ poster_type = /obj/structure/sign/poster/contraband/random icon_state = "rolled_poster" +/obj/item/poster/random_contraband/Initialize(mapload, obj/structure/sign/poster/new_poster_structure) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/structure/sign/poster/contraband poster_item_name = "contraband poster" poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities." diff --git a/code/game/objects/effects/spawners/random/clothing.dm b/code/game/objects/effects/spawners/random/clothing.dm index e3193b05836d8..119697c53171b 100644 --- a/code/game/objects/effects/spawners/random/clothing.dm +++ b/code/game/objects/effects/spawners/random/clothing.dm @@ -211,7 +211,7 @@ /obj/item/clothing/head/costume/lobsterhat, /obj/item/clothing/head/costume/cardborg, /obj/item/clothing/head/costume/football_helmet, - /obj/item/clothing/head/costume/tv_head/fov_less, + /obj/item/clothing/head/costume/tv_head, /obj/item/clothing/head/costume/tmc, /obj/item/clothing/head/costume/deckers, /obj/item/clothing/head/costume/yuri, diff --git a/code/game/objects/effects/spawners/random/contraband.dm b/code/game/objects/effects/spawners/random/contraband.dm index f17656c61191a..c32d46125c019 100644 --- a/code/game/objects/effects/spawners/random/contraband.dm +++ b/code/game/objects/effects/spawners/random/contraband.dm @@ -25,6 +25,12 @@ /obj/item/reagent_containers/pill/maintenance = 5, ) + +/obj/effect/spawner/random/contraband/make_item(spawn_loc, type_path_to_make) + var/obj/item/made = ..() + ADD_TRAIT(made, TRAIT_CONTRABAND, INNATE_TRAIT) + return made + /obj/effect/spawner/random/contraband/plus name = "contraband loot spawner plus" desc = "Where'd ya find this?" diff --git a/code/game/objects/effects/spawners/random/maintenance.dm b/code/game/objects/effects/spawners/random/maintenance.dm index 38f8af6a90269..e5bebdef672f1 100644 --- a/code/game/objects/effects/spawners/random/maintenance.dm +++ b/code/game/objects/effects/spawners/random/maintenance.dm @@ -2,14 +2,17 @@ name = "maintenance loot spawner" desc = "Come on Lady Luck, spawn me a pair of sunglasses." icon_state = "loot" + remove_if_cant_spawn = FALSE //don't remove stuff from the global maint list, which other can use. // see code/_globalvars/lists/maintenance_loot.dm for loot table /// A subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such /// decals such as ashes will cause NeverShouldHaveComeHere() to fail on such turfs, which creates annoying rng based CI failures /obj/effect/spawner/random/maintenance/no_decals -/obj/effect/spawner/random/maintenance/no_decals/can_spawn(atom/loot) - return !ispath(loot, /obj/effect/decal) +/obj/effect/spawner/random/maintenance/no_decals/can_spawn(loot) + if(ispath(loot, /obj/effect/decal)) + return FALSE + return ..() /obj/effect/spawner/random/maintenance/examine(mob/user) . = ..() @@ -19,6 +22,14 @@ loot = GLOB.maintenance_loot return ..() +/obj/effect/spawner/random/maintenance/skew_loot_weights(list/loot_list, exponent) + ///We only need to skew the weights once, since it's a global list used by all maint spawners. + var/static/already_done = FALSE + if(loot_list == GLOB.maintenance_loot && already_done) + return + already_done = TRUE + return ..() + /obj/effect/spawner/random/maintenance/proc/hide() SetInvisibility(INVISIBILITY_OBSERVER) alpha = 100 diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm index 2c98ba72a4eef..9614c4a17813c 100644 --- a/code/game/objects/effects/spawners/random/random.dm +++ b/code/game/objects/effects/spawners/random/random.dm @@ -29,6 +29,8 @@ var/spawn_scatter_radius = 0 /// Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y) var/spawn_random_offset = FALSE + /// Whether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason. + var/remove_if_cant_spawn = TRUE /obj/effect/spawner/random/Initialize(mapload) . = ..() @@ -52,13 +54,17 @@ if(loot_subtype_path) loot += subtypesof(loot_subtype_path) + if(CONFIG_GET(number/random_loot_weight_modifier) != 1) + skew_loot_weights(loot, CONFIG_GET(number/random_loot_weight_modifier)) + if(loot?.len) var/loot_spawned = 0 var/pixel_divider = FLOOR(16 / spawn_loot_split_pixel_offsets, 1) // 16 pixels offsets is max that should be allowed in any direction while((spawn_loot_count-loot_spawned) && loot.len) var/lootspawn = pick_weight_recursive(loot) if(!can_spawn(lootspawn)) - loot.Remove(lootspawn) + if(remove_if_cant_spawn) + loot.Remove(lootspawn) continue if(!spawn_loot_double) loot.Remove(lootspawn) @@ -85,6 +91,22 @@ spawned_loot.pixel_y = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) loot_spawned++ +///Levels out the weights of loot if lower than 1, or makes rarer spawns even more rare. +/obj/effect/spawner/random/proc/skew_loot_weights(list/loot_list, exponent) + ///This helps keeping the modified weights more or less correct, since pick_weight doesn't appreciate decimals. + var/precision = 1 + if(exponent < 1) + precision = round((1 - exponent) * 10) + 1 + for(var/loot_type in loot_list) + if(islist(loot_type)) + skew_loot_weights(loot_type, exponent) + var/loot_weight = loot_list[loot_type] + if(loot_weight <= 1) + if(exponent < 1) + loot_list[loot_type] = precision + continue + loot_list[loot_type] = round(loot_weight ** exponent * precision, 1) + /** * Makes the actual item related to our spawner. * diff --git a/code/game/objects/effects/spawners/random/structure.dm b/code/game/objects/effects/spawners/random/structure.dm index b6af49275028b..359c147eb4fb5 100644 --- a/code/game/objects/effects/spawners/random/structure.dm +++ b/code/game/objects/effects/spawners/random/structure.dm @@ -2,6 +2,15 @@ name = "structure spawner" desc = "Now you see me, now you don't..." +///12% chance to spawn a ouija board, or a potted plant. Btw, Wawastation has a guaranteed board. +/obj/effect/spawner/random/structure/twelve_percent_spirit_board + name = "12% spirit board" + icon_state = "spirit_board" + loot = list( + /obj/structure/spirit_board = 3, + /obj/item/kirbyplants/random = 22, + ) + /obj/effect/spawner/random/structure/crate name = "crate spawner" icon_state = "crate_secure" diff --git a/code/game/objects/effects/temporary_visuals/cult.dm b/code/game/objects/effects/temporary_visuals/cult.dm index a53d4df9b925a..caeede1ec2096 100644 --- a/code/game/objects/effects/temporary_visuals/cult.dm +++ b/code/game/objects/effects/temporary_visuals/cult.dm @@ -49,6 +49,7 @@ /obj/effect/temp_visual/cult/turf/floor icon_state = "floorglow" duration = 5 + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE /obj/effect/temp_visual/cult/portal diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index d132dd53da8c4..9cb926fd19756 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -709,3 +709,29 @@ flags = ANIMATION_RELATIVE, ) return ..() + +/obj/effect/temp_visual/mech_sparks + name = "mech sparks" + icon_state = "mech_sparks" + duration = 0.4 SECONDS + +/obj/effect/temp_visual/mech_sparks/Initialize(mapload, set_color) + . = ..() + pixel_x = rand(-16, 16) + pixel_y = rand(-8, 8) + +/obj/effect/temp_visual/mech_attack_aoe_charge + name = "mech attack aoe charge" + icon = 'icons/effects/96x96.dmi' + icon_state = "mech_attack_aoe_charge" + duration = 1 SECONDS + pixel_x = -32 + pixel_y = -32 + +/obj/effect/temp_visual/mech_attack_aoe_attack + name = "mech attack aoe attack" + icon = 'icons/effects/96x96.dmi' + icon_state = "mech_attack_aoe_attack" + duration = 0.5 SECONDS + pixel_x = -32 + pixel_y = -32 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 18fed35de4533..580e1becf2519 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -79,6 +79,8 @@ var/pickup_sound ///Sound uses when dropping the item, or when its thrown. var/drop_sound + ///Do the drop and pickup sounds vary? + var/sound_vary = FALSE ///Whether or not we use stealthy audio levels for this item's attack sounds var/stealthy_audio = FALSE ///Sound which is produced when blocking an attack @@ -163,8 +165,10 @@ ///the icon to indicate this object is being dragged mouse_drag_pointer = MOUSE_ACTIVE_POINTER - ///Does it embed and if yes, what kind of embed - var/list/embedding + /// Does it embed and if yes, what kind of embed + var/embed_type + /// Stores embedding data + var/datum/embed_data/embed_data ///for flags such as [GLASSESCOVERSEYES] var/flags_cover = 0 @@ -263,8 +267,8 @@ add_weapon_description() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_ITEM, src) - if(LAZYLEN(embedding)) - updateEmbedding() + if(get_embed()) + AddElement(/datum/element/embed) setup_reskinning() @@ -675,7 +679,7 @@ item_flags &= ~IN_INVENTORY SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(!silent) - playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, drop_sound, DROP_SOUND_VOLUME, vary = sound_vary, ignore_walls = FALSE) user?.update_equipment_speed_mods() /// called just as an item is picked up (loc is not yet changed) @@ -1246,9 +1250,11 @@ return owner.dropItemToGround(src) ///Does the current embedding var meet the criteria for being harmless? Namely, does it have a pain multiplier and jostle pain mult of 0? If so, return true. -/obj/item/proc/isEmbedHarmless() - if(embedding) - return !isnull(embedding["pain_mult"]) && !isnull(embedding["jostle_pain_mult"]) && embedding["pain_mult"] == 0 && embedding["jostle_pain_mult"] == 0 +/obj/item/proc/is_embed_harmless() + if (!get_embed()) + return FALSE + + return !isnull(embed_data.pain_mult) && !isnull(embed_data.jostle_pain_mult) && embed_data.pain_mult == 0 && embed_data.jostle_pain_mult == 0 ///In case we want to do something special (like self delete) upon failing to embed in something. /obj/item/proc/failedEmbed() @@ -1281,11 +1287,13 @@ /obj/item/proc/tryEmbed(atom/target, forced=FALSE) if(!isbodypart(target) && !iscarbon(target)) return NONE - if(!forced && !LAZYLEN(embedding)) + + if(!forced && !get_embed()) return NONE if(SEND_SIGNAL(src, COMSIG_EMBED_TRY_FORCE, target = target, forced = forced)) return COMPONENT_EMBED_SUCCESS + failedEmbed() ///For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it. @@ -1293,29 +1301,6 @@ SEND_SIGNAL(src, COMSIG_ITEM_DISABLE_EMBED) return -///For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/var/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item. -/obj/item/proc/updateEmbedding() - SHOULD_CALL_PARENT(TRUE) - - SEND_SIGNAL(src, COMSIG_ITEM_EMBEDDING_UPDATE) - if(!LAZYLEN(embedding)) - disableEmbedding() - return - - AddElement(/datum/element/embed,\ - embed_chance = (!isnull(embedding["embed_chance"]) ? embedding["embed_chance"] : EMBED_CHANCE),\ - fall_chance = (!isnull(embedding["fall_chance"]) ? embedding["fall_chance"] : EMBEDDED_ITEM_FALLOUT),\ - pain_chance = (!isnull(embedding["pain_chance"]) ? embedding["pain_chance"] : EMBEDDED_PAIN_CHANCE),\ - pain_mult = (!isnull(embedding["pain_mult"]) ? embedding["pain_mult"] : EMBEDDED_PAIN_MULTIPLIER),\ - remove_pain_mult = (!isnull(embedding["remove_pain_mult"]) ? embedding["remove_pain_mult"] : EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER),\ - rip_time = (!isnull(embedding["rip_time"]) ? embedding["rip_time"] : EMBEDDED_UNSAFE_REMOVAL_TIME),\ - ignore_throwspeed_threshold = (!isnull(embedding["ignore_throwspeed_threshold"]) ? embedding["ignore_throwspeed_threshold"] : FALSE),\ - impact_pain_mult = (!isnull(embedding["impact_pain_mult"]) ? embedding["impact_pain_mult"] : EMBEDDED_IMPACT_PAIN_MULTIPLIER),\ - jostle_chance = (!isnull(embedding["jostle_chance"]) ? embedding["jostle_chance"] : EMBEDDED_JOSTLE_CHANCE),\ - jostle_pain_mult = (!isnull(embedding["jostle_pain_mult"]) ? embedding["jostle_pain_mult"] : EMBEDDED_JOSTLE_PAIN_MULTIPLIER),\ - pain_stam_pct = (!isnull(embedding["pain_stam_pct"]) ? embedding["pain_stam_pct"] : EMBEDDED_PAIN_STAM_PCT)) - return TRUE - /// How many different types of mats will be counted in a bite? #define MAX_MATS_PER_BITE 2 @@ -1733,6 +1718,32 @@ SEND_SIGNAL(loc, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, src, old_w_class, new_w_class) return TRUE +/** + * Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. + * Returns true when an item has the contraband trait, or is included in the traitor uplink. + */ +/obj/item/proc/is_contraband() + if(HAS_TRAIT(src, TRAIT_CONTRABAND)) + return TRUE + for(var/datum/uplink_item/traitor_item as anything in SStraitor.uplink_items) + if(istype(src, traitor_item.item)) + if(!(traitor_item.uplink_item_flags & SYNDIE_TRIPS_CONTRABAND)) + return FALSE + return TRUE + return FALSE + +/// Fetches embedding data +/obj/item/proc/get_embed() + RETURN_TYPE(/datum/embed_data) + return embed_type ? (embed_data ||= get_embed_by_type(embed_type)) : embed_data + +/obj/item/proc/set_embed(datum/embed_data/embed) + if(embed_data == embed) + return + if(!GLOB.embed_by_type[embed_data?.type]) + qdel(embed_data) + embed_data = ispath(embed) ? get_embed_by_type(armor) : embed + SEND_SIGNAL(src, COMSIG_ITEM_EMBEDDING_UPDATE) /** * Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 32ad7f8845de3..fe1f6b7495bda 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -321,6 +321,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM return lit = TRUE + playsound(src.loc, 'sound/items/cig_light.ogg', 100, 1) make_cig_smoke() if(!(flags_1 & INITIALIZED_1)) update_appearance(UPDATE_ICON) @@ -369,6 +370,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM STOP_PROCESSING(SSobj, src) reagents.flags |= NO_REACT lit = FALSE + playsound(src.loc, 'sound/items/cig_snuff.ogg', 100, 1) update_appearance(UPDATE_ICON) if(ismob(loc)) to_chat(loc, span_notice("Your [name] goes out.")) @@ -916,11 +918,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM span_notice("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow."), span_notice("You quietly shut off [src] without even looking at what you're doing. Wow.") ) + playsound(src.loc , 'sound/items/zippo_off.ogg', 100, 1) else user.visible_message( span_notice("[user] quietly shuts off [src]."), span_notice("You quietly shut off [src].") ) + playsound(src.loc , 'sound/items/lighter_off.ogg', 100, 1) return set_lit(TRUE) @@ -929,7 +933,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM span_notice("Without even breaking stride, [user] flips open and lights [src] in one smooth movement."), span_notice("Without even breaking stride, you flip open and light [src] in one smooth movement.") ) + playsound(src.loc , 'sound/items/zippo_on.ogg', 100, 1) return + else + playsound(src.loc, 'sound/items/lighter_on.ogg', 100, 1) var/hand_protected = FALSE var/mob/living/carbon/human/human_user = user @@ -1155,13 +1162,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM to_chat(user, span_notice("You open the cap on [src].")) reagents.flags |= OPENCONTAINER if(obj_flags & EMAGGED) - icon_state = "vape_open_high" + icon_state = "vapeopen_high" set_greyscale(new_config = /datum/greyscale_config/vape/open_high) else if(super) - icon_state = "vape_open_med" + icon_state = "vapeopen_med" set_greyscale(new_config = /datum/greyscale_config/vape/open_med) else - icon_state = "vape_open_low" + icon_state = "vapeopen_low" set_greyscale(new_config = /datum/greyscale_config/vape/open_low) else screw = FALSE @@ -1176,12 +1183,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(!super) super = TRUE to_chat(user, span_notice("You increase the voltage of [src].")) - icon_state = "vape_open_med" + icon_state = "vapeopen_med" set_greyscale(new_config = /datum/greyscale_config/vape/open_med) else super = FALSE to_chat(user, span_notice("You decrease the voltage of [src].")) - icon_state = "vape_open_low" + icon_state = "vapeopen_low" set_greyscale(new_config = /datum/greyscale_config/vape/open_low) if(screw && (obj_flags & EMAGGED)) @@ -1200,7 +1207,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM obj_flags |= EMAGGED super = FALSE balloon_alert(user, "voltage maximized") - icon_state = "vape_open_high" + icon_state = "vapeopen_high" set_greyscale(new_config = /datum/greyscale_config/vape/open_high) var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect sp.set_up(5, 1, src) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index a36fa9d2c37d1..f4168b7b37747 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -1008,6 +1008,11 @@ /datum/stock_part/micro_laser = 1, /obj/item/stack/sheet/glass = 1) +/obj/item/circuitboard/machine/vatgrower + name = "Growing Vat" + greyscale_colors = CIRCUIT_COLOR_SCIENCE + build_path = /obj/machinery/vatgrower + /obj/item/circuitboard/machine/monkey_recycler name = "Monkey Recycler" greyscale_colors = CIRCUIT_COLOR_SCIENCE @@ -1637,3 +1642,30 @@ /datum/stock_part/servo = 1, /obj/item/stack/sheet/plasteel = 5, ) + +/obj/item/circuitboard/machine/scrubber + name = "Portable Air Scrubber" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/portable_atmospherics/scrubber + needs_anchored = FALSE + req_components = list( + /obj/item/pipe/directional/scrubber = 1, + ) + +/obj/item/circuitboard/machine/pump + name = "Portable Air Pump" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/portable_atmospherics/pump + needs_anchored = FALSE + req_components = list( + /obj/item/pipe/directional/vent = 1, + ) + +/obj/item/circuitboard/machine/pipe_scrubber + name = "Portable Pipe Scrubber" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/portable_atmospherics/pipe_scrubber + needs_anchored = FALSE + req_components = list( + /obj/item/pipe/trinary/flippable/filter = 1, + ) diff --git a/code/game/objects/items/climbingrope.dm b/code/game/objects/items/climbingrope.dm index 693f850be2a98..e68e508771248 100644 --- a/code/game/objects/items/climbingrope.dm +++ b/code/game/objects/items/climbingrope.dm @@ -50,7 +50,19 @@ playsound(user_turf, 'sound/effects/picaxe1.ogg', 50) var/list/effects = list(new /obj/effect/temp_visual/climbing_hook(target, away_dir), new /obj/effect/temp_visual/climbing_hook(user_turf, away_dir)) - if(do_after(user, climb_time, target)) + // Our climbers athletics ability + var/fitness_level = user.mind?.get_skill_level(/datum/skill/athletics) + + // Misc bonuses to the climb speed. + var/misc_multiplier = 1 + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + misc_multiplier *= potential_spine.athletics_boost_multiplier + + var/final_climb_time = (climb_time - fitness_level) * misc_multiplier + + if(do_after(user, final_climb_time, target)) user.forceMove(target) uses-- diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 3b10f044fc3c2..3d817d24ccf2b 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -207,6 +207,15 @@ worn_icon_state = "horn_air" sound_file = 'sound/items/airhorn2.ogg' +/datum/crafting_recipe/airhorn + name = "Air Horn" + result = /obj/item/bikehorn/airhorn + reqs = list( + /obj/item/bikehorn = 1, + /obj/item/toy/crayon/spraycan = 1, + ) + category = CAT_ENTERTAINMENT + //golden bikehorn /obj/item/bikehorn/golden name = "golden bike horn" diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index f50909eee12c9..9bc86d0c7f96b 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -763,8 +763,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/improvised_coolant) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) register_context() diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index 0a944b300d423..071561d57a095 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -143,6 +143,10 @@ if("Wire Brush") tool_behaviour = TOOL_RUSTSCRAPER +/obj/item/debug/omnitool/item_spawner + name = "spawntool" + color = COLOR_ADMIN_PINK + /obj/item/debug/omnitool/item_spawner/attack_self(mob/user) if(!user || !user.client) return diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 871892558b9dc..dc68175cafc63 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -28,7 +28,7 @@ /// If the cell can be removed via screwdriver var/cell_removable = TRUE var/obj/item/shockpaddles/paddles - var/obj/item/stock_parts/power_store/cell + var/obj/item/stock_parts/power_store/cell/cell /// If true, revive through space suits, allow for combat shocking var/combat = FALSE /// How long does it take to recharge @@ -155,24 +155,27 @@ update_power() return TRUE -/obj/item/defibrillator/attackby(obj/item/W, mob/user, params) - if(W == paddles) +/obj/item/defibrillator/item_interaction(mob/living/user, obj/item/item, list/modifiers) + if(item == paddles) toggle_paddles() - else if(istype(W, /obj/item/stock_parts/power_store/cell)) - var/obj/item/stock_parts/power_store/cell/C = W - if(cell) - to_chat(user, span_warning("[src] already has a cell!")) - else - if(C.maxcharge < paddles.revivecost) - to_chat(user, span_notice("[src] requires a higher capacity cell.")) - return - if(!user.transferItemToLoc(W, src)) - return - cell = W - to_chat(user, span_notice("You install a cell in [src].")) - update_power() - else - return ..() + return NONE + if(!istype(item, /obj/item/stock_parts/power_store/cell)) + return NONE + + var/obj/item/stock_parts/power_store/cell/new_cell = item + if(!isnull(cell)) + to_chat(user, span_warning("[src] already has a cell!")) + return ITEM_INTERACT_BLOCKING + + if(new_cell.maxcharge < paddles.revivecost) + to_chat(user, span_notice("[src] requires a higher capacity cell.")) + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(new_cell, src)) + return NONE + cell = new_cell + to_chat(user, span_notice("You install a cell in [src].")) + update_power() + return ITEM_INTERACT_SUCCESS /obj/item/defibrillator/emag_act(mob/user, obj/item/card/emag/emag_card) @@ -314,11 +317,6 @@ cell = new /obj/item/stock_parts/power_store/cell/infinite(src) update_power() -/obj/item/defibrillator/compact/combat/loaded/attackby(obj/item/W, mob/user, params) - if(W == paddles) - toggle_paddles() - return - /obj/item/defibrillator/compact/combat/loaded/nanotrasen name = "elite Nanotrasen defibrillator" desc = "A belt-equipped state-of-the-art defibrillator. Can revive through thick clothing, has an experimental self-recharging battery, and can be utilized as a weapon via applying the paddles while in a combat stance." diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 67ec498a1fbc6..e684c1b4959e5 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -46,8 +46,8 @@ var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/flashlight_eyes) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -928,6 +928,7 @@ light_range = 4 light_power = 2 alpha = 0 + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE anchored = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 7ae17c5343ad6..0f9cf299ec24c 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -17,26 +17,39 @@ user.say("AAAAAAAAAAAARGHHHHH", forced="megaphone suicide")//he must have died while coding this return OXYLOSS -/obj/item/megaphone/equipped(mob/M, slot) +/obj/item/megaphone/equipped(mob/equipper, slot) . = ..() - if ((slot & ITEM_SLOT_HANDS) && !HAS_TRAIT(M, TRAIT_SIGN_LANG)) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else - UnregisterSignal(M, COMSIG_MOB_SAY) + if ((slot & ITEM_SLOT_HANDS)) + RegisterSignal(equipper, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(equipper, COMSIG_LIVING_TREAT_MESSAGE, PROC_REF(add_tts_filter)) -/obj/item/megaphone/dropped(mob/M) +/obj/item/megaphone/dropped(mob/dropper) . = ..() - UnregisterSignal(M, COMSIG_MOB_SAY) + UnregisterSignal(dropper, list(COMSIG_MOB_SAY, COMSIG_LIVING_TREAT_MESSAGE)) + +/obj/item/megaphone/proc/handle_speech(mob/living/user, list/speech_args) + SIGNAL_HANDLER + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + to_chat(user, span_warning("\The [src] needs to recharge!")) + else + playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) + spamcheck = world.time + 5 SECONDS + speech_args[SPEECH_SPANS] |= voicespan -/obj/item/megaphone/proc/handle_speech(mob/living/carbon/user, list/speech_args) +/obj/item/megaphone/proc/add_tts_filter(mob/living/carbon/user, list/message_args) SIGNAL_HANDLER - if (user.get_active_held_item() == src) - if(spamcheck > world.time) - to_chat(user, span_warning("\The [src] needs to recharge!")) - else - playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) - spamcheck = world.time + 50 - speech_args[SPEECH_SPANS] |= voicespan + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + return + if(obj_flags & EMAGGED) + ///somewhat compressed and ear-grating, crusty and noisy with a bit of echo. + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=9:level_out=7,aecho=delays=100:decays=0.4,aemphasis=type=emi,crystalizer=i=6,acontrast=60,rubberband=pitch=0.9" + else + ///A sharper and louder sound with a bit of echo + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=2:level_out=6,aecho=delays=90:decays=0.3,aemphasis=type=cd,acontrast=30,crystalizer=i=5" /obj/item/megaphone/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 1262abb141f47..f6fb14c2f19ba 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -12,7 +12,7 @@ /obj/item/multitool name = "multitool" - desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." + desc = "Used for pulsing wires to test which to cut. Not recommended by doctors. You can activate it in-hand to locate the nearest APC." icon = 'icons/obj/devices/tool.dmi' icon_state = "multitool" inhand_icon_state = "multitool" @@ -32,11 +32,31 @@ usesound = 'sound/weapons/empty.ogg' var/datum/buffer // simple machine buffer for device linkage var/mode = 0 + var/apc_scanner = TRUE + COOLDOWN_DECLARE(next_apc_scan) /obj/item/multitool/examine(mob/user) . = ..() . += span_notice("Its buffer [buffer ? "contains [buffer]." : "is empty."]") +/obj/item/multitool/attack_self(mob/user, list/modifiers) + . = ..() + + if(. || !apc_scanner) + return + + if(!COOLDOWN_FINISHED(src, next_apc_scan)) + return + + COOLDOWN_START(src, next_apc_scan, 1 SECONDS) + + var/area/local_area = get_area(src) + var/power_controller = local_area.apc + if(power_controller) + user.balloon_alert(user, "[get_dist(src, power_controller)]m [dir2text(get_dir(src, power_controller))]") + else + user.balloon_alert(user, "couldn't find apc!") + /obj/item/multitool/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] puts the [src] to [user.p_their()] chest. It looks like [user.p_theyre()] trying to pulse [user.p_their()] heart off!")) return OXYLOSS//theres a reason it wasn't recommended by doctors diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index ced454c3d3261..912e1d66b0929 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -116,9 +116,7 @@ // No subtypes if(type != /obj/item/radio) return - AddComponent(/datum/component/slapcrafting,\ - slapcraft_recipes = list(/datum/crafting_recipe/improv_explosive)\ - ) + AddElement(/datum/element/slapcrafting, string_list(list(/datum/crafting_recipe/improv_explosive))) RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index b1110e389a1db..f5fe29f9ed541 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -37,8 +37,8 @@ return var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/material_sniffer) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/drug_items.dm b/code/game/objects/items/drug_items.dm index f313dad5f74ea..d25c957145561 100644 --- a/code/game/objects/items/drug_items.dm +++ b/code/game/objects/items/drug_items.dm @@ -18,6 +18,10 @@ icon_state = "saturnx_glob" //tell kryson to sprite two more variants in the future. food_reagents = list(/datum/reagent/drug/saturnx = 10) +/obj/item/food/drug/saturnx/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/food/drug/moon_rock name = "moon rock" desc = "A small hard lump of kronkaine freebase.\nIt is said the average kronkaine addict causes as much criminal damage as four cat burglars, two arsonists and one rabid pit bull terrier combined." @@ -28,6 +32,7 @@ . = ..() icon_state = pick("moon_rock1", "moon_rock2", "moon_rock3") AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOONICORN, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/reagent_containers/cup/blastoff_ampoule name = "bLaSToFF ampoule" //stylized name @@ -70,3 +75,7 @@ SplashReagents(hit_atom, TRUE) qdel(src) hit_atom.Bumped(ampoule_shard) + +/obj/item/reagent_containers/cup/blastoff_ampoule/Initialize(mapload, vol) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/game/objects/items/emags.dm b/code/game/objects/items/emags.dm index 74472995b688e..ccb52b71bc3bc 100644 --- a/code/game/objects/items/emags.dm +++ b/code/game/objects/items/emags.dm @@ -144,7 +144,8 @@ if(!can_emag(interacting_with, user)) return ITEM_INTERACT_BLOCKING log_combat(user, interacting_with, "attempted to emag") - interacting_with.emag_act(user, src) + if(interacting_with.emag_act(user, src)) + SSblackbox.record_feedback("tally", "atom_emagged", 1, interacting_with.type) return ITEM_INTERACT_SUCCESS /obj/item/card/emag/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 1e879d4422ced..764e2fc6173bf 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -52,8 +52,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/ghettojetpack) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index e2d587cd3594b..ad03fe9ab4f10 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -40,8 +40,8 @@ AddElement(/datum/element/update_icon_updates_onmob) var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/flamethrower) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index 7816fb0e83a70..a5fe073e56f3f 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -16,12 +16,12 @@ /datum/component/blood_walk,\ blood_type = blood_decal_type,\ blood_spawn_chance = 45,\ - max_blood = custom_materials[custom_materials[1]],\ + max_blood = custom_materials[custom_materials[1]] / SHEET_MATERIAL_AMOUNT,\ ) AddComponent( /datum/component/bloody_spreader,\ - blood_left = custom_materials[custom_materials[1]],\ + blood_left = custom_materials[custom_materials[1]] / SHEET_MATERIAL_AMOUNT,\ blood_dna = list("meaty DNA" = "MT-"),\ diseases = null,\ ) diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index e1449007b71d4..1024e44c625f3 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -387,7 +387,8 @@ /obj/item/food/icecream/make_edible() . = ..() - AddComponent(/datum/component/ice_cream_holder, filled_name = "ice cream", change_desc = TRUE, prefill_flavours = prefill_flavours) + var/max_scoops = check_holidays(ICE_CREAM_DAY) ? DEFAULT_MAX_ICE_CREAM_SCOOPS * 4 : DEFAULT_MAX_ICE_CREAM_SCOOPS + AddComponent(/datum/component/ice_cream_holder, max_scoops, filled_name = "ice cream", change_desc = TRUE, prefill_flavours = prefill_flavours) /obj/item/food/icecream/chocolate name = "chocolate cone" diff --git a/code/game/objects/items/granters/crafting/fletching.dm b/code/game/objects/items/granters/crafting/fletching.dm new file mode 100644 index 0000000000000..e41c2f9acd121 --- /dev/null +++ b/code/game/objects/items/granters/crafting/fletching.dm @@ -0,0 +1,22 @@ + +/obj/item/book/granter/crafting_recipe/fletching + name = "Whittle Me This: Fletching for the Modern Spacer" + desc = "A how-to guide to crafting and maintaining wooden bows, fletching arrows, and... making violins?" + crafting_recipe_types = list( + /datum/crafting_recipe/arrow, + /datum/crafting_recipe/plastic_arrow, + /datum/crafting_recipe/shortbow, + /datum/crafting_recipe/holy_arrow, + /datum/crafting_recipe/arrow_quiver, + /datum/crafting_recipe/violin, + ) + icon_state = "book4" + uses = INFINITY + remarks = list( + "Okay, so the quality of the wood has some impact.", + "I feel like the violin chapter is in here as a joke, surely...", + "The author seems oddly proud about how many years they've been hunting in 'these parts'...", + "i really wish they'd stop with all the marriage euphemisms...", + "I need membership? Membership with what?", + "Okay, I think I get the point already...", + ) diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 336c9e5e2eea7..49f66b06896b8 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -145,9 +145,8 @@ var/obj/item/thrown_weapon = bomb_target thrown_weapon.throw_speed = max(1, (thrown_weapon.throw_speed - 3)) thrown_weapon.throw_range = max(1, (thrown_weapon.throw_range - 3)) - if(thrown_weapon.embedding) - thrown_weapon.embedding["embed_chance"] = 0 - thrown_weapon.updateEmbedding() + if(thrown_weapon.get_embed()) + thrown_weapon.set_embed(thrown_weapon.get_embed().generate_with_values(embed_chance = 0)) else if(isliving(bomb_target)) plastic_overlay.layer = FLOAT_LAYER diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 5b74053299931..c5a68260abade 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -214,8 +214,8 @@ var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/bola, /datum/crafting_recipe/gonbola) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 5734beb76831d..0ce71c1cbc10a 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -36,7 +36,7 @@ return TRUE return FALSE create_storage(storage_type = /datum/storage/implant) - + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) return ..() /obj/item/implanter/storage diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 82a36336c42b9..b73917bfba8b6 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -8,7 +8,7 @@ */ /obj/item/inspector name = "\improper N-spect scanner" - desc = "Central Command-issued inspection device. Performs inspections according to Nanotrasen protocols when activated, then prints an encrypted report regarding the maintenance of the station. Definitely not giving you cancer." + desc = "Central Command standard issue inspection device. Can perform either wide area scans that central command can use to verify the security of the station, or detailed scans to determine if an item is contraband." icon = 'icons/obj/devices/scanner.dmi' icon_state = "inspector" worn_icon_state = "salestagger" @@ -32,11 +32,15 @@ var/cell_cover_open = FALSE ///Energy used per print. var/energy_per_print = INSPECTOR_ENERGY_USAGE_NORMAL + ///Does this item scan for contraband correctly? If not, will provide a flipped response. + var/scans_correctly = TRUE /obj/item/inspector/Initialize(mapload) . = ..() if(ispath(cell)) cell = new cell(src) + register_context() + register_item_context() // Clean up the cell on destroy /obj/item/inspector/Exited(atom/movable/gone, direction) @@ -93,6 +97,54 @@ else . += "\The [cell] is firmly in place. [span_info("Ctrl-click with an empty hand to remove it.")]" +/obj/item/inspector/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!user.Adjacent(interacting_with)) + return ITEM_INTERACT_BLOCKING + if(cell_cover_open) + balloon_alert(user, "close cover first!") + return ITEM_INTERACT_BLOCKING + if(!cell || !cell.use(INSPECTOR_ENERGY_USAGE_LOW)) + balloon_alert(user, "check cell!") + return ITEM_INTERACT_BLOCKING + if(!isitem(interacting_with)) + return ITEM_INTERACT_BLOCKING + var/obj/item/contraband_item = interacting_with + var/contraband_status = contraband_item.is_contraband() + if((!contraband_status && scans_correctly) || (contraband_status && !scans_correctly)) + playsound(src, 'sound/machines/ping.ogg', 20) + balloon_alert(user, "clear") + return ITEM_INTERACT_SUCCESS + + playsound(src, 'sound/machines/uplinkerror.ogg', 40) + balloon_alert(user, "contraband detected!") + return ITEM_INTERACT_SUCCESS + +/obj/item/inspector/add_context(atom/source, list/context, obj/item/held_item, mob/user) + var/update_context = FALSE + if(cell_cover_open && cell) + context[SCREENTIP_CONTEXT_CTRL_LMB] = "Remove cell" + update_context = TRUE + + if(cell_cover_open && !cell && istype(held_item, /obj/item/stock_parts/power_store/cell)) + context[SCREENTIP_CONTEXT_LMB] = "Install cell" + update_context = TRUE + + if(held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "[cell_cover_open ? "close" : "open"] battery panel" + update_context = TRUE + + if(update_context) + return CONTEXTUAL_SCREENTIP_SET + return NONE + +/obj/item/inspector/add_item_context(obj/item/source, list/context, atom/target, mob/living/user) + if(cell_cover_open || !cell) + return NONE + if(isitem(target)) + context[SCREENTIP_CONTEXT_LMB] = "Contraband Scan" + return CONTEXTUAL_SCREENTIP_SET + return NONE + /** * Create our report * @@ -178,6 +230,7 @@ * Can be crafted into a bananium HONK-spect scanner */ /obj/item/inspector/clown + scans_correctly = FALSE ///will only cycle through modes with numbers lower than this var/max_mode = CLOWN_INSPECTOR_PRINT_SOUND_MODE_LAST ///names of modes, ordered first to last diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index 1aa09dbfe68e5..1a16b08eb866b 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -124,13 +124,19 @@ icon_state = "buckknife" worn_icon_state = "buckknife" desc = "A military combat utility survival knife." - embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE) + embed_type = /datum/embed_data/combat_knife force = 20 throwforce = 20 attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "cuts") attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "cut") slot_flags = ITEM_SLOT_MASK +/datum/embed_data/combat_knife + pain_mult = 4 + embed_chance = 65 + fall_chance = 10 + ignore_throwspeed_threshold = TRUE + /obj/item/knife/combat/Initialize(mapload) . = ..() AddComponent(/datum/component/knockoff, 90, list(BODY_ZONE_PRECISE_MOUTH), slot_flags) //90% to knock off when wearing a mask @@ -155,7 +161,7 @@ icon = 'icons/obj/weapons/stabby.dmi' icon_state = "survivalknife" worn_icon_state = "survivalknife" - embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) + embed_type = /datum/embed_data/combat_knife/weak desc = "A hunting grade survival knife." force = 15 throwforce = 15 @@ -169,13 +175,16 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' desc = "A sharpened bone. The bare minimum in survival." - embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) + embed_type = /datum/embed_data/combat_knife/weak obj_flags = parent_type::obj_flags & ~CONDUCTS_ELECTRICITY slot_flags = NONE force = 15 throwforce = 15 custom_materials = null +/datum/embed_data/combat_knife/weak + embed_chance = 35 + /obj/item/knife/combat/cyborg name = "cyborg knife" icon = 'icons/obj/items_cyborg.dmi' diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm index eca126fc6aee0..253a40be69d54 100644 --- a/code/game/objects/items/melee/baton.dm +++ b/code/game/objects/items/melee/baton.dm @@ -339,6 +339,9 @@ ) RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) +/obj/item/melee/baton/telescopic/additional_effects_non_cyborg(mob/living/target, mob/living/user) + target.apply_status_effect(/datum/status_effect/next_shove_stuns) + /obj/item/melee/baton/telescopic/suicide_act(mob/living/user) var/mob/living/carbon/human/human_user = user var/obj/item/organ/internal/brain/our_brain = human_user.get_organ_by_type(/obj/item/organ/internal/brain) @@ -401,6 +404,7 @@ return span_danger("The baton is still charging!") /obj/item/melee/baton/telescopic/contractor_baton/additional_effects_non_cyborg(mob/living/target, mob/living/user) + . = ..() target.set_jitter_if_lower(40 SECONDS) target.set_stutter_if_lower(40 SECONDS) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 228f359729c31..dd70bd08c2161 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -113,13 +113,9 @@ SIGNAL_HANDLER if(active) - if(embedding) - updateEmbedding() heat = active_heat START_PROCESSING(SSobj, src) else - if(embedding) - disableEmbedding() heat = initial(heat) STOP_PROCESSING(SSobj, src) @@ -173,6 +169,10 @@ return (BRUTELOSS|FIRELOSS) /// Energy swords. +/datum/embed_data/esword + embed_chance = 75 + impact_pain_mult = 10 + /obj/item/melee/energy/sword name = "energy sword" desc = "May the force be within you." @@ -189,7 +189,7 @@ armour_penetration = 35 block_chance = 50 block_sound = 'sound/weapons/block_blade.ogg' - embedding = list("embed_chance" = 75, "impact_pain_mult" = 10) + embed_type = /datum/embed_data/esword /obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) diff --git a/code/game/objects/items/pillow.dm b/code/game/objects/items/pillow.dm index f1c96e2baa091..f699dd34b3bfa 100644 --- a/code/game/objects/items/pillow.dm +++ b/code/game/objects/items/pillow.dm @@ -37,8 +37,8 @@ /datum/crafting_recipe/pillow_suit, /datum/crafting_recipe/pillow_hood,\ ) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 1fabf13d31ac1..7e7076e842c64 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -86,6 +86,18 @@ puzzle_id = null //honestly these cant be closed anyway and im not fucking around with door code anymore INVOKE_ASYNC(src, PROC_REF(try_puzzle_open), null) +/obj/machinery/door/puzzle/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.0 SECONDS + +/obj/machinery/door/puzzle/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.8 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.0 SECONDS + /obj/machinery/door/puzzle/Bumped(atom/movable/AM) return !density && ..() @@ -558,6 +570,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/password/pin, 32) desc = "A board filled with colored dots. What could this mean?" icon = 'icons/obj/fluff/puzzle_small.dmi' icon_state = "puzzle_dots" + layer = ABOVE_NORMAL_TURF_LAYER plane = GAME_PLANE //visible over walls resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | UNACIDABLE | LAVA_PROOF flags_1 = UNPAINTABLE_1 diff --git a/code/game/objects/items/rcd/RPLD.dm b/code/game/objects/items/rcd/RPLD.dm index 8fc2da9520599..56452e2e452b1 100644 --- a/code/game/objects/items/rcd/RPLD.dm +++ b/code/game/objects/items/rcd/RPLD.dm @@ -38,7 +38,6 @@ /obj/machinery/plumbing/synthesizer = 15, /obj/machinery/plumbing/reaction_chamber/chem = 15, /obj/machinery/plumbing/grinder_chemical = 30, - /obj/machinery/plumbing/growing_vat = 20, /obj/machinery/plumbing/fermenter = 30, /obj/machinery/plumbing/liquid_pump = 35, //extracting chemicals from ground is one way of creation /obj/machinery/plumbing/disposer = 10, @@ -303,44 +302,6 @@ current_layer = GLOB.plumbing_layers[current_loc] to_chat(source, span_notice("You set the layer to [current_layer].")) -/obj/item/construction/plumbing/research - name = "research plumbing constructor" - desc = "A type of plumbing constructor designed to rapidly deploy the machines needed to conduct cytological research." - icon_state = "plumberer_sci" - inhand_icon_state = "plumberer_sci" - lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - ///Design types for research plumbing constructor - var/list/static/research_design_types = list( - //Category 1 Synthesizers - "Synthesizers" = list( - /obj/machinery/plumbing/reaction_chamber = 15, - /obj/machinery/plumbing/grinder_chemical = 30, - /obj/machinery/plumbing/disposer = 10, - /obj/machinery/plumbing/growing_vat = 20, - ), - - //Category 2 Distributors - "Distributors" = list( - /obj/machinery/duct = 1, - /obj/machinery/plumbing/input = 5, - /obj/machinery/plumbing/filter = 5, - /obj/machinery/plumbing/splitter = 5, - /obj/machinery/plumbing/output = 5, - ), - - //Category 3 storage - "Storage" = list( - /obj/machinery/plumbing/tank = 20, - /obj/machinery/plumbing/acclimator = 10, - ), - ) - -/obj/item/construction/plumbing/research/Initialize(mapload) - plumbing_design_types = research_design_types - - . = ..() - /obj/item/construction/plumbing/service name = "service plumbing constructor" desc = "A type of plumbing constructor designed to rapidly deploy the machines needed to make a brewery." diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm index 5660de8d60432..f6357b229efb9 100644 --- a/code/game/objects/items/robot/ai_upgrades.dm +++ b/code/game/objects/items/robot/ai_upgrades.dm @@ -8,6 +8,9 @@ icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" +/obj/item/malf_upgrade/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/malf_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) @@ -37,6 +40,10 @@ icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" +/obj/item/surveillance_upgrade/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/surveillance_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) return ..() diff --git a/code/game/objects/items/robot/items/food.dm b/code/game/objects/items/robot/items/food.dm index 6e9b2143d12b6..b7b018362c73c 100644 --- a/code/game/objects/items/robot/items/food.dm +++ b/code/game/objects/items/robot/items/food.dm @@ -152,6 +152,10 @@ return NONE /obj/item/borg/lollipop/attack_self(mob/living/user) + switch_mode(user) + return ..() + +/obj/item/borg/lollipop/proc/switch_mode(mob/living/user) switch(mode) if(DISPENSE_LOLLIPOP_MODE) mode = THROW_LOLLIPOP_MODE @@ -165,7 +169,17 @@ if(DISPENSE_ICECREAM_MODE) mode = DISPENSE_LOLLIPOP_MODE to_chat(user, span_notice("Module is now dispensing lollipops.")) - ..() + +/obj/item/borg/lollipop/ice_cream + name = "ice cream fabricator" + desc = "Reward humans with vanilla ice cream. Can't go wrong with it." + candy = 4 + candymax = 4 + charge_delay = 15 SECONDS + mode = DISPENSE_ICECREAM_MODE + +/obj/item/borg/lollipop/ice_cream/switch_mode(mob/living/user) + return /obj/item/ammo_casing/gumball name = "Gumball" @@ -186,7 +200,7 @@ icon_state = "gumball" damage = 0 speed = 0.5 - embedding = null + embed_type = null /obj/projectile/bullet/gumball/Initialize(mapload) . = ..() @@ -219,29 +233,30 @@ icon_state = "lollipop_1" damage = 0 speed = 0.5 - embedding = null + embed_type = null var/head_color /obj/projectile/bullet/lollipop/harmful - embedding = list( - embed_chance = 35, - fall_chance = 2, - jostle_chance = 0, - ignore_throwspeed_threshold = TRUE, - pain_stam_pct = 0.5, - pain_mult = 3, - rip_time = 10, - ) + embed_type = /datum/embed_data/lollipop damage = 10 shrapnel_type = /obj/item/food/lollipop/cyborg embed_falloff_tile = 0 +/datum/embed_data/lollipop + embed_chance = 35 + fall_chance = 2 + jostle_chance = 0 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.5 + pain_mult = 3 + rip_time = 10 + /obj/projectile/bullet/lollipop/Initialize(mapload) . = ..() var/mutable_appearance/head = mutable_appearance('icons/obj/weapons/guns/projectiles.dmi', "lollipop_2") head.color = head_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) add_overlay(head) - if(!embedding) + if(!embed_type) AddElement(/datum/element/projectile_drop, /obj/item/food/lollipop/cyborg) RegisterSignals(src, list(COMSIG_PROJECTILE_ON_SPAWN_DROP, COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED), PROC_REF(handle_drop)) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 6fa32ae31e29b..9a3e45fac4213 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -213,6 +213,10 @@ icon_state = "cyborg_upgrade3" require_model = TRUE +/obj/item/borg/upgrade/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/borg, mob/living/user = usr) . = ..() if(!.) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 2cc41b5d9f266..1553f0e9c8f29 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -145,8 +145,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/strobeshield) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm index 9b024cfbb97a2..701a0a819d002 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -17,8 +17,7 @@ name = "bullet" icon = 'icons/obj/weapons/guns/ammo.dmi' icon_state = "s-casing" - embedding = null // embedding vars are taken from the projectile itself - + embed_type = null /obj/projectile/bullet/shrapnel name = "flying shrapnel shard" @@ -34,7 +33,12 @@ ignore_range_hit_prone_targets = TRUE sharpness = SHARP_EDGED wound_bonus = 30 - embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=1) + embed_type = /datum/embed_data/shrapnel + +/datum/embed_data/shrapnel + embed_chance = 70 + ignore_throwspeed_threshold = TRUE + fall_chance = 1 /obj/projectile/bullet/shrapnel/short_range range = 5 @@ -70,7 +74,17 @@ ricochet_incidence_leeway = 0 embed_falloff_tile = -2 shrapnel_type = /obj/item/shrapnel/stingball - embedding = list(embed_chance=55, fall_chance=2, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=3, jostle_pain_mult=3, rip_time=15) + embed_type = /datum/embed_data/stingball + +/datum/embed_data/stingball + embed_chance = 55 + fall_chance = 2 + jostle_chance = 7 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.7 + pain_mult = 3 + jostle_pain_mult = 3 + rip_time = 15 /obj/projectile/bullet/pellet/stingball/on_ricochet(atom/A) hit_prone_targets = TRUE // ducking will save you from the first wave, but not the rebounds @@ -92,10 +106,20 @@ ricochets_max = 2 ricochet_chance = 140 shrapnel_type = /obj/item/shrapnel/capmine - embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15) + embed_type = /datum/embed_data/capmine wound_falloff_tile = 0 embed_falloff_tile = 0 +/datum/embed_data/capmine + embed_chance = 90 + fall_chance = 3 + jostle_chance = 7 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.7 + pain_mult = 5 + jostle_pain_mult = 6 + rip_time = 15 + /obj/item/shrapnel/capmine name = "\improper AP shrapnel shard" custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5) diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index 66e96bcab4b83..96fbde554b79e 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -12,7 +12,7 @@ throwforce = 20 throw_speed = 4 demolition_mod = 0.75 - embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "jostle_chance" = 2.5) + embed_type = /datum/embed_data/spear armour_penetration = 10 custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass= HALF_SHEET_MATERIAL_AMOUNT * 2) hitsound = 'sound/weapons/bladeslice.ogg' @@ -32,6 +32,11 @@ /// How much damage to do wielded var/force_wielded = 18 +/datum/embed_data/spear + impact_pain_mult = 2 + remove_pain_mult = 4 + jostle_chance = 2.5 + /datum/armor/item_spear fire = 50 acid = 30 @@ -61,8 +66,8 @@ /obj/item/spear/proc/add_headpike_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpike) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -231,8 +236,8 @@ /obj/item/spear/military/add_headpike_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikemilitary) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -255,8 +260,8 @@ /obj/item/spear/bonespear/add_headpike_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikebone) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -279,7 +284,7 @@ /obj/item/spear/bamboospear/add_headpike_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikebamboo) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 82f19d09d9692..6314c16c8449c 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -33,12 +33,17 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ attack_verb_continuous = list("hits", "bludgeons", "whacks") attack_verb_simple = list("hit", "bludgeon", "whack") hitsound = 'sound/weapons/gun/general/grenade_launch.ogg' - embedding = list(embed_chance = 50) + embed_type = /datum/embed_data/rods novariants = TRUE matter_amount = 2 cost = HALF_SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/iron merge_type = /obj/item/stack/rods + pickup_sound = 'sound/items/iron_rod_pick_up.ogg' + drop_sound = 'sound/items/metal_drop.ogg' + +/datum/embed_data/rods + embed_chance = 50 /obj/item/stack/rods/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins to stuff \the [src] down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide!"))//it looks like theyre ur mum @@ -58,8 +63,8 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/spear, /datum/crafting_recipe/stunprod, /datum/crafting_recipe/teleprod) // snatcher prod isn't here as a spoopy secret - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 59196639ffeba..19e290170f8af 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -32,6 +32,8 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ cost = SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/glass sniffable = TRUE + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /datum/armor/sheet_glass fire = 50 @@ -102,6 +104,8 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) material_flags = NONE tableVariant = /obj/structure/table/glass/plasmaglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -160,6 +164,8 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) matter_amount = 6 tableVariant = /obj/structure/table/reinforced/rglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/rglass/fifty amount = 50 @@ -198,6 +204,8 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ gulag_valid = TRUE matter_amount = 8 tableVariant = /obj/structure/table/reinforced/plasmarglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /datum/armor/sheet_plasmarglass melee = 20 @@ -228,6 +236,8 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass tableVariant = /obj/structure/table/reinforced/titaniumglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/titaniumglass/fifty amount = 50 @@ -258,6 +268,8 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass tableVariant = /obj/structure/table/reinforced/plastitaniumglass + pickup_sound = 'sound/items/glass_pick_up.ogg' + drop_sound = 'sound/items/glass_drop.ogg' /obj/item/stack/sheet/plastitaniumglass/fifty amount = 50 @@ -293,7 +305,16 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( var/shiv_type = /obj/item/knife/shiv var/craft_time = 3.5 SECONDS var/obj/item/stack/sheet/weld_material = /obj/item/stack/sheet/glass - embedding = list("embed_chance" = 65) + embed_type = /datum/embed_data/shard + +/datum/embed_data/shard + embed_chance = 65 + +/datum/embed_data/glass_candy + embed_chance = 100 + ignore_throwspeed_threshold = TRUE + impact_pain_mult = 1 + pain_chance = 5 /datum/armor/item_shard melee = 100 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 2d1636e9e165a..fbd69dbd20d4b 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -251,8 +251,8 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ /datum/crafting_recipe/goliathcloak, /datum/crafting_recipe/skilt, /datum/crafting_recipe/drakecloak,\ ) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -311,8 +311,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/drakecloak) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index d32df2562402f..3ed505cb3e37e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -385,6 +385,8 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ grind_results = list(/datum/reagent/cellulose = 20) //no lignocellulose or lignin reagents yet, walltype = /turf/closed/wall/mineral/wood stairs_type = /obj/structure/stairs/wood + pickup_sound = 'sound/items/wood_pick_up.ogg' + drop_sound = 'sound/items/wood_drop.ogg' /datum/armor/mineral_wood fire = 50 @@ -549,8 +551,8 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/durathread_helmet, /datum/crafting_recipe/durathread_vest) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -683,8 +685,8 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/cardboard_id) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -824,8 +826,8 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ /datum/crafting_recipe/skullhelm, ) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) GLOBAL_LIST_INIT(plastic_recipes, list( @@ -853,6 +855,8 @@ GLOBAL_LIST_INIT(plastic_recipes, list( throwforce = 7 material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic + pickup_sound = 'sound/items/plastic_pick_up.ogg' + drop_sound = 'sound/items/plastic_drop.ogg' /obj/item/stack/sheet/plastic/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 8b81953528ee1..568fd2f49aa29 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -13,6 +13,8 @@ attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "smash") novariants = FALSE material_flags = MATERIAL_EFFECTS + pickup_sound = 'sound/items/metal_pick_up.ogg' + drop_sound = 'sound/items/metal_drop.ogg' var/sheettype = null //this is used for girders in the creation of walls/false walls ///If true, this is worth points in the gulag labour stacker var/gulag_valid = FALSE @@ -22,6 +24,8 @@ var/walltype /// whether this sheet can be sniffed by the material sniffer var/sniffable = FALSE + /// this makes pickup and drop sounds vary + sound_vary = TRUE /obj/item/stack/sheet/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1) . = ..() diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index 57aa666c046ab..0e054ba8d1062 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -14,12 +14,17 @@ grind_results = list(/datum/reagent/cellulose = 5) splint_factor = 0.65 merge_type = /obj/item/stack/sticky_tape - var/list/conferred_embed = EMBED_HARMLESS + var/conferred_embed = /datum/embed_data/sticky_tape ///The tape type you get when ripping off a piece of tape. var/obj/tape_gag = /obj/item/clothing/mask/muzzle/tape greyscale_config = /datum/greyscale_config/tape greyscale_colors = "#B2B2B2#BD6A62" +/datum/embed_data/sticky_tape + pain_mult = 0 + jostle_pain_mult = 0 + ignore_throwspeed_threshold = 0 + /obj/item/stack/sticky_tape/attack_hand(mob/user, list/modifiers) if(user.get_inactive_held_item() == src) if(is_zero_amount(delete_if_zero = TRUE)) @@ -43,7 +48,7 @@ if(!isitem(target)) return NONE - if(target.embedding && target.embedding == conferred_embed) + if(target.get_embed()?.type == conferred_embed) to_chat(user, span_warning("[target] is already coated in [src]!")) return ITEM_INTERACT_BLOCKING @@ -60,12 +65,11 @@ user.put_in_hands(O) return ITEM_INTERACT_SUCCESS - if(target.embedding && target.embedding == conferred_embed) + if(target.get_embed() && target.get_embed().type == conferred_embed) to_chat(user, span_warning("[target] is already coated in [src]!")) return ITEM_INTERACT_BLOCKING - target.embedding = conferred_embed - target.updateEmbedding() + target.set_embed(conferred_embed) to_chat(user, span_notice("You finish wrapping [target] with [src].")) target.name = "[prefix] [target.name]" @@ -80,34 +84,44 @@ singular_name = "super sticky tape" desc = "Quite possibly the most mischevious substance in the galaxy. Use with extreme lack of caution." prefix = "super sticky" - conferred_embed = EMBED_HARMLESS_SUPERIOR + conferred_embed = /datum/embed_data/sticky_tape/super splint_factor = 0.4 merge_type = /obj/item/stack/sticky_tape/super greyscale_colors = "#4D4D4D#75433F" tape_gag = /obj/item/clothing/mask/muzzle/tape/super +/datum/embed_data/sticky_tape/super + embed_chance = 100 + fall_chance = 0.1 + /obj/item/stack/sticky_tape/pointy name = "pointy tape" singular_name = "pointy tape" desc = "Used for sticking to things for sticking said things inside people." icon_state = "tape_spikes" prefix = "pointy" - conferred_embed = EMBED_POINTY + conferred_embed = /datum/embed_data/pointy_tape merge_type = /obj/item/stack/sticky_tape/pointy greyscale_config = /datum/greyscale_config/tape/spikes greyscale_colors = "#E64539#808080#AD2F45" tape_gag = /obj/item/clothing/mask/muzzle/tape/pointy +/datum/embed_data/pointy_tape + ignore_throwspeed_threshold = TRUE + /obj/item/stack/sticky_tape/pointy/super name = "super pointy tape" singular_name = "super pointy tape" desc = "You didn't know tape could look so sinister. Welcome to Space Station 13." prefix = "super pointy" - conferred_embed = EMBED_POINTY_SUPERIOR + conferred_embed = /datum/embed_data/pointy_tape/super merge_type = /obj/item/stack/sticky_tape/pointy/super greyscale_colors = "#8C0A00#4F4F4F#300008" tape_gag = /obj/item/clothing/mask/muzzle/tape/pointy/super +/datum/embed_data/pointy_tape/super + embed_chance = 100 + /obj/item/stack/sticky_tape/surgical name = "surgical tape" singular_name = "surgical tape" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 89e6cae389dbd..4b89719998c8f 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -1265,7 +1265,6 @@ /obj/item/stack/tile/catwalk_tile/iron, /obj/item/stack/tile/catwalk_tile/iron_white, /obj/item/stack/tile/catwalk_tile/iron_dark, - /obj/item/stack/tile/catwalk_tile/flat_white, /obj/item/stack/tile/catwalk_tile/titanium, /obj/item/stack/tile/catwalk_tile/iron_smooth //this is the original greenish one ) @@ -1291,12 +1290,6 @@ icon_state = "darkiron_catwalk" turf_type = /turf/open/floor/catwalk_floor/iron_dark -/obj/item/stack/tile/catwalk_tile/flat_white - name = "flat white catwalk floor" - singular_name = "flat white catwalk floor tile" - icon_state = "flatwhite_catwalk" - turf_type = /turf/open/floor/catwalk_floor/flat_white - /obj/item/stack/tile/catwalk_tile/titanium name = "titanium catwalk floor" singular_name = "titanium catwalk floor tile" diff --git a/code/game/objects/items/stickers.dm b/code/game/objects/items/stickers.dm index a02cfd9515ed4..19ac58f6f4072 100644 --- a/code/game/objects/items/stickers.dm +++ b/code/game/objects/items/stickers.dm @@ -174,6 +174,10 @@ icon_state = "synd" contraband = TRUE +/obj/item/sticker/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/sticker/syndicate/c4 name = "C-4 sticker" icon_state = "c4" diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index c01203e3d50fb..77ca77e8ba0bf 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -47,9 +47,8 @@ /obj/item/bag_of_holding_inert/Initialize(mapload) . = ..() - AddComponent(/datum/component/slapcrafting,\ - slapcraft_recipes = list(/datum/crafting_recipe/boh)\ - ) + var/static/list/recipes = list(/datum/crafting_recipe/boh) + AddElement(/datum/element/slapcrafting, recipes) /obj/item/storage/backpack/holding name = "bag of holding" @@ -278,11 +277,11 @@ /datum/component/blood_walk,\ blood_type = /obj/effect/decal/cleanable/blood,\ blood_spawn_chance = 15,\ - max_blood = 300,\ + max_blood = custom_materials[custom_materials[1]] / SHEET_MATERIAL_AMOUNT,\ ) AddComponent( /datum/component/bloody_spreader,\ - blood_left = INFINITY,\ + blood_left = custom_materials[custom_materials[1]] / SHEET_MATERIAL_AMOUNT,\ blood_dna = list("MEAT DNA" = "MT+"),\ diseases = null,\ ) @@ -388,6 +387,7 @@ AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_OBSERVER, use_anchor = TRUE) atom_storage.max_total_storage = 15 atom_storage.set_holdable(cant_hold_list = /obj/item/storage/backpack/satchel/flat) //muh recursive backpacks + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/storage/backpack/satchel/flat/PopulateContents() for(var/items in 1 to 4) diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 459c0ab7ce29e..935ead8f93e95 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -204,6 +204,16 @@ for(var/i in 1 to 7) new /obj/item/ammo_casing/shotgun/breacher(src) +/obj/item/storage/box/large_dart + name = "box of XL shotgun darts" + name = "A box full of shotgun darts with increased chemical storage capacity." + icon_state = "shotdart_box" + illustration = null + +/obj/item/storage/box/large_dart/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/ammo_casing/shotgun/dart/large(src) + /obj/item/storage/box/emptysandbags name = "box of empty sandbags" illustration = "sandbag" diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index 944289598d17b..c3c97c790fdf3 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -454,6 +454,8 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_SMALL + pickup_sound = 'sound/items/handling/pill_bottle_pickup.ogg' + drop_sound = 'sound/items/handling/pill_bottle_place.ogg' /obj/item/storage/pill_bottle/Initialize(mapload) . = ..() @@ -462,6 +464,8 @@ /obj/item/reagent_containers/pill, /obj/item/food/bait/natural, )) + atom_storage.open_sound = 'sound/items/handling/pill_bottle_open.ogg' + atom_storage.open_sound_vary = FALSE /obj/item/storage/pill_bottle/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is trying to get the cap off [src]! It looks like [user.p_theyre()] trying to commit suicide!")) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 96b2d10440d4e..d3e41b21a986b 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -300,7 +300,7 @@ new /obj/item/clothing/suit/armor/vest/marine/pmc(src) //The armor kit is comparable to the infiltrator, 6 TC new /obj/item/clothing/head/helmet/marine/pmc(src) new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/clothing/glasses/night(src) // 3~ TC + new /obj/item/clothing/glasses/night/colorless(src) // 3~ TC new /obj/item/clothing/gloves/krav_maga/combatglovesplus(src) //5TC new /obj/item/clothing/shoes/jackboots(src) new /obj/item/storage/belt/military/assault/fisher(src) //items in this belt easily costs 18 TC diff --git a/code/game/objects/items/tail_pin.dm b/code/game/objects/items/tail_pin.dm index de3148dd06dea..71bd50b1dda21 100644 --- a/code/game/objects/items/tail_pin.dm +++ b/code/game/objects/items/tail_pin.dm @@ -7,7 +7,6 @@ w_class = WEIGHT_CLASS_SMALL throwforce = 0 throw_speed = 1 - embedding = EMBED_HARMLESS custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("pokes", "jabs", "pins the tail on") @@ -15,6 +14,12 @@ sharpness = SHARP_POINTY max_integrity = 200 layer = CORGI_ASS_PIN_LAYER + embed_type = /datum/embed_data/corgi_pin + +/datum/embed_data/corgi_pin + pain_chance = 0 + jostle_pain_mult = 0 + ignore_throwspeed_threshold = TRUE /obj/item/poster/tail_board name = "party game poster" diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 339894eb2d8f0..cd5a9a1841ead 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -8,10 +8,15 @@ w_class = WEIGHT_CLASS_BULKY distribute_pressure = ONE_ATMOSPHERE * O2STANDARD actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) + /// What gas our jetpack is filled with on initialize var/gas_type = /datum/gas/oxygen + /// If the jetpack is currently active var/on = FALSE - var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not + /// If the jetpack will stop when you stop moving var/stabilize = FALSE + /// If our jetpack is disabled, from getting EMPd + var/disabled = FALSE + /// Callback for the jetpack component var/thrust_callback /obj/item/tank/jetpack/Initialize(mapload) @@ -94,20 +99,18 @@ icon_state = "[initial(icon_state)][on ? "-on" : ""]" /obj/item/tank/jetpack/proc/turn_on(mob/user) + if(disabled) + return FALSE if(SEND_SIGNAL(src, COMSIG_JETPACK_ACTIVATED, user) & JETPACK_ACTIVATION_FAILED) return FALSE on = TRUE update_icon(UPDATE_ICON_STATE) - if(full_speed) - user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) return TRUE /obj/item/tank/jetpack/proc/turn_off(mob/user) SEND_SIGNAL(src, COMSIG_JETPACK_DEACTIVATED, user) on = FALSE update_icon(UPDATE_ICON_STATE) - if(user) - user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/allow_thrust(num, use_fuel = TRUE) if(!ismob(loc)) @@ -139,6 +142,23 @@ suffocater.visible_message(span_suicide("[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!")) return OXYLOSS +/obj/item/tank/jetpack/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_CONTENTS) + return + if(ismob(loc) && (item_flags & IN_INVENTORY)) + var/mob/wearer = loc + turn_off(wearer) + else + turn_off() + update_item_action_buttons() + disabled = TRUE + addtimer(CALLBACK(src, PROC_REF(remove_emp)), 4 SECONDS) + +///Removes the disabled flag after getting EMPd +/obj/item/tank/jetpack/proc/remove_emp() + disabled = FALSE + /obj/item/tank/jetpack/improvised name = "improvised jetpack" desc = "A jetpack made from two air tanks, a fire extinguisher and some atmospherics equipment. It doesn't look like it can hold much." @@ -148,7 +168,6 @@ worn_icon_state = "jetpack-improvised" volume = 20 //normal jetpacks have 70 volume gas_type = null //it starts empty - full_speed = FALSE //moves at modsuit jetpack speeds /obj/item/tank/jetpack/improvised/allow_thrust(num) if(!ismob(loc)) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 45c20e9908bf4..8094a9a21c863 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -295,8 +295,8 @@ var/Adj = user.Adjacent(interacting_with) if(nozzle_mode == RESIN_LAUNCHER) - if(Adj) - return ITEM_INTERACT_BLOCKING //Safety check so you don't blast yourself trying to refill your tank + if(Adj && user.combat_mode) + return ITEM_INTERACT_SKIP_TO_ATTACK var/datum/reagents/R = reagents if(R.total_volume < 100) balloon_alert(user, "not enough water!") @@ -316,7 +316,9 @@ return ITEM_INTERACT_SUCCESS if(nozzle_mode == RESIN_FOAM) - if(!Adj || !isturf(interacting_with)) + if(!isturf(interacting_with)) + return NONE + if(!Adj) balloon_alert(user, "too far!") return ITEM_INTERACT_BLOCKING for(var/thing in interacting_with) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 3eea2400aa24f..5384a11cf3bbe 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -387,7 +387,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 2 throwforce = 10 //10 + 2 (WEIGHT_CLASS_SMALL) * 4 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = 18 damage on hit due to guaranteed embedding throw_speed = 4 - embedding = list("pain_mult" = 4, "embed_chance" = 100, "fall_chance" = 0) + embed_type = /datum/embed_data/throwing_star armour_penetration = 40 w_class = WEIGHT_CLASS_SMALL @@ -395,11 +395,22 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 5) resistance_flags = FIRE_PROOF +/datum/embed_data/throwing_star + pain_mult = 4 + embed_chance = 100 + fall_chance = 0 + /obj/item/throwing_star/stamina name = "shock throwing star" desc = "An aerodynamic disc designed to cause excruciating pain when stuck inside fleeing targets, hopefully without causing fatal harm." throwforce = 5 - embedding = list("pain_chance" = 5, "embed_chance" = 100, "fall_chance" = 0, "jostle_chance" = 10, "pain_stam_pct" = 0.8, "jostle_pain_mult" = 3) + embed_type = /datum/embed_data/throwing_star/stamina + +/datum/embed_data/throwing_star/stamina + pain_mult = 5 + jostle_chance = 10 + pain_stam_pct = 0.8 + jostle_pain_mult = 3 /obj/item/throwing_star/toy name = "toy throwing star" @@ -407,7 +418,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 sharpness = NONE force = 0 throwforce = 0 - embedding = list("pain_mult" = 0, "jostle_pain_mult" = 0, "embed_chance" = 100, "fall_chance" = 0) + embed_type = /datum/embed_data/throwing_star/toy + +/datum/embed_data/throwing_star/toy + pain_mult = 0 + jostle_pain_mult = 0 /obj/item/switchblade name = "switchblade" @@ -762,6 +777,40 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 inhand_icon_state = "hoverboard_nt" board_item_type = /obj/vehicle/ridden/scooter/skateboard/hoverboard/admin +/obj/item/melee/skateboard/holyboard + name = "holy skateboard" + desc = "A board blessed by the gods with the power to grind for our sins. Has the initials 'J.C.' on the underside." + icon_state = "hoverboard_holy_held" + inhand_icon_state = "hoverboard_holy" + force = 18 + throwforce = 6 + w_class = WEIGHT_CLASS_NORMAL + attack_verb_continuous = list("bashes", "crashes", "grinds", "skates") + attack_verb_simple = list("bash", "crash", "grind", "skate") + board_item_type = /obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded + +/obj/item/melee/skateboard/holyboard/Initialize(mapload) + . = ..() + AddComponent(/datum/component/anti_magic, MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY) + AddComponent(/datum/component/effect_remover, \ + success_feedback = "You disrupt the magic of %THEEFFECT with %THEWEAPON.", \ + success_forcesay = "BEGONE FOUL MAGICKS!!", \ + tip_text = "Clear rune", \ + on_clear_callback = CALLBACK(src, PROC_REF(on_cult_rune_removed)), \ + effects_we_clear = list(/obj/effect/rune, /obj/effect/heretic_rune) \ + ) + AddElement(/datum/element/bane, target_type = /mob/living/basic/revenant, damage_multiplier = 0, added_damage = 25, requires_combat_mode = FALSE) + +/obj/item/melee/skateboard/holyboard/proc/on_cult_rune_removed(obj/effect/target, mob/living/user) + SIGNAL_HANDLER + if(!istype(target, /obj/effect/rune)) + return + + var/obj/effect/rune/target_rune = target + if(target_rune.log_when_erased) + user.log_message("erased [target_rune.cultist_name] rune using [src]", LOG_GAME) + SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_NARNAR] = TRUE + /obj/item/melee/baseball_bat name = "baseball bat" desc = "There ain't a skull in the league that can withstand a swatter." @@ -1048,7 +1097,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 25 throw_speed = 4 attack_speed = CLICK_CD_HYPER_RAPID - embedding = list("embed_chance" = 100) + embed_type = /datum/embed_data/hfr_blade block_chance = 25 block_sound = 'sound/weapons/parry.ogg' sharpness = SHARP_EDGED @@ -1063,6 +1112,9 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /// The previous target we attacked var/datum/weakref/previous_target +/datum/embed_data/hfr_blade + embed_chance = 100 + /obj/item/highfrequencyblade/Initialize(mapload) . = ..() AddComponent(/datum/component/two_handed, \ diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 215fa6d86ed3d..7531b8bacfdcd 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -34,11 +34,9 @@ /obj/structure/closet/secure_closet/cytology/PopulateContents() . = ..() new /obj/item/pushbroom(src) - new /obj/item/plunger(src) new /obj/item/storage/bag/xeno(src) new /obj/item/storage/box/petridish(src) - new /obj/item/stack/ducts/fifty(src) for(var/i in 1 to 2) new /obj/item/biopsy_tool(src) new /obj/item/storage/box/swab(src) - new /obj/item/construction/plumbing/research(src) + new /obj/item/reagent_containers/condiment/protein(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index aab8e4b858286..64be6a4df8dac 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -20,7 +20,7 @@ /obj/structure/closet/syndicate/personal/PopulateContents() ..() new /obj/item/trench_tool(src) - new /obj/item/clothing/glasses/night(src) + new /obj/item/clothing/glasses/night/colorless(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/storage/belt/military(src) new /obj/item/storage/belt/holster/nukie(src) diff --git a/code/game/objects/structures/fake_stairs.dm b/code/game/objects/structures/fake_stairs.dm index a5e03ed6b5986..1152a8c02dcca 100644 --- a/code/game/objects/structures/fake_stairs.dm +++ b/code/game/objects/structures/fake_stairs.dm @@ -6,6 +6,7 @@ anchored = TRUE move_resist = INFINITY + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE //one with the floor MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fake_stairs, 0) diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 82569c8f9e794..7acfa65f62577 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -87,7 +87,7 @@ icon = 'icons/obj/mining_zones/survival_pod.dmi' icon_state = "fan_tiny" plane = FLOOR_PLANE - layer = LOW_OBJ_LAYER + layer = ABOVE_OPEN_TURF_LAYER /** * A variety of statue in disrepair; parts are broken off and a gemstone is missing diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 3bd3e00cc273b..aa9af66868fdd 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -17,6 +17,8 @@ integrity_failure = 0.4 var/rods_type = /obj/item/stack/rods var/rods_amount = 2 + /// Whether or not we're disappearing but dramatically + var/dramatically_disappearing = FALSE /datum/armor/structure_grille melee = 50 @@ -365,6 +367,31 @@ /obj/structure/grille/get_dumping_location() return null +/obj/structure/grille/proc/temporary_shatter(time_to_go = 0 SECONDS, time_to_return = 4 SECONDS) + if(dramatically_disappearing) + return + + //dissapear in 1 second + dramatically_disappearing = TRUE + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, moveToNullspace)), time_to_go) //woosh + + // come back in 1 + 4 seconds + addtimer(VARSET_CALLBACK(src, atom_integrity, atom_integrity), time_to_go + time_to_return) //set the health back (icon is updated on move) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, forceMove), loc), time_to_go + time_to_return) //we back boys + addtimer(VARSET_CALLBACK(src, dramatically_disappearing, FALSE), time_to_go + time_to_return) //also set the var back + +/// Do some very specific checks to see if we *would* get shocked. Returns TRUE if it's shocked +/obj/structure/grille/proc/is_shocked() + var/turf/turf = get_turf(src) + var/obj/structure/cable/cable = turf.get_cable_node() + var/list/powernet_info = get_powernet_info_from_source(cable) + + if(!powernet_info) + return FALSE + + var/datum/powernet/powernet = powernet_info["powernet"] + return !!powernet.get_electrocute_damage() + /obj/structure/grille/broken // Pre-broken grilles for map placement icon_state = "brokengrille" density = FALSE diff --git a/code/game/objects/structures/gym/punching_bag.dm b/code/game/objects/structures/gym/punching_bag.dm index 03a64725ab5e3..59ccf6f23c2c3 100644 --- a/code/game/objects/structures/gym/punching_bag.dm +++ b/code/game/objects/structures/gym/punching_bag.dm @@ -58,6 +58,10 @@ if (is_heavy_gravity) stamina_exhaustion *= 1.5 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + stamina_exhaustion *= potential_spine.athletics_boost_multiplier + if(HAS_TRAIT(user, TRAIT_STRENGTH)) //The strong get reductions to stamina damage taken while exercising stamina_exhaustion *= 0.5 diff --git a/code/game/objects/structures/gym/weight_machine.dm b/code/game/objects/structures/gym/weight_machine.dm index 3c531f0488929..352ef65ff0050 100644 --- a/code/game/objects/structures/gym/weight_machine.dm +++ b/code/game/objects/structures/gym/weight_machine.dm @@ -171,10 +171,14 @@ var/workout_reps = total_workout_reps[user.mind.get_skill_level(/datum/skill/athletics)] * gravity_modifier // total stamina drain of 1 workout calculated based on the workout length var/stamina_exhaustion = FLOOR(user.maxHealth / workout_reps / WORKOUT_LENGTH, 0.1) - + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + stamina_exhaustion *= potential_spine.athletics_boost_multiplier + if(HAS_TRAIT(user, TRAIT_STRENGTH)) //The strong get reductions to stamina damage taken while exercising stamina_exhaustion *= 0.5 - + user.adjustStaminaLoss(stamina_exhaustion * seconds_per_tick) return TRUE diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index ef6ea9d433e8f..314539aa2b412 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -105,7 +105,20 @@ /obj/structure/ladder/proc/start_travelling(mob/user, going_up) show_initial_fluff_message(user, going_up) - if(do_after(user, travel_time, target = src, interaction_key = DOAFTER_SOURCE_CLIMBING_LADDER)) + + // Our climbers athletics ability + var/fitness_level = user.mind?.get_skill_level(/datum/skill/athletics) + + // Misc bonuses to the climb speed. + var/misc_multiplier = 1 + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + misc_multiplier *= potential_spine.athletics_boost_multiplier + + var/final_travel_time = (travel_time - fitness_level) * misc_multiplier + + if(do_after(user, final_travel_time, target = src, interaction_key = DOAFTER_SOURCE_CLIMBING_LADDER)) travel(user, going_up) /// The message shown when the player starts climbing the ladder diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index cf6fe65abe274..0d7d23191742c 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -23,6 +23,7 @@ if(length(give_turf_traits)) give_turf_traits = string_list(give_turf_traits) AddElement(/datum/element/give_turf_traits, give_turf_traits) + AddElement(/datum/element/footstep_override, footstep = FOOTSTEP_CATWALK) /datum/armor/structure_lattice melee = 50 @@ -98,10 +99,6 @@ obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP give_turf_traits = list(TRAIT_TURF_IGNORE_SLOWDOWN, TRAIT_LAVA_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_IMMERSE_STOPPED, TRAIT_HYPERSPACE_STOPPED) -/obj/structure/lattice/catwalk/Initialize(mapload) - . = ..() - AddElement(/datum/element/footstep_override, footstep = FOOTSTEP_CATWALK) - /obj/structure/lattice/catwalk/deconstruction_hints(mob/user) return span_notice("The supporting rods look like they could be cut.") diff --git a/code/game/objects/structures/lavaland/gulag_vent.dm b/code/game/objects/structures/lavaland/gulag_vent.dm index b564908cdc6c1..c269c5213e71a 100644 --- a/code/game/objects/structures/lavaland/gulag_vent.dm +++ b/code/game/objects/structures/lavaland/gulag_vent.dm @@ -30,7 +30,14 @@ var/mob/living/living_user = user occupied = TRUE living_user.balloon_alert_to_viewers("hauling...") - var/succeeded = do_after(living_user, 8 SECONDS, src) + + var/boulder_lift_speed = 8 SECONDS + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = living_user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + boulder_lift_speed *= potential_spine.athletics_boost_multiplier + + var/succeeded = do_after(living_user, boulder_lift_speed, src) occupied = FALSE if (!succeeded) return diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 2ede6833aa992..bf69b23238c61 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -134,6 +134,8 @@ GLOBAL_LIST_INIT(tendrils, list()) playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE) visible_message(span_boldannounce("The tendril falls inward, the ground around it widening into a yawning chasm!")) for(var/turf/T in RANGE_TURFS(2,src)) + if(HAS_TRAIT(T, TRAIT_NO_TERRAFORM)) + continue if(!T.density) T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR) qdel(src) diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm index 27e05b6dc540d..cb9d203e3f2c7 100644 --- a/code/game/objects/structures/lavaland/ore_vent.dm +++ b/code/game/objects/structures/lavaland/ore_vent.dm @@ -85,6 +85,7 @@ RegisterSignal(src, COMSIG_SPAWNER_SPAWNED_DEFAULT, PROC_REF(anti_cheese)) RegisterSignal(src, COMSIG_SPAWNER_SPAWNED, PROC_REF(log_mob_spawned)) + AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_NO_TERRAFORM))) return ..() /obj/structure/ore_vent/Destroy() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 9baf7cb14fb8f..b80cee093fc66 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -425,6 +425,10 @@ GLOBAL_LIST_EMPTY(crematoriums) /obj/structure/bodycontainer/crematorium/Initialize(mapload) . = ..() + if(mapload && check_holidays(ICE_CREAM_DAY) && !istype(src, /obj/structure/bodycontainer/crematorium/creamatorium)) + var/obj/structure/bodycontainer/crematorium/creamatorium/creamy = new(loc) + creamy.id = id + return INITIALIZE_HINT_QDEL GLOB.crematoriums += src /obj/structure/bodycontainer/crematorium/Destroy() diff --git a/code/game/objects/structures/signs/signs_departments.dm b/code/game/objects/structures/signs/signs_departments.dm index e663ef2411e62..532cbcfc426ad 100644 --- a/code/game/objects/structures/signs/signs_departments.dm +++ b/code/game/objects/structures/signs/signs_departments.dm @@ -215,6 +215,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/departments/lawyer, 32) MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/departments/cargo, 32) +/obj/structure/sign/departments/exodrone + name = "\improper Exodrone sign" + sign_change_name = "Department - Cargo: exodrone" + desc = "A sign labelling an area where exodrones are used." + icon_state = "exodrone" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/departments/exodrone, 32) + ///////SECURITY /obj/structure/sign/departments/security diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 69c6aca505f36..546b6ad796827 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -275,6 +275,11 @@ else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) tableplace_delay = 2.75 SECONDS skills_space = " quickly" + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + tableplace_delay *= potential_spine.athletics_boost_multiplier + carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."), span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]...")) if(do_after(user, tableplace_delay, target = carried_mob)) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 195fbbc643e0a..4c22cbf01b29d 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -1,13 +1,3 @@ -/* Windoor (window door) assembly -Nodrak - * Step 1: Create a windoor out of rglass - * Step 2: Add r-glass to the assembly to make a secure windoor (Optional) - * Step 3: Rotate or Flip the assembly to face and open the way you want - * Step 4: Wrench the assembly in place - * Step 5: Add cables to the assembly - * Step 6: Set access for the door. - * Step 7: Screwdriver the door to complete - */ - /obj/structure/windoor_assembly icon = 'icons/obj/doors/windoor.dmi' @@ -20,15 +10,30 @@ dir = NORTH obj_flags = CAN_BE_HIT | BLOCKS_CONSTRUCTION_DIR set_dir_on_move = FALSE + can_atmos_pass = ATMOS_PASS_PROC + /// Reference to the airlock electronics inside for determining window access. var/obj/item/electronics/airlock/electronics = null + /// Player generated name string from renaming. var/created_name = null //Vars to help with the icon's name - var/facing = "l" //Does the windoor open to the left or right? - var/secure = FALSE //Whether or not this creates a secure windoor - var/state = "01" //How far the door assembly has progressed - can_atmos_pass = ATMOS_PASS_PROC + ///Does the windoor open to the left or right? + var/facing = "l" + ///Whether or not this creates a secure windoor + var/secure = FALSE + /** + * Windoor (window door) assembly -Nodrak + * Step 1: Create a windoor out of rglass + * Step 2: Add r-glass to the assembly to make a secure windoor (Optional) + * Step 3: Rotate or Flip the assembly to face and open the way you want + * Step 4: Wrench the assembly in place + * Step 5: Add cables to the assembly + * Step 6: Set access for the door. + * Step 7: Crowbar the door to complete + */ + var/state = "01" + /obj/structure/windoor_assembly/Initialize(mapload, set_dir) . = ..() @@ -279,6 +284,21 @@ //Update to reflect changes(if applicable) update_appearance() +/obj/structure/windoor_assembly/examine(mob/user) + . = ..() + if(!anchored) + . += span_notice("\The [src] can be [span_boldnotice("wrenched")] down.") + . += span_notice("\The [src] could also be [span_boldnotice("cut apart")] with a [span_boldnotice("welder")].") + return + switch(state) + if("01") + . += span_notice("\The [src] needs [span_boldnotice("wiring")], or could be [span_boldnotice("un-wrenched")] from the floor.") + if("02") + if(!electronics) + . += span_notice("\The [src] needs [span_boldnotice("airlock electronics")] to continue installation, or [span_boldnotice("wirecutters")] to take apart.") + else + . += span_notice("\The [src] is ready to be [span_boldnotice("levered")] into place with a [span_boldnotice("crowbar")].") + /obj/structure/windoor_assembly/proc/finish_door() var/obj/machinery/door/window/windoor if(secure) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6c41b2f8b157d..b2b3ee50df64c 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -35,6 +35,8 @@ var/bloodied = FALSE ///Datum that the shard and debris type is pulled from for when the glass is broken. var/datum/material/glass_material_datum = /datum/material/glass + /// Whether or not we're disappearing but dramatically + var/dramatically_disappearing = FALSE /datum/armor/structure_window melee = 50 @@ -428,6 +430,36 @@ return TRUE +/obj/structure/window/proc/temporary_shatter(time_to_go = 1 SECONDS, time_to_return = 4 SECONDS, take_grill = TRUE) + if(dramatically_disappearing) + return + + // do a cute breaking animation + var/static/time_interval = 2 DECISECONDS //per how many steps should we do damage? + for(var/damage_step in 1 to (floor(time_to_go / time_interval) - 1)) //10 ds / 2 ds = 5 damage steps, minus 1 so we dont actually break it + // slowly drain our total health for the illusion of shattering + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, take_damage), floor(atom_integrity / (time_to_go / time_interval))), time_interval * damage_step) + + //dissapear in 1 second + dramatically_disappearing = TRUE + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), loc, break_sound, 70, TRUE), time_to_go) //SHATTER SOUND + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, moveToNullspace)), time_to_go) //woosh + + // come back in 1 + 4 seconds + addtimer(VARSET_CALLBACK(src, atom_integrity, atom_integrity), time_to_go + time_to_return) //set the health back (icon is updated on move) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, forceMove), loc), time_to_go + time_to_return) //we back boys + addtimer(VARSET_CALLBACK(src, dramatically_disappearing, FALSE), time_to_go + time_to_return) //also set the var back + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), time_to_go + time_to_return) + + var/obj/structure/grille/grill = take_grill ? (locate(/obj/structure/grille) in loc) : null + if(grill) + grill.temporary_shatter(time_to_go, time_to_return) + +/obj/structure/window/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + if(loc) + update_nearby_icons() + MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/spawner, 0) /obj/structure/window/unanchored diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 4b0f7961d51ff..ed31138bb19f8 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -99,7 +99,7 @@ if(is_station_level(z)) GLOB.station_turfs += src if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS && fixed_underlay) //Set underlays for the diagonal walls. - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, offset_spokesman = src, plane = FLOOR_PLANE) + var/mutable_appearance/underlay_appearance = mutable_appearance(layer = LOW_FLOOR_LAYER, offset_spokesman = src, plane = FLOOR_PLANE) if(fixed_underlay["space"]) generate_space_underlay(underlay_appearance, src) else diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 7297f8433261e..147e123c8af28 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -1,4 +1,5 @@ /turf/open + layer = LOW_FLOOR_LAYER plane = FLOOR_PLANE ///negative for faster, positive for slower var/slowdown = 0 diff --git a/code/game/turfs/open/asteroid.dm b/code/game/turfs/open/asteroid.dm index 8db5753a7196b..cf28cdc3a4631 100644 --- a/code/game/turfs/open/asteroid.dm +++ b/code/game/turfs/open/asteroid.dm @@ -311,3 +311,18 @@ GLOBAL_LIST_EMPTY(dug_up_basalt) floor_variance = 0 base_icon_state = "moon_dug" icon_state = "moon_dug" + + //used in outpost45 + +/turf/open/misc/asteroid/plasma //floor piece + gender = PLURAL + name = "asteroid gravel" + desc = "It's coarse and rough and gets everywhere." + baseturfs = /turf/open/misc/asteroid + icon = 'icons/turf/floors.dmi' + damaged_dmi = 'icons/turf/floors.dmi' + icon_state = "asteroid" + base_icon_state = "asteroid" + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9" + planetary_atmos = TRUE + diff --git a/code/game/turfs/open/floor/catwalk_plating.dm b/code/game/turfs/open/floor/catwalk_plating.dm index 57bd0b74107ee..6e2979b8512f9 100644 --- a/code/game/turfs/open/floor/catwalk_plating.dm +++ b/code/game/turfs/open/floor/catwalk_plating.dm @@ -19,14 +19,10 @@ rust_resistance = RUST_RESISTANCE_BASIC var/covered = TRUE var/catwalk_type = "maint" - var/static/list/catwalk_underlays = list() /turf/open/floor/catwalk_floor/Initialize(mapload) . = ..() - if(!catwalk_underlays[catwalk_type]) - var/mutable_appearance/plating_underlay = mutable_appearance(icon, "[catwalk_type]_below", TURF_LAYER) - catwalk_underlays[catwalk_type] = plating_underlay - underlays += catwalk_underlays[catwalk_type] + underlays += mutable_appearance(icon, "[catwalk_type]_below", LOW_FLOOR_LAYER, src, FLOOR_PLANE) update_appearance() /turf/open/floor/catwalk_floor/examine(mob/user) @@ -43,7 +39,7 @@ covered = !covered if(!covered) underfloor_accessibility = UNDERFLOOR_INTERACTABLE - layer = TURF_LAYER + layer = LOW_FLOOR_LAYER icon_state = "[catwalk_type]_below" else underfloor_accessibility = UNDERFLOOR_VISIBLE @@ -80,12 +76,6 @@ floor_tile = /obj/item/stack/tile/catwalk_tile/iron_dark catwalk_type = "darkiron" -/turf/open/floor/catwalk_floor/flat_white - name = "white large plated catwalk floor" - icon_state = "flatwhite_above" - floor_tile = /obj/item/stack/tile/catwalk_tile/flat_white - catwalk_type = "flatwhite" - /turf/open/floor/catwalk_floor/titanium name = "titanium plated catwalk floor" icon_state = "titanium_above" @@ -115,9 +105,6 @@ /turf/open/floor/catwalk_floor/iron_dark/telecomms initial_gas_mix = TCOMMS_ATMOS -/turf/open/floor/catwalk_floor/flat_white/airless - initial_gas_mix = AIRLESS_ATMOS - /turf/open/floor/catwalk_floor/titanium/Airless initial_gas_mix = AIRLESS_ATMOS diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index cfece702af4f1..e672b7f7294fa 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -871,6 +871,7 @@ icon = 'icons/turf/space.dmi' icon_state = "space" floor_tile = /obj/item/stack/tile/fakespace + layer = SPACE_LAYER plane = PLANE_SPACE tiled_dirt = FALSE damaged_dmi = 'icons/turf/space.dmi' diff --git a/code/game/turfs/open/openspace.dm b/code/game/turfs/open/openspace.dm index 677bc776ea5a7..1af42be3071cd 100644 --- a/code/game/turfs/open/openspace.dm +++ b/code/game/turfs/open/openspace.dm @@ -10,6 +10,7 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT pathing_pass_method = TURF_PATHING_PASS_PROC plane = TRANSPARENT_FLOOR_PLANE + layer = SPACE_LAYER rust_resistance = RUST_RESISTANCE_ABSOLUTE var/can_cover_up = TRUE var/can_build_on = TRUE @@ -199,6 +200,10 @@ /turf/open/openspace/icemoon/keep_below drill_below = FALSE +/turf/open/openspace/xenobio + name = "xenobio bz air" + initial_gas_mix = XENOBIO_BZ + /turf/open/openspace/icemoon/ruins protect_ruin = FALSE drill_below = FALSE diff --git a/code/game/turfs/open/planet.dm b/code/game/turfs/open/planet.dm index 893942fc49c52..e0fe7e842b941 100644 --- a/code/game/turfs/open/planet.dm +++ b/code/game/turfs/open/planet.dm @@ -78,6 +78,9 @@ /turf/open/misc/grass/jungle/lavaland initial_gas_mix = LAVALAND_DEFAULT_ATMOS +/turf/open/misc/grass/jungle/station + baseturfs = /turf/open/misc/dirt/station + /turf/closed/mineral/random/jungle baseturfs = /turf/open/misc/dirt/dark/jungle diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index e01a305c24c6c..4534ae9d93cff 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -38,16 +38,6 @@ * (IE, no wacky hair styles / colors) */ /proc/randomize_human_normie(mob/living/carbon/human/human, randomize_mutations = FALSE) - var/static/list/natural_hair_colors = list( - "#111111", "#362925", "#3B3831", "#41250C", "#412922", - "#544C49", "#583322", "#593029", "#703b30", "#714721", - "#744729", "#74482a", "#7b746e", "#855832", "#863019", - "#8c4734", "#9F550E", "#A29A96", "#A4381C", "#B17B41", - "#C0BAB7", "#EFE5E4", "#F7F3F1", "#FFF2D6", "#a15537", - "#a17e61", "#b38b67", "#ba673c", "#c89f73", "#d9b380", - "#dbc9b8", "#e1621d", "#e17d17", "#e1af93", "#f1cc8f", - "#fbe7a1", - ) // Sorry enbys but statistically you are not average enough human.gender = human.dna.species.sexes ? pick(MALE, FEMALE) : PLURAL human.physique = human.gender @@ -57,14 +47,14 @@ human.eye_color_right = human.eye_color_left human.skin_tone = pick(GLOB.skin_tones) // No underwear generation handled here - var/picked_color = pick(natural_hair_colors) + var/picked_color = random_hair_color() human.set_haircolor(picked_color, update = FALSE) human.set_facial_haircolor(picked_color, update = FALSE) var/datum/sprite_accessory/hairstyle = SSaccessories.hairstyles_list[random_hairstyle(human.gender)] - if(hairstyle?.natural_spawn) + if(hairstyle && hairstyle.natural_spawn && !hairstyle.locked) human.set_hairstyle(hairstyle.name, update = FALSE) var/datum/sprite_accessory/facial_hair = SSaccessories.facial_hairstyles_list[random_facial_hairstyle(human.gender)] - if(facial_hair?.natural_spawn) + if(facial_hair && facial_hair.natural_spawn && !facial_hair.locked) human.set_facial_hairstyle(facial_hair.name, update = FALSE) // Normal DNA init stuff, these can generally be wacky but we care less, they're aliens after all human.dna.initialize_dna(newblood_type = random_blood_type(), create_mutation_blocks = randomize_mutations, randomize_features = TRUE) diff --git a/code/modules/admin/outfit_manager.dm b/code/modules/admin/outfit_manager.dm index f3ef7d2685c22..c5f14db8ae3e8 100644 --- a/code/modules/admin/outfit_manager.dm +++ b/code/modules/admin/outfit_manager.dm @@ -7,9 +7,6 @@ ADMIN_VERB(outfit_manager, R_DEBUG|R_ADMIN, "Outfit Manager", "View and edit out /datum/outfit_manager/ui_state(mob/user) return GLOB.admin_state -/datum/outfit_manager/ui_close(mob/user) - qdel(src) - /datum/outfit_manager/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 9a713588abd6d..74955324dffd4 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -396,6 +396,7 @@ ROLE_SYNDICATE, ROLE_TRAITOR, ROLE_WIZARD, + ROLE_VOIDWALKER, ), ) for(var/department in long_job_lists) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2ba75020d48d1..13f5b3544b2a0 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1413,7 +1413,7 @@ if(response.body == "[]") dat += "
0 bans detected for [ckey]
" else - bans = json_decode(response["body"]) + bans = json_decode(response.body) //Ignore bans from non-whitelisted sources, if a whitelist exists var/list/valid_sources diff --git a/code/modules/admin/verbs/adminevents.dm b/code/modules/admin/verbs/adminevents.dm index 035edeb3d93e4..4bf32dedb41c1 100644 --- a/code/modules/admin/verbs/adminevents.dm +++ b/code/modules/admin/verbs/adminevents.dm @@ -8,6 +8,8 @@ ADMIN_VERB_AND_CONTEXT_MENU(cmd_admin_subtle_message, R_ADMIN, "Subtle Message", message_admins("[key_name_admin(user)] decided not to answer [ADMIN_LOOKUPFLW(target)]'s prayer") return + msg = user.reformat_narration(msg) + target.balloon_alert(target, "you hear a voice") to_chat(target, "You hear a voice in your head... [msg]", confidential = TRUE) @@ -53,6 +55,8 @@ ADMIN_VERB_AND_CONTEXT_MENU(cmd_admin_headset_message, R_ADMIN, "Headset Message message_admins("[key_name_admin(src)] decided not to answer [key_name_admin(target)]'s [sender] request.") return + input = reformat_narration(input) + log_directed_talk(mob, target, input, LOG_ADMIN, "reply") message_admins("[key_name_admin(src)] replied to [key_name_admin(target)]'s [sender] message with: \"[input]\"") target.balloon_alert(target, "you hear a voice") @@ -64,6 +68,7 @@ ADMIN_VERB(cmd_admin_world_narrate, R_ADMIN, "Global Narrate", "Send a direct na var/msg = input(user, "Message:", "Enter the text you wish to appear to everyone:") as text|null if (!msg) return + msg = user.reformat_narration(msg) to_chat(world, "[msg]", confidential = TRUE) log_admin("GlobalNarrate: [key_name(user)] : [msg]") message_admins(span_adminnotice("[key_name_admin(user)] Sent a global narrate")) @@ -76,6 +81,7 @@ ADMIN_VERB_AND_CONTEXT_MENU(cmd_admin_local_narrate, R_ADMIN, "Local Narrate", A var/msg = input(user, "Message:", "Enter the text you wish to appear to everyone within view:") as text|null if (!msg) return + msg = user.reformat_narration(msg) for(var/mob/M in view(range, locale)) to_chat(M, msg, confidential = TRUE) @@ -89,6 +95,8 @@ ADMIN_VERB_AND_CONTEXT_MENU(cmd_admin_direct_narrate, R_ADMIN, "Direct Narrate", if( !msg ) return + msg = user.reformat_narration(msg) + to_chat(target, msg, confidential = TRUE) log_admin("DirectNarrate: [key_name(user)] to ([key_name(target)]): [msg]") msg = span_adminnotice(" DirectNarrate: [key_name_admin(user)] to ([key_name_admin(target)]): [msg]
") @@ -278,3 +286,14 @@ ADMIN_VERB(command_report_footnote, R_ADMIN, "Command Report Footnote", "Adds a ADMIN_VERB(delay_command_report, R_FUN, "Delay Command Report", "Prevents the roundstart command report from being sent; or forces it to send it delayed.", ADMIN_CATEGORY_EVENTS) GLOB.communications_controller.block_command_report = !GLOB.communications_controller.block_command_report message_admins("[key_name_admin(user)] has [(GLOB.communications_controller.block_command_report ? "delayed" : "sent")] the roundstart command report.") + +///Reformats a narration message. First provides a prompt asking if the user wants to reformat their message, then allows them to pick from a list of spans to use. +/client/proc/reformat_narration(input) + if(tgui_alert(mob, "Set a custom text format?", "Make it snazzy!", list("Yes", "No")) == "Yes") + var/text_span = tgui_input_list(mob, "Select a span!", "Immersion! Yeah!", GLOB.spanname_to_formatting) + if(isnull(text_span)) //In case the user just quit the prompt. + return text_span + text_span = GLOB.spanname_to_formatting[text_span] + input = "" + input + "" + + return input diff --git a/code/modules/admin/verbs/ai_triumvirate.dm b/code/modules/admin/verbs/ai_triumvirate.dm new file mode 100644 index 0000000000000..d63994a25c319 --- /dev/null +++ b/code/modules/admin/verbs/ai_triumvirate.dm @@ -0,0 +1,49 @@ + +///global reference to the current theme, if there is one. +GLOBAL_DATUM(triple_ai_controller, /datum/triple_ai_controller) + +/** + * The triple ai controller handles the admin triple AI mode, if enabled. + * It is first created when "Toggle AI Triumvirate" triggers it, and it can be referenced from GLOB.triple_ai_controller + * After it handles roundstart business, it cleans itself up. + */ +/datum/triple_ai_controller + +/datum/triple_ai_controller/New() + . = ..() + RegisterSignal(SSjob, COMSIG_OCCUPATIONS_DIVIDED, PROC_REF(on_occupations_divided)) + +/datum/triple_ai_controller/proc/on_occupations_divided(datum/source, pure, allow_all) + SIGNAL_HANDLER + + for(var/datum/job/ai/ai_datum in SSjob.joinable_occupations) + ai_datum.spawn_positions = 3 + if(!pure) + for(var/obj/effect/landmark/start/ai/secondary/secondary_ai_spawn in GLOB.start_landmarks_list) + secondary_ai_spawn.latejoin_active = TRUE + qdel(src) + +/datum/triple_ai_controller/Destroy(force) + UnregisterSignal(SSjob, COMSIG_OCCUPATIONS_DIVIDED) + GLOB.triple_ai_controller = null + . = ..() + +/client/proc/triple_ai() + set category = "Admin.Events" + set name = "Toggle AI Triumvirate" + + if(SSticker.current_state > GAME_STATE_PREGAME) + to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.", confidential = TRUE) + return + + var/datum/job/job = SSjob.GetJobType(/datum/job/ai) + if(!job) + to_chat(usr, "Unable to locate the AI job", confidential = TRUE) + CRASH("triple_ai() called, no /datum/job/ai to be found.") + + if(!GLOB.triple_ai_controller) + GLOB.triple_ai_controller = new() + else + QDEL_NULL(GLOB.triple_ai_controller) + to_chat(usr, "There will[GLOB.triple_ai_controller ? "" : "not"] be an AI Triumvirate at round start.") + message_admins(span_adminnotice("[key_name_admin(usr)] has toggled [GLOB.triple_ai_controller ? "on" : "off"] triple AIs at round start.")) diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index c124a5fba2266..107d74d9c3975 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -257,6 +257,11 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w return holder.anon_names() SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Anonymous Names")) + if("tripleAI") + if(!is_funmin) + return + holder.triple_ai() + SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Triple AI")) if("onlyone") if(!is_funmin) return diff --git a/code/modules/admin/verbs/server.dm b/code/modules/admin/verbs/server.dm index eb5684252f8c9..fb7bc16cf24e0 100644 --- a/code/modules/admin/verbs/server.dm +++ b/code/modules/admin/verbs/server.dm @@ -74,6 +74,9 @@ ADMIN_VERB(toggle_ooc_dead, R_ADMIN, "Toggle Dead OOC", "Toggle the OOC channel message_admins("[key_name_admin(user)] toggled Dead OOC.") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dead OOC", "[GLOB.dooc_allowed ? "Enabled" : "Disabled"]")) +ADMIN_VERB(toggle_vote_dead, R_ADMIN, "Toggle Dead Vote", "Toggle the vote for dead players on or off.", ADMIN_CATEGORY_SERVER) + SSvote.toggle_dead_voting(user) + ADMIN_VERB(start_now, R_SERVER, "Start Now", "Start the round RIGHT NOW.", ADMIN_CATEGORY_SERVER) var/static/list/waiting_states = list(GAME_STATE_PREGAME, GAME_STATE_STARTUP) if(!(SSticker.current_state in waiting_states)) diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index a4035acd01421..d9a1b90b0af29 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -3,11 +3,12 @@ /proc/debug_variable(name, value, level, datum/owner, sanitize = TRUE, display_flags = NONE) //if D is a list, name will be index, and value will be assoc value. if(owner) if(islist(owner)) + var/list/list_owner = owner var/index = name if (value) - name = owner[name] //name is really the index until this line + name = list_owner[name] //name is really the index until this line else - value = owner[name] + value = list_owner[name] . = "
  • ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_EDIT, "E", index)]) ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_CHANGE, "C", index)]) ([VV_HREF_TARGET_1V(owner, VV_HK_LIST_REMOVE, "-", index)]) " else . = "
  • ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_EDIT, "E", name)]) ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_CHANGE, "C", name)]) ([VV_HREF_TARGET_1V(owner, VV_HK_BASIC_MASSEDIT, "M", name)]) " diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index c72c97fb73402..d51885d51431f 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -525,6 +525,7 @@ GLOBAL_LIST_EMPTY(antagonists) "antag_team_hud_[REF(src)]", hud_image_on(target), antag_to_check || type, + get_team() && WEAKREF(get_team()), )) // Add HUDs that they couldn't see before diff --git a/code/modules/antagonists/_common/antag_hud.dm b/code/modules/antagonists/_common/antag_hud.dm index 228bfc354dff0..863d52ef5ffe4 100644 --- a/code/modules/antagonists/_common/antag_hud.dm +++ b/code/modules/antagonists/_common/antag_hud.dm @@ -4,9 +4,12 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc /// An alternate appearance that will only show if you have the antag datum /datum/atom_hud/alternate_appearance/basic/has_antagonist var/antag_datum_type + /// Optionally, a weakref to antag team + var/datum/weakref/team_ref -/datum/atom_hud/alternate_appearance/basic/has_antagonist/New(key, image/I, antag_datum_type) +/datum/atom_hud/alternate_appearance/basic/has_antagonist/New(key, image/I, antag_datum_type, datum/weakref/team) src.antag_datum_type = antag_datum_type + team_ref = team GLOB.has_antagonist_huds += src return ..(key, I, NONE) @@ -15,6 +18,9 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc return ..() /datum/atom_hud/alternate_appearance/basic/has_antagonist/mobShouldSee(mob/M) + var/datum/team/antag_team = team_ref?.resolve() + if(!isnull(antag_team)) + return !!(M.mind in antag_team.members) return !!M.mind?.has_antag_datum(antag_datum_type) /// An alternate appearance that will show all the antagonists this mob has diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 440feb91b7622..56ee817f0f5c1 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -187,7 +187,7 @@ desc = "A single-use beacon designed to quickly launch reinforcement clown operatives into the field." special_role_name = ROLE_CLOWN_OPERATIVE outfit = /datum/outfit/syndicate/clownop/no_crystals - antag_datum = /datum/antagonist/nukeop/clownop + antag_datum = /datum/antagonist/nukeop/reinforcement/clownop pod_style = STYLE_HONK use_subtypes = FALSE diff --git a/code/modules/antagonists/abductor/abductee/abductee.dm b/code/modules/antagonists/abductor/abductee/abductee.dm index f1e657a558ea1..fa529a6504415 100644 --- a/code/modules/antagonists/abductor/abductee/abductee.dm +++ b/code/modules/antagonists/abductor/abductee/abductee.dm @@ -6,6 +6,7 @@ */ /datum/antagonist/abductee name = "\improper Abductee" + stinger_sound = 'sound/ambience/antag/abductee.ogg' roundend_category = "abductees" antagpanel_category = ANTAG_GROUP_ABDUCTORS antag_hud_name = "abductee" @@ -18,6 +19,7 @@ to_chat(owner, span_warning("Your mind snaps!")) to_chat(owner, "[span_warning("You can't remember how you got here...")]") owner.announce_objectives() + play_stinger() /datum/antagonist/abductee/proc/give_objective() var/objtype = (prob(75) ? /datum/objective/abductee/random : pick(subtypesof(/datum/objective/abductee/) - /datum/objective/abductee/random)) diff --git a/code/modules/antagonists/brainwashing/brainwashing.dm b/code/modules/antagonists/brainwashing/brainwashing.dm index 524bfb04362db..57707688f4daf 100644 --- a/code/modules/antagonists/brainwashing/brainwashing.dm +++ b/code/modules/antagonists/brainwashing/brainwashing.dm @@ -30,6 +30,7 @@ /datum/antagonist/brainwashed name = "\improper Brainwashed Victim" job_rank = ROLE_BRAINWASHED + stinger_sound = 'sound/ambience/antag/brainwashed.ogg' roundend_category = "brainwashed victims" show_in_antagpanel = TRUE antag_hud_name = "brainwashed" diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index b62b18a02aedf..5f4622bd910a4 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -75,9 +75,14 @@ flashed.balloon_alert(source, "unconscious!") return +#ifdef TESTING + if (isnull(flashed.mind)) + flashed.mind_initialize() +#else if (isnull(flashed.mind) || !GET_CLIENT(flashed)) flashed.balloon_alert(source, "[flashed.p_their()] mind is vacant!") return +#endif for(var/datum/objective/brother_objective as anything in source.mind.get_all_objectives()) // If the objective has a target, are we flashing them? @@ -89,7 +94,7 @@ flashed.balloon_alert(source, "[flashed.p_theyre()] loyal to someone else!") return - if (HAS_TRAIT(flashed, TRAIT_MINDSHIELD) || flashed.mind.assigned_role?.departments_bitflags & DEPARTMENT_BITFLAG_SECURITY) + if (HAS_TRAIT(flashed, TRAIT_MINDSHIELD)) flashed.balloon_alert(source, "[flashed.p_they()] resist!") return @@ -183,6 +188,11 @@ message_admins("[key_name_admin(admin)] made [key_name_admin(new_owner)] into a blood brother.") log_admin("[key_name(admin)] made [key_name(new_owner)] into a blood brother.") +/datum/antagonist/brother/apply_innate_effects(mob/living/mob_override) + . = ..() + var/mob/living/the_mob = owner.current || mob_override + add_team_hud(the_mob) + /datum/antagonist/brother/ui_static_data(mob/user) var/list/data = list() data["antag_name"] = name @@ -219,8 +229,13 @@ /// Adds a new brother to the team /datum/team/brother_team/proc/add_brother(mob/living/new_brother, source) +#ifndef TESTING if (isnull(new_brother) || isnull(new_brother.mind) || !GET_CLIENT(new_brother) || new_brother.mind.has_antag_datum(/datum/antagonist/brother)) return FALSE +#else + if (isnull(new_brother) || new_brother.mind.has_antag_datum(/datum/antagonist/brother)) + return FALSE +#endif set_brothers_left(brothers_left - 1) for (var/datum/mind/brother_mind as anything in members) diff --git a/code/modules/antagonists/clown_ops/clown_weapons.dm b/code/modules/antagonists/clown_ops/clown_weapons.dm index 1c55e5416e247..130b6c9af5f1b 100644 --- a/code/modules/antagonists/clown_ops/clown_weapons.dm +++ b/code/modules/antagonists/clown_ops/clown_weapons.dm @@ -89,7 +89,7 @@ force = 0 throwforce = 0 hitsound = null - embedding = null + embed_type = null light_color = COLOR_YELLOW sword_color_icon = "bananium" active_heat = 0 diff --git a/code/modules/antagonists/clown_ops/clownop.dm b/code/modules/antagonists/clown_ops/clownop.dm index 85cf2c0f631e7..07c1cc84ad756 100644 --- a/code/modules/antagonists/clown_ops/clownop.dm +++ b/code/modules/antagonists/clown_ops/clownop.dm @@ -65,6 +65,11 @@ if(liver) ADD_TRAIT(liver, TRAIT_COMEDY_METABOLISM, CLOWNOP_TRAIT) +// Clown op reinforcements +/datum/antagonist/nukeop/reinforcement/clownop + name = "Clown Operative Reinforcement" + nukeop_outfit = /datum/outfit/syndicate/clownop/no_crystals + /datum/outfit/clown_operative name = "Clown Operative (Preview only)" diff --git a/code/modules/antagonists/clown_ops/outfits.dm b/code/modules/antagonists/clown_ops/outfits.dm index 7dc84b56d856f..fb025e40dbd20 100644 --- a/code/modules/antagonists/clown_ops/outfits.dm +++ b/code/modules/antagonists/clown_ops/outfits.dm @@ -24,6 +24,7 @@ id_trim = /datum/id_trim/chameleon/operative/clown /datum/outfit/syndicate/clownop/no_crystals + name = "Clown Operative - Reinforcement" tc = 0 /datum/outfit/syndicate/clownop/leader diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 33710d9199853..307b4b7324bd8 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -85,6 +85,7 @@ Striking a noncultist, however, will tear their flesh."} speed = 4 SECONDS, \ effectiveness = 100, \ ) + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /obj/item/melee/cultblade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(IS_CULTIST(owner) && prob(final_block_chance)) @@ -634,6 +635,10 @@ Striking a noncultist, however, will tear their flesh."} icon_state = "blindfold" inhand_icon_state = "blindfold" flash_protect = FLASH_PROTECTION_WELDER + actions_types = null + color_cutoffs = list(40, 0, 0) //red + glass_colour_type = null + forced_glass_color = FALSE /obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot) ..() @@ -654,6 +659,10 @@ Striking a noncultist, however, will tear their flesh."} righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/fuel/unholywater = 50) +/obj/item/reagent_containers/cup/beaker/unholywater/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + ///how many times can the shuttle be cursed? #define MAX_SHUTTLE_CURSES 3 ///if the max number of shuttle curses are used within this duration, the entire cult gets an achievement diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 5067dcf979904..2cdb2c2e6f468 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -131,6 +131,7 @@ COOLDOWN_START(src, use_cooldown, use_cooldown_duration) for(var/item_to_make in spawned_items) var/obj/item/made_item = new item_to_make(get_turf(src)) + ADD_TRAIT(made_item, TRAIT_CONTRABAND, INNATE_TRAIT) succcess_message(user, made_item) diff --git a/code/modules/antagonists/cult/datums/cultist.dm b/code/modules/antagonists/cult/datums/cultist.dm index b0fbea4421aa9..f56d79a8f4b18 100644 --- a/code/modules/antagonists/cult/datums/cultist.dm +++ b/code/modules/antagonists/cult/datums/cultist.dm @@ -151,7 +151,8 @@ ///Attempts to make a new item and put it in a potential inventory slot in the provided mob. /datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) - var/item = new item_path(mob) + var/obj/item = new item_path(mob) + ADD_TRAIT(item, TRAIT_CONTRABAND, INNATE_TRAIT) var/where = mob.equip_conspicuous_item(item) if(!where) to_chat(mob, span_userdanger("Unfortunately, you weren't able to get [item]. This is very bad and you should adminhelp immediately (press F1).")) diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 6cfa8db05608f..5b78d1b7efb6c 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -155,7 +155,9 @@ return FALSE for(var/result in result_atoms) - new result(loc) + var/atom/result_item = new result(loc) + if(isitem(result_item)) + ADD_TRAIT(result_item, TRAIT_CONTRABAND, INNATE_TRAIT) return TRUE /** diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 45ddea163fa71..0c64e4a227eaf 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -97,6 +97,7 @@ . = ..() create_storage(storage_type = /datum/storage/pockets/void_cloak) make_visible() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/clothing/suit/hooded/cultrobes/void/equipped(mob/user, slot) . = ..() diff --git a/code/modules/antagonists/heretic/magic/mansus_grasp.dm b/code/modules/antagonists/heretic/magic/mansus_grasp.dm index 483425f3847b5..803bdd3d218e5 100644 --- a/code/modules/antagonists/heretic/magic/mansus_grasp.dm +++ b/code/modules/antagonists/heretic/magic/mansus_grasp.dm @@ -66,6 +66,7 @@ carbon_hit.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/slurring/heretic) carbon_hit.AdjustKnockdown(5 SECONDS) carbon_hit.adjustStaminaLoss(80) + carbon_hit.apply_status_effect(/datum/status_effect/next_shove_stuns) return TRUE diff --git a/code/modules/antagonists/heretic/magic/space_crawl.dm b/code/modules/antagonists/heretic/magic/space_crawl.dm index 49677e3bb5086..90f74a37047f3 100644 --- a/code/modules/antagonists/heretic/magic/space_crawl.dm +++ b/code/modules/antagonists/heretic/magic/space_crawl.dm @@ -84,8 +84,8 @@ RegisterSignal(jaunter, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING), PROC_REF(on_focus_lost)) RegisterSignal(jaunter, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_change)) - our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!")) playsound(our_turf, 'sound/magic/cosmic_energy.ogg', 50, TRUE, -1) + our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!")) new /obj/effect/temp_visual/space_explosion(our_turf) jaunter.extinguish_mob() @@ -102,7 +102,6 @@ if(!exit_jaunt(jaunter, our_turf)) return FALSE - our_turf.visible_message(span_boldwarning("[jaunter] rises out of [our_turf]!")) return TRUE diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index 9bdad0ea5fce5..70133e951af91 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -15,15 +15,7 @@ attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") actions_types = list(/datum/action/item_action/rune_shatter) - embedding = list( - ignore_throwspeed_threshold = TRUE, - embed_chance = 75, - jostle_chance = 2, - jostle_pain_mult = 5, - pain_stam_pct = 0.4, - pain_mult = 3, - rip_time = 15, - ) + embed_type = /datum/embed_data/rune_carver /// Whether we're currently drawing a rune var/drawing = FALSE @@ -34,6 +26,15 @@ /// Turfs that you cannot draw carvings on var/static/list/blacklisted_turfs = typecacheof(list(/turf/open/space, /turf/open/openspace, /turf/open/lava)) +/datum/embed_data/rune_carver + ignore_throwspeed_threshold = TRUE + embed_chance = 75 + jostle_chance = 2 + jostle_pain_mult = 5 + pain_stam_pct = 0.4 + pain_mult = 3 + rip_time = 15 + /obj/item/melee/rune_carver/examine(mob/user) . = ..() if(!IS_HERETIC_OR_MONSTER(user) && !isobserver(user)) diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 077bd2158b8f6..a1c31241e0b75 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -12,6 +12,7 @@ TRAIT_NODISMEMBER, TRAIT_NOFIRE, TRAIT_NOGUNS, + TRAIT_TOSS_GUN_HARD, TRAIT_SHOCKIMMUNE, ) diff --git a/code/modules/antagonists/hypnotized/hypnotized.dm b/code/modules/antagonists/hypnotized/hypnotized.dm index 4f1f49aa3be7c..fc1e5d7d5ad24 100644 --- a/code/modules/antagonists/hypnotized/hypnotized.dm +++ b/code/modules/antagonists/hypnotized/hypnotized.dm @@ -1,6 +1,7 @@ /// Antag datum associated with the hypnosis brain trauma, used for displaying objectives and antag hud /datum/antagonist/hypnotized name = "\improper Hypnotized Victim" + stinger_sound = 'sound/ambience/antag/hypnotized.ogg' job_rank = ROLE_HYPNOTIZED roundend_category = "hypnotized victims" antag_hud_name = "brainwashed" @@ -10,7 +11,6 @@ show_name_in_check_antagonists = TRUE count_against_dynamic_roll_chance = FALSE - silent = TRUE //not actually silent, because greet will be called by the trauma anyway. /// Brain trauma associated with this antag datum var/datum/brain_trauma/hypnosis/trauma diff --git a/code/modules/antagonists/nightmare/nightmare_organs.dm b/code/modules/antagonists/nightmare/nightmare_organs.dm index 576b911652fa0..a77aaa79b23ea 100644 --- a/code/modules/antagonists/nightmare/nightmare_organs.dm +++ b/code/modules/antagonists/nightmare/nightmare_organs.dm @@ -70,6 +70,8 @@ visual = TRUE color = COLOR_CRAYON_BLACK decay_factor = 0 + // No love is to be found in a heart so twisted. + food_reagents = list(/datum/reagent/consumable/nutriment = 5) /// How many life ticks in the dark the owner has been dead for. Used for nightmare respawns. var/respawn_progress = 0 /// The armblade granted to the host of this heart. diff --git a/code/modules/antagonists/ninja/outfit.dm b/code/modules/antagonists/ninja/outfit.dm index f91f660a3e8b9..924943dce777b 100644 --- a/code/modules/antagonists/ninja/outfit.dm +++ b/code/modules/antagonists/ninja/outfit.dm @@ -1,7 +1,7 @@ /datum/outfit/ninja name = "Space Ninja" uniform = /obj/item/clothing/under/syndicate/ninja - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/night/colorless mask = /obj/item/clothing/mask/gas/ninja ears = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/jackboots diff --git a/code/modules/antagonists/nukeop/datums/operative_lone.dm b/code/modules/antagonists/nukeop/datums/operative_lone.dm index d0bc718a781b0..3993c2d49a7f6 100644 --- a/code/modules/antagonists/nukeop/datums/operative_lone.dm +++ b/code/modules/antagonists/nukeop/datums/operative_lone.dm @@ -2,7 +2,7 @@ name = "Lone Operative" always_new_team = TRUE send_to_spawnpoint = FALSE //Handled by event - nukeop_outfit = /datum/outfit/syndicate/full + nukeop_outfit = /datum/outfit/syndicate/full/loneop preview_outfit = /datum/outfit/nuclear_operative preview_outfit_behind = null nuke_icon_state = null diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index a7611c2444821..0160fbd89149c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -99,6 +99,13 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) for(var/obj/machinery/computer/camera_advanced/shuttle_docker/dock as anything in GLOB.jam_on_wardec) dock.jammed = TRUE + var/datum/techweb/station_techweb = locate(/datum/techweb/science) in SSresearch.techwebs + if(station_techweb) + var/obj/machinery/announcement_system/announcement_system = pick(GLOB.announcement_systems) + if (!isnull(announcement_system)) + announcement_system.broadcast("Additional research data received from Nanotrasen R&D Division following the emergency protocol.", list(RADIO_CHANNEL_SCIENCE)) + station_techweb.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS * 3)) + qdel(src) /obj/item/nuclear_challenge/proc/distribute_tc() diff --git a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm index 852c0d7d32fbd..6c409f063707d 100644 --- a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm +++ b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm @@ -44,3 +44,21 @@ Happy hunting! flash_protect = FLASH_PROTECTION_WELDER clothing_traits = list(TRAIT_REAGENT_SCANNER) var/list/hudlist = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED) + +/obj/item/clothing/glasses/overwatch/equipped(mob/user, slot) + . = ..() + if(!(slot & ITEM_SLOT_EYES) || !ishuman(user)) + return + for(var/hud in hudlist) + var/datum/atom_hud/our_hud = GLOB.huds[hud] + our_hud.show_to(user) + user.add_traits(list(TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, TRAIT_DIAGNOSTIC_HUD), GLASSES_TRAIT) + +/obj/item/clothing/glasses/overwatch/dropped(mob/user) + . = ..() + user.remove_traits(list(TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, TRAIT_DIAGNOSTIC_HUD), GLASSES_TRAIT) + if(!ishuman(user)) + return + for(var/hud in hudlist) + var/datum/atom_hud/our_hud = GLOB.huds[hud] + our_hud.hide_from(user) diff --git a/code/modules/antagonists/nukeop/outfits.dm b/code/modules/antagonists/nukeop/outfits.dm index 5cd89e6c842a9..0d122cff0c061 100644 --- a/code/modules/antagonists/nukeop/outfits.dm +++ b/code/modules/antagonists/nukeop/outfits.dm @@ -52,8 +52,7 @@ if(command_radio) radio.command = TRUE radio.use_command = TRUE - - if(ispath(uplink_type, /obj/item/uplink/nuclear) || tc) // /obj/item/uplink/nuclear understands 0 tc + if(ispath(uplink_type, /obj/item/uplink) || tc) // /obj/item/uplink understands 0 tc var/obj/item/uplink = new uplink_type(nukie, nukie.key, tc) nukie.equip_to_slot_or_del(uplink, ITEM_SLOT_BACKPACK, indirect_action = TRUE) @@ -67,7 +66,7 @@ /datum/outfit/syndicate/full name = "Syndicate Operative - Full Kit" - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/night/colorless mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/mod/control/pre_equipped/nuclear r_pocket = /obj/item/tank/internals/emergency_oxygen/engi @@ -80,6 +79,10 @@ /obj/item/ammo_box/magazine/m12g = 3, ) +/datum/outfit/syndicate/full/loneop + name = "Syndicate Operative - Full Kit (Loneop)" + uplink_type = /obj/item/uplink/loneop + /datum/outfit/syndicate/full/plasmaman name = "Syndicate Operative - Full Kit (Plasmaman)" back = /obj/item/mod/control/pre_equipped/nuclear/plasmaman @@ -91,6 +94,10 @@ backpack_contents += /obj/item/clothing/head/helmet/space/plasmaman/syndie return ..() +/datum/outfit/syndicate/full/plasmaman/loneop + name = "Syndicate Operative - Full Kit (Loneop Plasmaman)" + uplink_type = /obj/item/uplink/loneop + /datum/outfit/syndicate/reinforcement name = "Syndicate Operative - Reinforcement" tc = 0 diff --git a/code/modules/antagonists/pirate/pirate_outfits.dm b/code/modules/antagonists/pirate/pirate_outfits.dm index aef7f1d9d4b92..72318fe4987ca 100644 --- a/code/modules/antagonists/pirate/pirate_outfits.dm +++ b/code/modules/antagonists/pirate/pirate_outfits.dm @@ -62,10 +62,12 @@ id_trim = /datum/id_trim/pirate/silverscale uniform = /obj/item/clothing/under/syndicate/sniper suit = /obj/item/clothing/suit/armor/vest/alt + back = /obj/item/storage/backpack/satchel glasses = /obj/item/clothing/glasses/monocle gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/collectable/tophat shoes = /obj/item/clothing/shoes/laceup + implants = list(/obj/item/implant/explosive) /datum/outfit/pirate/silverscale/captain name = "Silver Scale Captain" diff --git a/code/modules/antagonists/pirate/pirate_roles.dm b/code/modules/antagonists/pirate/pirate_roles.dm index 78a3d3fd12acf..d9db29d6250c1 100644 --- a/code/modules/antagonists/pirate/pirate_roles.dm +++ b/code/modules/antagonists/pirate/pirate_roles.dm @@ -208,7 +208,7 @@ /obj/effect/mob_spawn/ghost_role/human/pirate/medieval/special(mob/living/carbon/spawned_mob) . = ..() if(rank == "Footsoldier") - ADD_TRAIT(spawned_mob, TRAIT_NOGUNS, INNATE_TRAIT) + spawned_mob.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), INNATE_TRAIT) spawned_mob.AddComponent(/datum/component/unbreakable) var/datum/action/cooldown/mob_cooldown/dash/dodge = new(spawned_mob) dodge.Grant(spawned_mob) diff --git a/code/modules/antagonists/voidwalker/voidwalker.dm b/code/modules/antagonists/voidwalker/voidwalker.dm new file mode 100644 index 0000000000000..08fe2873f5f2f --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker.dm @@ -0,0 +1,61 @@ +/// Space antagonist that harasses people near space and cursed them if they get the chance +/datum/antagonist/voidwalker + name = "\improper Voidwalker" + antagpanel_category = ANTAG_GROUP_ABOMINATIONS + job_rank = ROLE_VOIDWALKER + show_in_antagpanel = TRUE + antagpanel_category = "Voidwalker" + show_name_in_check_antagonists = TRUE + show_to_ghosts = TRUE + ui_name = "AntagInfoVoidwalker" + suicide_cry = "FOR THE VOID!!" + preview_outfit = /datum/outfit/voidwalker + +/datum/antagonist/voidwalker/greet() + . = ..() + owner.announce_objectives() + +/datum/antagonist/voidwalker/on_gain() + . = ..() + + var/mob/living/carbon/human/body = owner.current + if(ishuman(body)) + body.set_species(/datum/species/voidwalker) + + forge_objectives() + +/datum/antagonist/voidwalker/on_removal() + var/mob/living/carbon/human/body = owner.current + if(ishuman(body)) + body.set_species(/datum/species/human) + + return ..() + +/datum/antagonist/voidwalker/forge_objectives() + var/datum/objective/voidwalker_fluff/objective = new + objective.owner = owner + objectives += objective + +/datum/outfit/voidwalker + name = "Voidwalker (Preview only)" + +/datum/outfit/voidwalker/post_equip(mob/living/carbon/human/human, visualsOnly) + human.set_species(/datum/species/voidwalker) + +/datum/objective/voidwalker_fluff + +/datum/objective/voidwalker_fluff/New() + var/list/explanation_texts = list( + "Show them the beauty of the void.", + "They must see what you have seen. They must walk where you have walked.", + "Recover what you have lost.", + "Obliterate the tyranny of matter.", + "Make them all just like you." + ) + if(prob(20)) + explanation_text += "Man I fucking love glass." + explanation_text = pick(explanation_texts) + ..() + +/datum/objective/voidwalker_fluff/check_completion() + return owner.current.stat != DEAD diff --git a/code/modules/antagonists/voidwalker/voidwalker_abilities.dm b/code/modules/antagonists/voidwalker/voidwalker_abilities.dm new file mode 100644 index 0000000000000..01fb25cb920c9 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_abilities.dm @@ -0,0 +1,61 @@ +/// Remain in someones view without breaking line of sight +/datum/action/cooldown/spell/pointed/unsettle + name = "Unsettle" + desc = "Stare directly into someone who doesn't see you. Remain in their view for a bit to stun them for 2 seconds and announce your presence to them. " + button_icon_state = "terrify" + background_icon_state = "bg_alien" + overlay_icon_state = "bg_alien_border" + panel = null + spell_requirements = NONE + cooldown_time = 8 SECONDS + cast_range = 9 + active_msg = "You prepare to stare down a target..." + deactive_msg = "You refocus your eyes..." + /// how long we need to stare at someone to unsettle them (woooooh) + var/stare_time = 8 SECONDS + /// how long we stun someone on succesful cast + var/stun_time = 2 SECONDS + /// stamina damage we doooo + var/stamina_damage = 80 + +/datum/action/cooldown/spell/pointed/unsettle/is_valid_target(atom/cast_on) + . = ..() + + if(!isliving(cast_on)) + cast_on.balloon_alert(owner, "cannot be targeted!") + return FALSE + + if(!check_if_in_view(cast_on)) + owner.balloon_alert(owner, "cannot see you!") + return FALSE + + return TRUE + +/datum/action/cooldown/spell/pointed/unsettle/cast(mob/living/carbon/human/cast_on) + . = ..() + + if(do_after(owner, stare_time, cast_on, IGNORE_TARGET_LOC_CHANGE | IGNORE_USER_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(check_if_in_view), cast_on), hidden = TRUE)) + spookify(cast_on) + return + owner.balloon_alert(owner, "line of sight broken!") + return SPELL_CANCEL_CAST + +/datum/action/cooldown/spell/pointed/unsettle/proc/check_if_in_view(mob/living/carbon/human/target) + SIGNAL_HANDLER + + if(target.is_blind() || !(owner in viewers(target, world.view))) + return FALSE + return TRUE + +/datum/action/cooldown/spell/pointed/unsettle/proc/spookify(mob/living/carbon/human/target) + target.Paralyze(stun_time) + target.adjustStaminaLoss(stamina_damage) + target.apply_status_effect(/datum/status_effect/speech/slurring/generic) + target.emote("scream") + + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(owner)) + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(target)) + SEND_SIGNAL(owner, COMSIG_ATOM_REVEAL) + +/obj/effect/temp_visual/circle_wave/unsettle + color = COLOR_PURPLE diff --git a/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm new file mode 100644 index 0000000000000..370a273d733b6 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_bodyparts.dm @@ -0,0 +1,161 @@ +///Turn the damage overlays glassy +#define GLASSY_OVERLAY_MATRIX list(\ + 1, 2, 2, 0, \ + 0, 1, 0, 0, \ + 0, 0, 1, 0, \ + 0, 0, 0, 1, \ + 0, 0, 0, 0) + +/obj/item/bodypart/head/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + bodypart_traits = list(TRAIT_MUTE) + head_flags = NONE + blocks_emissive = EMISSIVE_BLOCK_NONE + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + brute_modifier = 0.9 + burn_modifier = 0.8 + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/chest/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + brute_modifier = 0.9 + burn_modifier = 0.8 + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/arm/left/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + brute_modifier = 0.9 + burn_modifier = 0.8 + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/arm/right/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + brute_modifier = 0.9 + burn_modifier = 0.8 + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/leg/left/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + brute_modifier = 0.9 + burn_modifier = 0.8 + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +/obj/item/bodypart/leg/right/voidwalker + texture_bodypart_overlay = /datum/bodypart_overlay/texture/spacey + icon_greyscale = 'icons/mob/human/species/voidwalker.dmi' + limb_id = SPECIES_VOIDWALKER + is_dimorphic = FALSE + blocks_emissive = EMISSIVE_BLOCK_NONE + + brute_modifier = 0.9 + burn_modifier = 0.8 + + damage_overlay_color = GLASSY_OVERLAY_MATRIX + + light_brute_msg = "splintered" + medium_brute_msg = "cracked" + heavy_brute_msg = "shattered" + + light_burn_msg = "bent" + medium_burn_msg = "deformed" + heavy_burn_msg = "warped" + + damage_examines = list( + BRUTE = GLASSY_BRUTE_EXAMINE_TEXT, + BURN = GLASSY_BURN_EXAMINE_TEXT, + ) + +#undef GLASSY_OVERLAY_MATRIX diff --git a/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm b/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm new file mode 100644 index 0000000000000..ce654218c2c79 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_kidnap.dm @@ -0,0 +1,112 @@ +/// A global assoc list for the drop of point +GLOBAL_LIST_EMPTY(voidwalker_void) + +/// Lardmarks meant to designate where voidwalker kidnapees are sent +/obj/effect/landmark/voidwalker_void + name = "default voidwalker void landmark" + icon_state = "x" + +/obj/effect/landmark/voidwalker_void/Initialize(mapload) + . = ..() + GLOB.voidwalker_void += src + +/obj/effect/landmark/voidwalker_void/Destroy() + GLOB.voidwalker_void -= src + return ..() + +/// Voidwalker void where the people go +/area/centcom/voidwalker_void + name = "Voidwalker void" + icon_state = "voidwalker" + has_gravity = STANDARD_GRAVITY + ambience_index = AMBIENCE_SPOOKY + sound_environment = SOUND_ENVIRONMENT_CAVE + area_flags = UNIQUE_AREA | NOTELEPORT | HIDDEN_AREA | BLOCK_SUICIDE + +/// Mini car where people drive around in in their mangled corpse to heal a bit before they get dumped back on station +/obj/effect/wisp_mobile + name = "wisp" + + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "wisp" + + light_system = OVERLAY_LIGHT + light_color = COLOR_WHITE + light_range = 4 + light_power = 1 + light_on = TRUE + + /// Delay between movements + var/move_delay = 0.5 SECONDS + /// when can we move again? + var/can_move + /// what do we eatt? + var/food_type = /obj/effect/wisp_food + /// how much do we heal per food? + var/heal_per_food = 15 + /// Traits given to the wisp driver + var/wisp_driver_traits = list(TRAIT_STASIS, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_HANDS_BLOCKED) + +/obj/effect/wisp_mobile/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + . = ..() + + if(!isliving(arrived)) + return + + var/mob/living/driver = arrived + driver.forceMove(src) + driver.add_traits(wisp_driver_traits, REF(src)) + add_atom_colour(random_color(), FIXED_COLOUR_PRIORITY) + + addtimer(CALLBACK(driver, TYPE_PROC_REF(/atom/movable, forceMove), get_random_station_turf()), 60 SECONDS) + +/obj/effect/wisp_mobile/relaymove(mob/living/user, direction) + if(can_move >= world.time) + return + can_move = world.time + move_delay + + if(isturf(loc)) + can_move = world.time + move_delay + try_step_multiz(direction) + +/obj/effect/wisp_mobile/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + + var/obj/food = locate(food_type) in loc + if(!food) + return + + qdel(food) + + // make new food + var/area/our_area = get_area(src) + new food_type(pick(get_area_turfs(our_area))) + + var/mob/living/driver = locate(/mob/living) in contents + if(driver) + driver.heal_ordered_damage(heal_per_food, list(BRUTE, BURN, OXY)) + playsound(src, 'sound/misc/server-ready.ogg', 50, TRUE, -1) + +/obj/effect/wisp_mobile/Exited(atom/movable/gone, direction) + . = ..() + + gone.remove_traits(wisp_driver_traits, REF(src)) + to_chat(gone, span_boldwarning("You feel it would be very bad to get caught again.")) + qdel(src) + +/// we only exist to be eaten by wisps for food 😔👊 +/obj/effect/wisp_food + name = "wisp" + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "wisp" + + color = COLOR_YELLOW + + light_system = OVERLAY_LIGHT + light_color = COLOR_WHITE + light_range = 4 + light_power = 1 + light_on = TRUE + +/obj/item/restraints/handcuffs/energy/void + breakouttime = INFINITY diff --git a/code/modules/antagonists/voidwalker/voidwalker_loot.dm b/code/modules/antagonists/voidwalker/voidwalker_loot.dm new file mode 100644 index 0000000000000..8d3420d0a5278 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_loot.dm @@ -0,0 +1,39 @@ +/// Gives someone the stable voided trauma and then self destructs +/obj/item/cosmic_skull + name = "cosmic skull" + desc = "You can see and feel the surrounding space pulsing through it..." + + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "cosmic_skull_charged" + + /// Icon state for when drained + var/drained_icon_state = "cosmic_skull_drained" + /// How many uses does it have left? + var/uses = 1 + +/obj/item/cosmic_skull/attack_self(mob/user, modifiers) + . = ..() + + if(!uses || !ishuman(user)) + return + + var/mob/living/carbon/human/hewmon = user + if(is_species(hewmon, /datum/species/voidwalker)) + to_chat(user, span_bolddanger("OH GOD NOO!!!! WHYYYYYYYYY!!!!! WHO WOULD DO THIS?!!")) + return + + to_chat(user, span_purple("You begin staring into the [name]...")) + + if(!do_after(user, 10 SECONDS, src)) + return + + var/mob/living/carbon/human/starer = user + starer.cure_trauma_type(/datum/brain_trauma/voided) //this wouldn't make much sense to have anymore + + starer.gain_trauma(/datum/brain_trauma/voided/stable) + to_chat(user, span_purple("And a whole world opens up to you.")) + playsound(get_turf(user), 'sound/effects/curse5.ogg', 60) + + uses-- + if(uses <= 0 ) + icon_state = drained_icon_state diff --git a/code/modules/antagonists/voidwalker/voidwalker_organs.dm b/code/modules/antagonists/voidwalker/voidwalker_organs.dm new file mode 100644 index 0000000000000..234e2a85910de --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_organs.dm @@ -0,0 +1,109 @@ +/// Voidwalker eyes with nightvision and thermals +/obj/item/organ/internal/eyes/voidwalker + name = "blackened orbs" + desc = "These orbs will withstand the light of the sun, yet still see within the darkest voids." + eye_icon_state = null + pepperspray_protect = TRUE + flash_protect = FLASH_PROTECTION_WELDER + color_cutoffs = list(20, 10, 40) + sight_flags = SEE_MOBS + +/// Voidwalker brain stacked with a lot of the abilities +/obj/item/organ/internal/brain/voidwalker + name = "cosmic brain" + desc = "A mind fully integrated into the cosmic thread." + icon = 'icons/obj/medical/organs/shadow_organs.dmi' + + /// Alpha we have in space + var/space_alpha = 15 + /// Alpha we have elsewhere + var/non_space_alpha = 255 + /// We settle the un + var/datum/action/unsettle = /datum/action/cooldown/spell/pointed/unsettle + /// Regen effect we have in space + var/datum/status_effect/regen = /datum/status_effect/space_regeneration + /// Speed modifier given when in gravity + var/datum/movespeed_modifier/speed_modifier = /datum/movespeed_modifier/grounded_voidwalker + /// The void eater weapon + var/obj/item/glass_breaker = /obj/item/void_eater + +/obj/item/organ/internal/brain/voidwalker/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags) + . = ..() + + RegisterSignal(organ_owner, COMSIG_ATOM_ENTERING, PROC_REF(on_atom_entering)) + + organ_owner.AddComponent(/datum/component/space_camo, space_alpha, non_space_alpha, 2 SECONDS) + organ_owner.apply_status_effect(regen) + + unsettle = new unsettle(organ_owner) + unsettle.Grant(organ_owner) + + glass_breaker = new/obj/item/void_eater + organ_owner.put_in_hands(glass_breaker) + +/obj/item/organ/internal/brain/voidwalker/on_mob_remove(mob/living/carbon/organ_owner, special) + . = ..() + + UnregisterSignal(organ_owner, COMSIG_ENTER_AREA) + alpha = 255 + + qdel(organ_owner.GetComponent(/datum/component/space_camo)) + organ_owner.remove_status_effect(regen) + + unsettle.Remove(organ_owner) + unsettle = initial(unsettle) + + if(glass_breaker) + qdel(glass_breaker) + +/obj/item/organ/internal/brain/voidwalker/proc/on_atom_entering(mob/living/carbon/organ_owner, atom/entering) + SIGNAL_HANDLER + + if(!isturf(entering)) + return + + var/turf/new_turf = entering + + //apply debufs for being in gravity + if(new_turf.has_gravity()) + organ_owner.add_movespeed_modifier(speed_modifier) + //remove debufs for not being in gravity + else + organ_owner.remove_movespeed_modifier(speed_modifier) + +/obj/item/organ/internal/brain/voidwalker/on_death() + . = ..() + + var/turf/spawn_loc = get_turf(owner) + new /obj/effect/spawner/glass_shards (spawn_loc) + new /obj/item/cosmic_skull (spawn_loc) + playsound(get_turf(owner), SFX_SHATTER, 100) + + qdel(owner) + +/obj/item/implant/radio/voidwalker + radio_key = /obj/item/encryptionkey/heads/captain + actions_types = null + +/obj/effect/spawner/glass_shards + /// Weighted list for the shards we spawn + var/list/shards = list(/obj/item/shard = 2, /obj/item/shard/plasma = 1, /obj/item/shard/titanium = 1, /obj/item/shard/plastitanium = 1) + /// Min shards we generate + var/min_spawn = 4 + /// Max shards we generate + var/max_spawn = 6 + /// The we can apply when generating + var/pixel_offset = 16 + +/obj/effect/spawner/glass_shards/Initialize(mapload) + . = ..() + + for(var/i in 1 to rand(min_spawn, max_spawn)) + var/shard_type = pick_weight(shards) + var/obj/shard = new shard_type (loc) + shard.pixel_x = rand(-pixel_offset, pixel_offset) + shard.pixel_y = rand(-pixel_offset, pixel_offset) + +/obj/effect/spawner/glass_shards/mini + min_spawn = 1 + max_spawn = 2 diff --git a/code/modules/antagonists/voidwalker/voidwalker_particles.dm b/code/modules/antagonists/voidwalker/voidwalker_particles.dm new file mode 100644 index 0000000000000..8ffbd4abd449e --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_particles.dm @@ -0,0 +1,15 @@ +/particles/void_kidnap + icon = 'icons/effects/particles/voidwalker.dmi' + icon_state = list("kidnap_1" = 1, "kidnap_2" = 1, "kidnap_3" = 2) + width = 100 + height = 300 + count = 1000 + spawning = 20 + lifespan = 1.5 SECONDS + fade = 1 SECONDS + velocity = list(0, 0.4, 0) + position = generator(GEN_SPHERE, 12, 12, NORMAL_RAND) + drift = generator(GEN_SPHERE, 0, 1, NORMAL_RAND) + friction = 0.2 + gravity = list(0.95, 0) + grow = 0.05 diff --git a/code/modules/antagonists/voidwalker/voidwalker_species.dm b/code/modules/antagonists/voidwalker/voidwalker_species.dm new file mode 100644 index 0000000000000..865d10697a762 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_species.dm @@ -0,0 +1,75 @@ +/// Species for the voidwalker antagonist +/datum/species/voidwalker + name = "\improper Voidling" + id = SPECIES_VOIDWALKER + sexes = FALSE + inherent_traits = list( + TRAIT_NOBREATH, + TRAIT_NO_UNDERWEAR, + TRAIT_RADIMMUNE, + TRAIT_VIRUSIMMUNE, + TRAIT_NOBLOOD, + TRAIT_NODISMEMBER, + TRAIT_NEVER_WOUNDED, + TRAIT_MOVE_FLYING, + TRAIT_RESISTCOLD, + TRAIT_RESISTHIGHPRESSURE, + TRAIT_RESISTLOWPRESSURE, + TRAIT_NOHUNGER, + TRAIT_FREE_HYPERSPACE_MOVEMENT, + TRAIT_ADVANCEDTOOLUSER, + TRAIT_NO_BLOOD_OVERLAY, + ) + changesource_flags = MIRROR_BADMIN + + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/voidwalker, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/voidwalker, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/voidwalker, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/voidwalker, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/voidwalker, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/voidwalker, + ) + + no_equip_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_ICLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_MASK | ITEM_SLOT_HEAD | ITEM_SLOT_FEET | ITEM_SLOT_BACK | ITEM_SLOT_EARS + + mutantbrain = /obj/item/organ/internal/brain/voidwalker + mutanteyes = /obj/item/organ/internal/eyes/voidwalker + mutantheart = null + mutantlungs = null + mutanttongue = null + + siemens_coeff = 0 + +/datum/species/voidwalker/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load) + . = ..() + + human_who_gained_species.AddComponent(/datum/component/glass_passer) + human_who_gained_species.AddComponent(/datum/component/space_dive) + human_who_gained_species.AddComponent(/datum/component/space_kidnap) + + var/obj/item/implant/radio = new /obj/item/implant/radio/voidwalker (human_who_gained_species) + radio.implant(human_who_gained_species, null, TRUE, TRUE) + + human_who_gained_species.AddComponent(/datum/component/planet_allergy) + +/datum/species/voidwalker/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load) + . = ..() + + qdel(human.GetComponent(/datum/component/glass_passer)) + qdel(human.GetComponent(/datum/component/space_dive)) + qdel(human.GetComponent(/datum/component/space_kidnap)) + + var/obj/item/implant/radio = locate(/obj/item/implant/radio/voidwalker) in human + if(radio) + qdel(radio) + + qdel(human.GetComponent(/datum/component/planet_allergy)) + +/datum/species/voidwalker/on_species_gain(mob/living/carbon/nameless, datum/species/old_species) + . = ..() + + nameless.fully_replace_character_name(null, pick(GLOB.voidwalker_names)) // nightmare names as placeholder, need to think of something :/ + +/datum/species/voidwalker/check_roundstart_eligible() + return FALSE diff --git a/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm b/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm new file mode 100644 index 0000000000000..845be059800b1 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_status_effects.dm @@ -0,0 +1,27 @@ +/// THE GRAVITY!!! IT WEIGHS!!! +/datum/movespeed_modifier/grounded_voidwalker + multiplicative_slowdown = 1.1 + +/// Regenerate in space +/datum/status_effect/space_regeneration + id = "space_regeneration" + duration = INFINITE + alert_type = null + // How much do we heal per tick? + var/healing = 1.5 + +/datum/status_effect/space_regeneration/tick(effect) + heal_owner() + +/// Regenerate health whenever this status effect is applied or reapplied +/datum/status_effect/space_regeneration/proc/heal_owner() + if(isspaceturf(get_turf(owner))) + owner.heal_ordered_damage(healing, list(BRUTE, BURN, OXY, STAMINA, TOX, BRAIN)) + +/datum/status_effect/planet_allergy + id = "planet_allergy" + duration = INFINITE + alert_type = /atom/movable/screen/alert/veryhighgravity + +/datum/status_effect/planet_allergy/tick() + owner.adjustBruteLoss(1) diff --git a/code/modules/antagonists/voidwalker/voidwalker_traumas.dm b/code/modules/antagonists/voidwalker/voidwalker_traumas.dm new file mode 100644 index 0000000000000..cf4f389a0d6f3 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_traumas.dm @@ -0,0 +1,91 @@ +/// Curse brain trauma that makes someone space textured, mute, pacifist and forbids them from entering space +/datum/brain_trauma/voided + name = "Voided" + desc = "They've seen the secrets of the cosmos, in exchange for a curse that keeps them chained." + scan_desc = "cosmic neural pattern" + gain_text = "" + lose_text = "" + resilience = TRAUMA_RESILIENCE_LOBOTOMY + random_gain = FALSE + /// Type for the bodypart texture we add + var/bodypart_overlay_type = /datum/bodypart_overlay/texture/spacey + ///traits we give on gain + var/list/traits_to_apply = list(TRAIT_MUTE, TRAIT_PACIFISM) + /// Do we ban the person from entering space? + var/ban_from_space = TRUE + +/datum/brain_trauma/voided/on_gain() + . = ..() + + owner.add_traits(traits_to_apply, REF(src)) + if(ban_from_space) + owner.AddComponent(/datum/component/banned_from_space) + owner.AddComponent(/datum/component/planet_allergy) + RegisterSignal(owner, COMSIG_CARBON_ATTACH_LIMB, PROC_REF(texture_limb)) //also catch new limbs being attached + RegisterSignal(owner, COMSIG_CARBON_REMOVE_LIMB, PROC_REF(untexture_limb)) //and remove it from limbs if they go away + + for(var/obj/item/bodypart as anything in owner.bodyparts) + texture_limb(owner, bodypart) + + //your underwear is belong to us + if(ishuman(owner)) + var/mob/living/carbon/human/human = owner //CARBON WILL NEVER BE REAL!!!!! + human.underwear = "Nude" + human.undershirt = "Nude" + human.socks = "Nude" + + owner.update_body() + +/datum/brain_trauma/voided/on_lose() + . = ..() + + owner.remove_traits(traits_to_apply, REF(src)) + UnregisterSignal(owner, list(COMSIG_CARBON_ATTACH_LIMB, COMSIG_CARBON_REMOVE_LIMB)) + if(ban_from_space) + qdel(owner.GetComponent(/datum/component/banned_from_space)) + qdel(owner.GetComponent(/datum/component/planet_allergy)) + + for(var/obj/item/bodypart/bodypart as anything in owner.bodyparts) + untexture_limb(owner, bodypart) + +/// Apply the space texture +/datum/brain_trauma/voided/proc/texture_limb(atom/source, obj/item/bodypart/limb) + SIGNAL_HANDLER + + limb.add_bodypart_overlay(new bodypart_overlay_type) + if(istype(limb, /obj/item/bodypart/head)) + var/obj/item/bodypart/head/head = limb + head.head_flags &= ~HEAD_EYESPRITES + +/datum/brain_trauma/voided/proc/untexture_limb(atom/source, obj/item/bodypart/limb) + SIGNAL_HANDLER + + var/overlay = locate(bodypart_overlay_type) in limb.bodypart_overlays + if(overlay) + limb.remove_bodypart_overlay(overlay) + + if(istype(limb, /obj/item/bodypart/head)) + var/obj/item/bodypart/head/head = limb + head.head_flags = initial(head.head_flags) + +/datum/brain_trauma/voided/on_death() + . = ..() + + if(is_on_a_planet(owner)) + qdel(src) + +/// Positive version of the previous. Get space immunity and the ability to slowly move through glass (but you still get muted) +/datum/brain_trauma/voided/stable + scan_desc = "stable cosmic neural pattern" + traits_to_apply = list(TRAIT_MUTE, TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTCOLD) + ban_from_space = FALSE + +/datum/brain_trauma/voided/stable/on_gain() + . = ..() + + owner.AddComponent(/datum/component/glass_passer, 2 SECONDS) + +/datum/brain_trauma/voided/stable/on_lose() + . = ..() + + qdel(owner.GetComponent(/datum/component/glass_passer)) diff --git a/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm new file mode 100644 index 0000000000000..e46946d38a827 --- /dev/null +++ b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm @@ -0,0 +1,58 @@ +/** + * An armblade that pops windows + */ +/obj/item/void_eater + name = "void eater" //as opposed to full eater + icon = 'icons/obj/weapons/voidwalker_items.dmi' + icon_state = "tentacle" + inhand_icon_state = "tentacle" + force = 25 + armour_penetration = 35 + lefthand_file = 'icons/mob/inhands/antag/voidwalker_lefthand.dmi' + righthand_file = 'icons/mob/inhands/antag/voidwalker_righthand.dmi' + blocks_emissive = EMISSIVE_BLOCK_NONE + item_flags = ABSTRACT | DROPDEL + resistance_flags = INDESTRUCTIBLE | ACID_PROOF | FIRE_PROOF | LAVA_PROOF | UNACIDABLE + w_class = WEIGHT_CLASS_HUGE + tool_behaviour = TOOL_MINING + hitsound = 'sound/weapons/bladeslice.ogg' + wound_bonus = -30 + bare_wound_bonus = 20 + +/obj/item/void_eater/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) + + AddComponent(/datum/component/temporary_glass_shatterer) + +/obj/item/void_eater/attack(mob/living/target_mob, mob/living/user, params) + if(!ishuman(target_mob)) + return ..() + + var/mob/living/carbon/human/hewmon = target_mob + + if(hewmon.has_trauma_type(/datum/brain_trauma/voided)) + var/turf/spawnloc = get_turf(hewmon) + + if(hewmon.stat != DEAD) + hewmon.balloon_alert(user, "already voided!") + playsound(hewmon, SFX_SHATTER, 60) + new /obj/effect/spawner/glass_shards/mini (spawnloc) + hewmon.adjustBruteLoss(10) // BONUS DAMAGE + else + hewmon.balloon_alert(user, "shattering...") + if(do_after(user, 4 SECONDS, hewmon)) + new /obj/effect/spawner/glass_shards (spawnloc) + var/obj/item/organ/brain = hewmon.get_organ_by_type(/obj/item/organ/internal/brain) + if(brain) + brain.Remove(hewmon) + brain.forceMove(spawnloc) + brain.balloon_alert(user, "shattered!") + playsound(hewmon, SFX_SHATTER, 100) + qdel(hewmon) + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(hewmon.stat == HARD_CRIT && !hewmon.has_trauma_type(/datum/brain_trauma/voided)) + target_mob.balloon_alert(user, "is in crit!") + return COMPONENT_CANCEL_ATTACK_CHAIN + return ..() diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm index 0586d7ea6da4a..18e2dae715c34 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/_entry.dm @@ -70,6 +70,15 @@ for(var/spell in user.actions) if(is_type_in_typecache(spell, no_coexistance_typecache)) return FALSE + var/datum/antagonist/wizard/wizard_datum = user.mind.has_antag_datum(/datum/antagonist/wizard) + if(!wizard_datum) + return TRUE + for(var/perks in wizard_datum.perks) + if(is_type_in_typecache(perks, no_coexistance_typecache)) + return FALSE + if(is_type_in_list(src, wizard_datum.perks)) + to_chat(user, span_warning("This perk already learned!")) + return FALSE return TRUE /** @@ -137,6 +146,9 @@ * Return TRUE if it can refunded, FALSE otherwise */ /datum/spellbook_entry/proc/can_refund(mob/living/carbon/human/user, obj/item/spellbook/book) + if(HAS_TRAIT(user, TRAIT_SPELLS_LOTTERY)) + to_chat(user, span_notice("No refund.")) + return FALSE if(!refundable) return FALSE if(!book.refunds_allowed) @@ -203,6 +215,11 @@ log_spellbook("[key_name(user)] bought [src] for [cost] points") SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) log_purchase(user.key) + + ADD_TRAIT(spawned_path, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in spawned_path.contents) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) + try_equip_item(user, spawned_path) return spawned_path diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm index a66d99c21c88d..e7c204a39e214 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/defensive.dm @@ -55,7 +55,7 @@ it will become easier for others to find your item of power." spell_type = /datum/action/cooldown/spell/lichdom category = SPELLBOOK_CATEGORY_DEFENSIVE - no_coexistance_typecache = list(/datum/action/cooldown/spell/splattercasting) + no_coexistance_typecache = list(/datum/action/cooldown/spell/splattercasting, /datum/spellbook_entry/perks/wormborn) /datum/spellbook_entry/chuunibyou name = "Chuuni Invocations" diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm new file mode 100644 index 0000000000000..6cebe8fa1e974 --- /dev/null +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/perks.dm @@ -0,0 +1,184 @@ +#define SPELLBOOK_CATEGORY_PERKS "Perks" + +/datum/spellbook_entry/perks + desc = "Main node of perks" + category = SPELLBOOK_CATEGORY_PERKS + refundable = FALSE // no refund + requires_wizard_garb = FALSE + +/datum/spellbook_entry/perks/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + var/datum/antagonist/wizard/wizard_datum = user.mind.has_antag_datum(/datum/antagonist/wizard) + if(wizard_datum) + wizard_datum.perks += src + to_chat(user, span_notice("You got a new perk: [src.name].")) + return TRUE + +/datum/spellbook_entry/perks/fourhands + name = "Four Hands" + desc = "Gives you even more hands to perform magic" + +/datum/spellbook_entry/perks/fourhands/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.change_number_of_hands(4) + +/datum/spellbook_entry/perks/wormborn + name = "Worm Born" + desc = "Your soul is infested with mana worms. When you die, you will be reborn as a large worm. \ + When the worm dies, it has no such luck. Parasitic infection prevents you from binding your soul to objects." + no_coexistance_typecache = list(/datum/action/cooldown/spell/lichdom) + +/datum/spellbook_entry/perks/wormborn/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/wormborn) + +/datum/spellbook_entry/perks/dejavu + name = "Déjà vu" + desc = "Every 60 seconds returns you to the place where you were 60 seconds ago with the same amount of health as you had 60 seconds ago." + +/datum/spellbook_entry/perks/dejavu/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + RegisterSignal(user, COMSIG_ENTER_AREA, PROC_REF(give_dejavu)) + +/datum/spellbook_entry/perks/dejavu/proc/give_dejavu(mob/living/carbon/human/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + wizard.AddComponent(/datum/component/dejavu/timeline, -1, 60 SECONDS) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/datum/spellbook_entry/perks/spell_lottery + name = "Spells Lottery" + desc = "Spells Lottery gives you the chance to get something from the book absolutely free, but you can no longer refund any purchases." + +/datum/spellbook_entry/perks/spell_lottery/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + ADD_TRAIT(user, TRAIT_SPELLS_LOTTERY, REF(src)) + +/datum/spellbook_entry/perks/gamble + name = "Gamble" + desc = "You get 2 random perks." + +/datum/spellbook_entry/perks/gamble/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + var/datum/antagonist/wizard/check_perks = user.mind.has_antag_datum(/datum/antagonist/wizard) + var/perks_allocated = 0 + var/list/taking_perks = list() + for(var/datum/spellbook_entry/perks/generate_perk in book.entries) + if(istype(generate_perk, src)) + continue + if(check_perks && is_type_in_list(generate_perk, check_perks.perks)) + continue + taking_perks += generate_perk + perks_allocated++ + if(perks_allocated >= 2) + break + if(taking_perks.len < 1) + to_chat(user, span_warning("Gamble cannot give 2 perks, so points are returned")) + return FALSE + taking_perks = shuffle(taking_perks) + for(var/datum/spellbook_entry/perks/perks_ready in taking_perks) + perks_ready.buy_spell(user, book, log_buy) + +/datum/spellbook_entry/perks/heart_eater + name = "Heart Eater" + desc = "Gives you ability to obtain a person's life force by eating their heart. \ + By eating someone's heart you can increase your damage resistance or gain random mutation. \ + Heart also give strong healing buff." + +/datum/spellbook_entry/perks/heart_eater/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/heart_eater) + +/datum/spellbook_entry/perks/slime_friends + name = "Slime Friends" + desc = "Slimes are your friends. \ + Every 15 seconds you lose some nutriments and summon a random evil slime to fight on your side." + +/datum/spellbook_entry/perks/slime_friends/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.AddComponent(/datum/component/slime_friends) + +/datum/spellbook_entry/perks/transparence + name = "Transparence" + desc = "You become a little closer to the world of the dead. \ + Projectiles pass through you, but you lose 25% of your health and you are hunted by a terrible curse which wants to return you to the afterlife." + +/datum/spellbook_entry/perks/transparence/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + user.maxHealth *= 0.75 + user.alpha = 125 + ADD_TRAIT(user, TRAIT_UNHITTABLE_BY_PROJECTILES, REF(src)) + RegisterSignal(user, COMSIG_ENTER_AREA, PROC_REF(make_stalker)) + +/datum/spellbook_entry/perks/transparence/proc/make_stalker(mob/living/carbon/human/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + wizard.gain_trauma(/datum/brain_trauma/magic/stalker) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/datum/spellbook_entry/perks/magnetism + name = "Magnetism" + desc = "You get a small gravity anomaly that orbit around you. \ + Nearby things will be attracted to you." + +/datum/spellbook_entry/perks/magnetism/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy) + . = ..() + var/atom/movable/magnitizm = new /obj/effect/wizard_magnetism(get_turf(user)) + magnitizm.orbit(user, 20) + +/obj/effect/wizard_magnetism + name = "magnetic anomaly" + icon = 'icons/effects/effects.dmi' + icon_state = "shield2" + /// We need to orbit around someone. + var/datum/weakref/owner + +/obj/effect/wizard_magnetism/New(loc, ...) + . = ..() + transform *= 0.4 + +/obj/effect/wizard_magnetism/orbit(atom/new_owner, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) + . = ..() + if(!isliving(new_owner)) + return + owner = WEAKREF(new_owner) + RegisterSignal(new_owner, COMSIG_ENTER_AREA, PROC_REF(check_area)) + RegisterSignal(new_owner, COMSIG_LIVING_DEATH, PROC_REF(on_owner_death)) + +/obj/effect/wizard_magnetism/proc/check_area(mob/living/wizard, area/new_area) + SIGNAL_HANDLER + + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + START_PROCESSING(SSprocessing, src) + UnregisterSignal(wizard, COMSIG_ENTER_AREA) + +/obj/effect/wizard_magnetism/proc/on_owner_death() + SIGNAL_HANDLER + + stop_orbit() + +/obj/effect/wizard_magnetism/process(seconds_per_tick) + if(isnull(owner)) + stop_orbit() + return + var/mob/living/wizard = owner.resolve() + var/list/things_in_range = orange(5, wizard) - orange(1, wizard) + for(var/obj/take_object in things_in_range) + if(!take_object.anchored) + step_towards(take_object, wizard) + for(var/mob/living/living_mov in things_in_range) + if(wizard) + if(living_mov == wizard) + continue + if(!living_mov.mob_negates_gravity()) + step_towards(living_mov, wizard) + +/obj/effect/wizard_magnetism/stop_orbit() + STOP_PROCESSING(SSprocessing, src) + qdel(src) + +#undef SPELLBOOK_CATEGORY_PERKS diff --git a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm index f13b53b12edd4..b0016bffe5f43 100644 --- a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm @@ -229,6 +229,10 @@ return FALSE to_buy.times++ + if(HAS_TRAIT(user, TRAIT_SPELLS_LOTTERY)) + if(prob(50 / to_buy.cost)) + to_chat(user, span_notice("This spell was given to you for free!")) + return TRUE uses -= to_buy.cost return TRUE diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index e6da5195b0254..335c934a32052 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -25,6 +25,8 @@ GLOBAL_LIST_EMPTY(wizard_spellbook_purchases_by_key) show_to_ghosts = TRUE /// This mob's Grand Ritual ability var/datum/action/cooldown/grand_ritual/ritual + /// Perks that wizard learn + var/list/perks = list() /datum/antagonist/wizard_minion name = "Wizard Minion" diff --git a/code/modules/art/paintings.dm b/code/modules/art/paintings.dm index f050528bd3bc7..8affc71e568f3 100644 --- a/code/modules/art/paintings.dm +++ b/code/modules/art/paintings.dm @@ -91,6 +91,14 @@ painting_metadata.height = height ADD_KEEP_TOGETHER(src, INNATE_TRAIT) +/obj/item/canvas/Destroy() + last_patron = null + if(istype(loc,/obj/structure/sign/painting)) + var/obj/structure/sign/painting/frame = loc + frame.remove_art_element(painting_metadata.credit_value) + painting_metadata = null + return ..() + /obj/item/canvas/proc/reset_grid() grid = new/list(width,height) for(var/x in 1 to width) @@ -102,6 +110,8 @@ ui_interact(user) /obj/item/canvas/ui_state(mob/user) + if(isobserver(user)) + return GLOB.observer_state if(finalized) return GLOB.physical_obscured_state else @@ -154,6 +164,9 @@ if(.) return var/mob/user = usr + ///this is here to allow observers to zoom in and out but not do anything else. + if(action != "zoom_in" && action != "zoom_out" && isobserver(user)) + return switch(action) if("paint") if(finalized) @@ -265,7 +278,7 @@ return var/sniped_amount = painting_metadata.credit_value var/offer_amount = tgui_input_number(user, "How much do you want to offer?", "Patronage Amount", (painting_metadata.credit_value + 1), account.account_balance, painting_metadata.credit_value) - if(!offer_amount || QDELETED(user) || QDELETED(src) || !usr.can_perform_action(src, FORBID_TELEKINESIS_REACH)) + if(!offer_amount || QDELETED(user) || QDELETED(src) || !istype(loc, /obj/structure/sign/painting) || !user.can_perform_action(loc, FORBID_TELEKINESIS_REACH)) return if(sniped_amount != painting_metadata.credit_value) return @@ -286,10 +299,16 @@ curator.adjust_money(curator_cut, "Painting: Patronage cut") curator.bank_card_talk("Cut on patronage received, account now holds [curator.account_balance] cr.") + if(istype(loc, /obj/structure/sign/painting)) + var/obj/structure/sign/painting/frame = loc + frame.remove_art_element(painting_metadata.credit_value) + frame.add_art_element(offer_amount) + painting_metadata.patron_ckey = user.ckey painting_metadata.patron_name = user.real_name painting_metadata.credit_value = offer_amount last_patron = WEAKREF(user.mind) + to_chat(user, span_notice("Nanotrasen Trust Foundation thanks you for your contribution. You're now an official patron of this painting.")) var/list/possible_frames = SSpersistent_paintings.get_available_frames(offer_amount) if(possible_frames.len <= 1) // Not much room for choices here. @@ -566,6 +585,8 @@ /obj/structure/sign/painting/Exited(atom/movable/movable, atom/newloc) . = ..() if(movable == current_canvas) + if(!QDELETED(current_canvas)) + remove_art_element(current_canvas.painting_metadata.credit_value) current_canvas = null update_appearance() @@ -585,6 +606,7 @@ if(!current_canvas.finalized) current_canvas.finalize(user) to_chat(user,span_notice("You frame [current_canvas].")) + add_art_element() update_appearance() return TRUE return FALSE @@ -654,10 +676,31 @@ new_canvas.finalized = TRUE new_canvas.name = "painting - [painting.title]" current_canvas = new_canvas + add_art_element() current_canvas.update_appearance() update_appearance() return TRUE +/obj/structure/sign/painting/proc/add_art_element() + var/artistic_value = get_art_value(current_canvas.painting_metadata.credit_value) + if(artistic_value) + AddElement(/datum/element/art, artistic_value) + +/obj/structure/sign/painting/proc/remove_art_element(patronage) + var/artistic_value = get_art_value(patronage) + if(artistic_value) + RemoveElement(/datum/element/art, artistic_value) + +/obj/structure/sign/painting/proc/get_art_value(patronage) + switch(patronage) + if(PATRONAGE_SUPERB_FRAME to INFINITY) + return GREAT_ART + if(PATRONAGE_EXCELLENT_FRAME to PATRONAGE_SUPERB_FRAME) + return GOOD_ART + if(PATRONAGE_NICE_FRAME to PATRONAGE_EXCELLENT_FRAME) + return OK_ART + return 0 + /obj/structure/sign/painting/proc/save_persistent() if(!persistence_id || !current_canvas || current_canvas.no_save || current_canvas.painting_metadata.loaded_from_json) return diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index cfb87ce7cb3fe..db2732be83fad 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -676,20 +676,20 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) return FALSE /// Pumps gas from src to output_air. Amount depends on target_pressure -/datum/gas_mixture/proc/pump_gas_to(datum/gas_mixture/output_air, target_pressure, specific_gas = null) - var/temperature_delta = abs(temperature - output_air.temperature) +/datum/gas_mixture/proc/pump_gas_to(datum/gas_mixture/output_air, target_pressure, specific_gas = null, datum/gas_mixture/output_pipenet_air = null) + var/datum/gas_mixture/input_air = specific_gas ? remove_specific_ratio(specific_gas, 1) : src + var/temperature_delta = abs(input_air.temperature - output_air.temperature) var/datum/gas_mixture/removed - var/transfer_moles + + var/transfer_moles_output = input_air.gas_pressure_calculate(output_air, target_pressure, temperature_delta <= 5) + var/transfer_moles_pipenet = output_pipenet_air?.volume ? input_air.gas_pressure_calculate(output_pipenet_air, target_pressure, temperature_delta <= 5) : 0 + var/transfer_moles = max(transfer_moles_output, transfer_moles_pipenet) if(specific_gas) - // This is necessary because the specific heat capacity of a gas might be different from our gasmix. - var/datum/gas_mixture/temporary = remove_specific_ratio(specific_gas, 1) - transfer_moles = temporary.gas_pressure_calculate(output_air, target_pressure, temperature_delta <= 5) - removed = temporary.remove_specific(specific_gas, transfer_moles) - merge(temporary) + removed = input_air.remove_specific(specific_gas, transfer_moles) + merge(input_air) // Merge the remaining gas back to the input node else - transfer_moles = gas_pressure_calculate(output_air, target_pressure, temperature_delta <= 5) - removed = remove(transfer_moles) + removed = input_air.remove(transfer_moles) if(!removed) return FALSE @@ -698,18 +698,20 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) return removed /// Releases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure. -/datum/gas_mixture/proc/release_gas_to(datum/gas_mixture/output_air, target_pressure, rate=1) +/datum/gas_mixture/proc/release_gas_to(datum/gas_mixture/output_air, target_pressure, rate=1, datum/gas_mixture/output_pipenet_air = null) var/output_starting_pressure = output_air.return_pressure() var/input_starting_pressure = return_pressure() //Need at least 10 KPa difference to overcome friction in the mechanism - if(output_starting_pressure >= min(target_pressure,input_starting_pressure-10)) + if(output_starting_pressure >= min(target_pressure, input_starting_pressure-10)) return FALSE //Can not have a pressure delta that would cause output_pressure > input_pressure target_pressure = output_starting_pressure + min(target_pressure - output_starting_pressure, (input_starting_pressure - output_starting_pressure)/2) var/temperature_delta = abs(temperature - output_air.temperature) - var/transfer_moles = gas_pressure_calculate(output_air, target_pressure, temperature_delta <= 5) + var/transfer_moles_output = gas_pressure_calculate(output_air, target_pressure, temperature_delta <= 5) + var/transfer_moles_pipenet = output_pipenet_air?.volume ? gas_pressure_calculate(output_pipenet_air, target_pressure, temperature_delta <= 5) : 0 + var/transfer_moles = max(transfer_moles_output, transfer_moles_pipenet) //Actually transfer the gas var/datum/gas_mixture/removed = remove(transfer_moles * rate) diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index fa8b833234586..8674e6331e4ac 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -327,7 +327,10 @@ return FALSE //if the target is not in the same piping layer & it does not have the all layer connection flag[which allows it to be connected regardless of layer] then we are out - if(target.piping_layer != given_layer && !(target.pipe_flags & PIPING_ALL_LAYER)) + if(target.pipe_flags & PIPING_DISTRO_AND_WASTE_LAYERS) + if(ISODD(given_layer)) + return FALSE + else if(target.piping_layer != given_layer && !(target.pipe_flags & PIPING_ALL_LAYER)) return FALSE //if the target does not have the same color and it does not have all color connection flag[which allows it to be connected regardless of color] & one of the pipes is not gray[allowing for connection regardless] then we are out @@ -666,7 +669,7 @@ SET_PLANE_EXPLICIT(cap_overlay, initial(plane), our_turf) cap_overlay.color = pipe_color - cap_overlay.layer = layer + cap_overlay.layer = initial(layer) cap_overlay.icon_state = "[bitfield]_[piping_layer]" cap_overlay.forceMove(our_turf) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm index 572e910d3fe08..1d7657dd35276 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm @@ -59,9 +59,11 @@ Passive gate is similar to the regular pump except: if(!on) return - var/datum/gas_mixture/air1 = airs[1] - var/datum/gas_mixture/air2 = airs[2] - if(air1.release_gas_to(air2, target_pressure)) + var/datum/gas_mixture/input_air = airs[1] + var/datum/gas_mixture/output_air = airs[2] + var/datum/gas_mixture/output_pipenet_air = parents[2].air + + if(input_air.release_gas_to(output_air, target_pressure, output_pipenet_air = output_pipenet_air)) update_parents() /obj/machinery/atmospherics/components/binary/passive_gate/relaymove(mob/living/user, direction) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm index 399feff12146f..ff9cc36d7cd61 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pressure_valve.dm @@ -54,11 +54,12 @@ if(!on || !is_operational) return - var/datum/gas_mixture/air1 = airs[1] - var/datum/gas_mixture/air2 = airs[2] + var/datum/gas_mixture/input_air = airs[1] + var/datum/gas_mixture/output_air = airs[2] + var/datum/gas_mixture/output_pipenet_air = parents[2].air - if(air1.return_pressure() > target_pressure) - if(air1.release_gas_to(air2, air1.return_pressure())) + if(input_air.return_pressure() > target_pressure) + if(input_air.release_gas_to(output_air, input_air.return_pressure(), output_pipenet_air = output_pipenet_air)) update_parents() is_gas_flowing = TRUE else diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index 63ba340f27ff4..1e68bf9ad691a 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -61,10 +61,11 @@ if(!on || !is_operational) return - var/datum/gas_mixture/air1 = airs[1] - var/datum/gas_mixture/air2 = airs[2] + var/datum/gas_mixture/input_air = airs[1] + var/datum/gas_mixture/output_air = airs[2] + var/datum/gas_mixture/output_pipenet_air = parents[2].air - if(air1.pump_gas_to(air2, target_pressure)) + if(input_air.pump_gas_to(output_air, target_pressure, output_pipenet_air = output_pipenet_air)) update_parents() /obj/machinery/atmospherics/components/binary/pump/ui_interact(mob/user, datum/tgui/ui) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm index b5a3740245a31..879f6b7fab8d3 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/temperature_gate.dm @@ -68,19 +68,20 @@ if(!on || !is_operational) return - var/datum/gas_mixture/air1 = airs[1] - var/datum/gas_mixture/air2 = airs[2] + var/datum/gas_mixture/input_air = airs[1] + var/datum/gas_mixture/output_air = airs[2] + var/datum/gas_mixture/output_pipenet_air = parents[2].air if(!inverted) - if(air1.temperature < target_temperature) - if(air1.release_gas_to(air2, air1.return_pressure())) + if(input_air.temperature < target_temperature) + if(input_air.release_gas_to(output_air, input_air.return_pressure(), output_pipenet_air = output_pipenet_air)) update_parents() is_gas_flowing = TRUE else is_gas_flowing = FALSE else - if(air1.temperature > target_temperature) - if(air1.release_gas_to(air2, air1.return_pressure())) + if(input_air.temperature > target_temperature) + if(input_air.release_gas_to(output_air, input_air.return_pressure(), output_pipenet_air = output_pipenet_air)) update_parents() is_gas_flowing = TRUE else diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index b4e5d88d62c71..ded9110bdfd74 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -62,9 +62,12 @@ color = null SET_PLANE_IMPLICIT(src, showpipe ? GAME_PLANE : FLOOR_PLANE) + // Layer is handled in update_layer() if(!showpipe) return ..() + if(pipe_flags & PIPING_DISTRO_AND_WASTE_LAYERS) + return ..() var/connected = 0 //Direction bitset @@ -327,7 +330,7 @@ connect_nodes() /obj/machinery/atmospherics/components/update_layer() - layer = initial(layer) + (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE + (GLOB.pipe_colors_ordered[pipe_color] * 0.001) + layer = (showpipe ? initial(layer) : ABOVE_OPEN_TURF_LAYER) + (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE + (GLOB.pipe_colors_ordered[pipe_color] * 0.001) /** * Handles air relocation to the pipenet/environment diff --git a/code/modules/atmospherics/machinery/components/tank.dm b/code/modules/atmospherics/machinery/components/tank.dm index a9fcaf93ec680..ee1e61428d196 100644 --- a/code/modules/atmospherics/machinery/components/tank.dm +++ b/code/modules/atmospherics/machinery/components/tank.dm @@ -363,6 +363,18 @@ /obj/machinery/atmospherics/components/tank/air name = "pressure tank (Air)" +/obj/machinery/atmospherics/components/tank/air/layer1 + piping_layer = 1 + +/obj/machinery/atmospherics/components/tank/air/layer2 + piping_layer = 2 + +/obj/machinery/atmospherics/components/tank/air/layer4 + piping_layer = 4 + +/obj/machinery/atmospherics/components/tank/air/layer5 + piping_layer = 5 + /obj/machinery/atmospherics/components/tank/air/Initialize(mapload) . = ..() fill_to_pressure(/datum/gas/oxygen, safety_margin = (O2STANDARD * 0.5)) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index 12a3c7971601b..8f90986baaa46 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -250,6 +250,18 @@ icon_state = "mixer_on-0_f" flipped = TRUE +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/layer1 + piping_layer = 1 + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/layer2 + piping_layer = 2 + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/layer4 + piping_layer = 4 + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/layer5 + piping_layer = 5 + /obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse node1_concentration = O2STANDARD node2_concentration = N2STANDARD diff --git a/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm new file mode 100644 index 0000000000000..804f868e9c189 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm @@ -0,0 +1,455 @@ +/** + * The pump looks up for the airlocks automatically based on airlock_pump_distance_limit and airlock_group_distance_limit values. + * When placed, the dir value (direction where the pipes are coming from) is considered as a direction towards the station (internal). The opposite direction is external. + * The airlock then tries to find airlocks or walls towards these directions until airlock_pump_distance_limit number of tiles reached. + * When it finds a valid object, then it tries to find airlocks, in directions perpendicular to the found tiles. + * And then adds them to the corresponding group (external/internal) until airlock_group_distance_limit number of tiles reached + * + * Example scheme of a valid configuration: + * A-----W + * A-----A + * W--P--A + * W-----W + * A-----W + * + * Where: + * A - airlocks + * W - walls + * P - pump + */ +/// A vent, scrubber and a sensor in a single device meant specifically for cycling airlocks. Ideal for airlocks of up to 3x3 tiles in size to avoid wind and timing out. +/obj/machinery/atmospherics/components/unary/airlock_pump + name = "external airlock pump" + desc = "A pump for cycling an external airlock controlled by the connected doors." + icon = 'icons/obj/machines/atmospherics/unary_devices.dmi' + icon_state = "airlock_pump" + pipe_state = "airlock_pump" + use_power = ACTIVE_POWER_USE + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION + can_unwrench = TRUE + welded = FALSE + vent_movement = VENTCRAWL_ALLOWED | VENTCRAWL_CAN_SEE | VENTCRAWL_ENTRANCE_ALLOWED + max_integrity = 100 + paintable = FALSE + pipe_flags = PIPING_ONE_PER_TURF | PIPING_DISTRO_AND_WASTE_LAYERS | PIPING_DEFAULT_LAYER_ONLY | PIPING_ALL_COLORS + layer = GAS_PUMP_LAYER + hide = TRUE + device_type = BINARY // Even though it is unary, it has two nodes on one side - used in node count checks + + ///Indicates that the direction of the pump, if ATMOS_DIRECTION_SIPHONING is siphoning, if ATMOS_DIRECTION_RELEASING is releasing + var/pump_direction = ATMOS_DIRECTION_SIPHONING + ///Target pressure for pressurization cycle + var/internal_pressure_target = ONE_ATMOSPHERE + ///Target pressure for depressurization cycle + var/external_pressure_target = 0 + ///Target pressure for the current cycle + var/cycle_pressure_target + ///Allowed error in pressure checks + var/allowed_pressure_error = ONE_ATMOSPHERE / 100 + ///Minimal distro pressure to start cycling + var/min_distro_pressure = ONE_ATMOSPHERE / 10 + ///Rate of the pump to remove gases from the air + var/volume_rate = 1000 + ///The start time of the current cycle to calculate cycle duration + var/cycle_start_time + ///Max duration of cycle, after which the pump will unlock the airlocks with a warning + var/cycle_timeout = 10 SECONDS + ///List of the turfs adjacent to the pump for faster cycling and avoiding wind + var/list/turf/adjacent_turfs = list() + ///Max distance between the airlock and the pump. Used to set up cycling. + var/airlock_pump_distance_limit = 2 + ///Max distance between the central airlock and the side airlocks in a group + var/airlock_group_distance_limit = 2 + ///Type of airlocks required for automatic cycling setup. To avoid hacking bridge doors. Ignored for mapspawn pump. + var/valid_airlock_typepath = /obj/machinery/door/airlock/external + ///Station-facing airlocks used in cycling + var/list/obj/machinery/door/airlock/internal_airlocks + ///Space-facing airlocks used in cycling + var/list/obj/machinery/door/airlock/external_airlocks + ///Whether both airlocks are specified and cycling is available + var/cycling_set_up = FALSE + ///Whether the pump opens the airlocks up instead of simpy unbolting them on cycle + var/open_airlock_on_cycle = TRUE + ///Airlocks currently animating + var/airlocks_animating = FALSE + ///Whether the airlocks comment the cycling details to the chat + var/is_cycling_audible = TRUE + + COOLDOWN_DECLARE(check_turfs_cooldown) + + +/obj/machinery/atmospherics/components/unary/airlock_pump/update_icon_nopipes() + if(!on || !is_operational || !powered()) + icon_state = "vent_off" + else + icon_state = pump_direction ? "vent_out" : "vent_in" + + +/obj/machinery/atmospherics/components/unary/airlock_pump/update_overlays() + . = ..() + if(!showpipe) + return + + var/mutable_appearance/distro_pipe_appearance = get_pipe_image(icon, "pipe_exposed", dir, COLOR_BLUE, piping_layer = 4) + if(nodes[1]) + distro_pipe_appearance = get_pipe_image(icon, "pipe_intact", dir, COLOR_BLUE, piping_layer = 4) + . += distro_pipe_appearance + + var/mutable_appearance/waste_pipe_appearance = get_pipe_image(icon, "pipe_exposed", dir, COLOR_RED, piping_layer = 2) + if(nodes[2]) + waste_pipe_appearance = get_pipe_image(icon, "pipe_intact", dir, COLOR_RED, piping_layer = 2) + . += waste_pipe_appearance + + var/mutable_appearance/distro_cap_appearance = get_pipe_image(icon, "vent_cap", dir, piping_layer = 4) + . += distro_cap_appearance + + var/mutable_appearance/waste_cap_appearance = get_pipe_image(icon, "vent_cap", dir, piping_layer = 2) + . += waste_cap_appearance + + +/obj/machinery/atmospherics/components/unary/airlock_pump/atmos_init(list/node_connects) + for(var/obj/machinery/atmospherics/target in get_step(src, dir)) + if(connection_check(target, 4) && !nodes[1]) + nodes[1] = target // Distro + if(connection_check(target, 2) && !nodes[2]) + nodes[2] = target // Waste + update_appearance() + + +/obj/machinery/atmospherics/components/unary/airlock_pump/Initialize(mapload) + . = ..() + if(mapload) + can_unwrench = FALSE + + +/obj/machinery/atmospherics/components/unary/airlock_pump/post_machine_initialize() + . = ..() + set_links() + + +/obj/machinery/atmospherics/components/unary/airlock_pump/New() + . = ..() + var/datum/gas_mixture/distro_air = airs[1] + var/datum/gas_mixture/waste_air = airs[2] + distro_air.volume = 1000 + waste_air.volume = 1000 + + +/obj/machinery/atmospherics/components/unary/airlock_pump/on_deconstruction(disassembled) + . = ..() + if(cycling_set_up) + break_all_links() + + +/obj/machinery/atmospherics/components/unary/airlock_pump/can_unwrench(mob/user) + . = ..() + if(!.) + to_chat(user, span_warning("You cannot unwrench [src], it is secured firmly in place!")) + return FALSE + if(. && on) + to_chat(user, span_warning("You cannot unwrench [src], wait for the cycle completion!")) + return FALSE + + +/obj/machinery/atmospherics/components/unary/airlock_pump/process_atmos() + if(!on) + return + + if(!powered()) + stop_cycle("No power. Cycle aborted.", unbolt_only = TRUE) + return //Couldn't complete the cycle due to power outage + + var/turf/location = get_turf(loc) + if(isclosedturf(location)) + return + + if(COOLDOWN_FINISHED(src, check_turfs_cooldown)) + check_turfs() + COOLDOWN_START(src, check_turfs_cooldown, 2 SECONDS) + + if(world.time - cycle_start_time > cycle_timeout) + stop_cycle("Cycling timed out, bolts unlocked.", unbolt_only = TRUE) + return //Couldn't complete the cycle before timeout + + var/datum/gas_mixture/distro_air = airs[1] + var/datum/gas_mixture/tile_air = loc.return_air() + var/tile_air_pressure = tile_air.return_pressure() + + if(pump_direction == ATMOS_DIRECTION_RELEASING) //distro node -> tile + var/pressure_delta = cycle_pressure_target - tile_air_pressure + if(pressure_delta <= allowed_pressure_error && stop_cycle("Pressurization complete.")) + return //Internal target pressure reached + + var/available_moles = distro_air.total_moles() + var/total_tiles = adjacent_turfs.len + 1 + var/split_moles = QUANTIZE(available_moles / total_tiles) + + fill_tile(loc, split_moles, pressure_delta) + for(var/turf/tile as anything in adjacent_turfs) + fill_tile(tile, split_moles, pressure_delta) + else //tile -> waste node + var/pressure_delta = tile_air_pressure - cycle_pressure_target + if(pressure_delta <= allowed_pressure_error && stop_cycle("Decompression complete.")) + return //External target pressure reached + + siphon_tile(loc) + for(var/turf/tile as anything in adjacent_turfs) + siphon_tile(tile) + + +/// Fill a tile with air from the distro node +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/fill_tile(turf/tile, moles, pressure_delta) + var/datum/pipeline/distro_pipe = parents[1] + var/datum/gas_mixture/distro_air = airs[1] + var/datum/gas_mixture/tile_air = tile.return_air() + var/transfer_moles = (volume_rate / tile_air.volume) * (pressure_delta * tile_air.volume) / (distro_air.temperature * R_IDEAL_GAS_EQUATION) + moles = min(moles, transfer_moles) + + var/datum/gas_mixture/removed_air = distro_air.remove(moles) + + if(!removed_air) + return //No air in distro + + tile.assume_air(removed_air) + distro_pipe.update = TRUE + + +/// Siphon air from the tile to the waste node within the volume rate limit +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/siphon_tile(turf/tile) + var/datum/pipeline/waste_pipe = parents[2] + var/datum/gas_mixture/waste_air = airs[2] + var/datum/gas_mixture/tile_air = tile.return_air() + + var/transfer_moles = tile_air.total_moles() * (volume_rate / tile_air.volume) + var/datum/gas_mixture/removed_air = tile.remove_air(transfer_moles) + + if(!removed_air) + return //No air on the tile + + waste_air.merge(removed_air) + waste_pipe.update = TRUE + + +/// Proc for triggering cycle by clicking on a bolted airlock that has a pump assigned +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/airlock_act(obj/machinery/door/airlock/airlock) + if(on) + airlock.run_animation(DOOR_DENY_ANIMATION) // Already cycling + return + if(!cycling_set_up) + airlock.say("Airlock pair not found.") + return + if(airlock in external_airlocks) + start_cycle(ATMOS_DIRECTION_SIPHONING, airlock) + else if(airlock in internal_airlocks) + start_cycle(ATMOS_DIRECTION_RELEASING, airlock) + + +///Start decompression or pressurization cycle depending on the passed direction +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/start_cycle(cycle_direction, obj/machinery/door/airlock/source_airlock = null) + if(on || !cycling_set_up || airlocks_animating || !powered()) + return FALSE + + pump_direction = cycle_direction + + for(var/obj/machinery/door/airlock/airlock as anything in (internal_airlocks + external_airlocks)) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_close)) + + airlocks_animating = TRUE + stoplag(1 SECONDS) // Wait for closing animation + airlocks_animating = FALSE + + on = TRUE + cycle_start_time = world.time + + var/turf/local_turf = get_turf(src) + var/tile_air_pressure = max(0, local_turf.return_air().return_pressure()) + + if(pump_direction == ATMOS_DIRECTION_RELEASING) + cycle_pressure_target = internal_pressure_target + var/pressure_delta = cycle_pressure_target - tile_air_pressure + if(pressure_delta <= allowed_pressure_error) + stop_cycle("Pressure nominal, cycle skipped.") + return TRUE + + var/datum/gas_mixture/distro_air = airs[1] + if(distro_air.return_pressure() < min_distro_pressure) + stop_cycle("Low pipe pressure, cycle skipped. Proceed with caution.", unbolt_only = TRUE) + return TRUE + + if(!source_airlock) + source_airlock = internal_airlocks[1] + if(is_cycling_audible) + source_airlock.say("Pressurizing airlock.") + else + cycle_pressure_target = external_pressure_target + var/pressure_delta = tile_air_pressure - cycle_pressure_target + if(pressure_delta <= allowed_pressure_error) + stop_cycle("Pressure nominal, cycle skipped.") + return TRUE + + for(var/obj/machinery/door/airlock/airlock as anything in external_airlocks) + if(airlock.shuttledocked) + stop_cycle("Shuttle docked, cycle skipped.") + return TRUE + + if(!source_airlock) + source_airlock = external_airlocks[1] + if(is_cycling_audible) + source_airlock.say("Decompressing airlock.") + + update_appearance() + return TRUE + + +///Complete/Abort cycle with the passed message +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/stop_cycle(message = null, unbolt_only = FALSE) + if(!on) + return FALSE + on = FALSE + + var/list/obj/machinery/door/airlock/unlocked_airlocks = pump_direction == ATMOS_DIRECTION_RELEASING ? internal_airlocks : external_airlocks + for(var/obj/machinery/door/airlock/airlock as anything in unlocked_airlocks) + airlock.unbolt() + if(open_airlock_on_cycle && !unbolt_only) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_open)) //Can unbolt, but without audio + + airlocks_animating = TRUE + stoplag(1 SECONDS) // Wait for opening animation + airlocks_animating = FALSE + + if(message && is_cycling_audible) + unlocked_airlocks[1].say(message) + + update_appearance() + return TRUE + + +///Update adjacent_turfs with atmospherically adjacent tiles +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/check_turfs() + adjacent_turfs.Cut() + var/turf/local_turf = get_turf(src) + adjacent_turfs = local_turf.get_atmos_adjacent_turfs(alldir = TRUE) + + +///Find airlocks and link up with them +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/set_links() + var/perpendicular_dirs = NSCOMPONENT(dir) ? WEST|EAST : NORTH|SOUTH + var/turf/internal_airlocks_origin = find_density(get_turf(src), dir) + var/turf/external_airlocks_origin = find_density(get_turf(src), REVERSE_DIR(dir)) + internal_airlocks = get_adjacent_airlocks(internal_airlocks_origin, perpendicular_dirs) + external_airlocks = get_adjacent_airlocks(external_airlocks_origin, perpendicular_dirs) + + if(!internal_airlocks.len || !internal_airlocks.len) + if(!can_unwrench) //maploaded pump + CRASH("[type] couldn't find airlocks to cycle with!") + internal_airlocks = list() + external_airlocks = list() + say("Cycling setup failed. No opposite airlocks found.") + return + + for(var/obj/machinery/door/airlock/airlock as anything in (internal_airlocks + external_airlocks)) + airlock.set_cycle_pump(src) + RegisterSignal(airlock, COMSIG_QDELETING, PROC_REF(unlink_airlock)) + if (airlock in external_airlocks) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_close)) + else if(open_airlock_on_cycle) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_open)) + + cycle_timeout *= round((internal_airlocks.len + external_airlocks.len) / 2) + cycling_set_up = TRUE + if(can_unwrench) + say("Cycling setup complete.") + + +///Get the turf of the first found airlock or an airtight structure (walls) within the allowed range +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/find_density(turf/origin, direction, max_distance = airlock_pump_distance_limit) + var/turf/next_turf = origin + var/limit = max(1, max_distance) + while(limit) + limit-- + next_turf = get_step(next_turf, direction) + var/obj/machinery/door/airlock/found_airlock = locate() in next_turf + if(is_valid_airlock(found_airlock)) + return found_airlock.loc + if(!next_turf.can_atmos_pass) + return next_turf + + +///Find airlocks adjacent to the central one, lined up along the provided directions +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/get_adjacent_airlocks(origin_turf, directions) + var/list/airlocks = list() + + var/obj/machinery/door/airlock/origin_airlock = locate() in origin_turf + if(is_valid_airlock(origin_airlock)) + airlocks.Add(origin_airlock) + + for(var/direction in GLOB.cardinals) + if(!(direction & directions)) + continue + var/turf/next_turf = origin_turf + var/limit = max(0, airlock_group_distance_limit) + while(limit) + limit-- + next_turf = get_step(next_turf, direction) + var/obj/machinery/door/airlock/found_airlock = locate() in next_turf + if (is_valid_airlock(found_airlock)) + airlocks.Add(found_airlock) + else + limit = 0 + + return airlocks + + +///Whether the passed airlock can be linked with +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/is_valid_airlock(obj/machinery/door/airlock/airlock) + if(!airlock) + return FALSE + if(airlock.cycle_pump) + return FALSE // Already linked + if(can_unwrench && !istype(airlock, valid_airlock_typepath)) + return FALSE // Invalid airlock type and the pump is not mapspawn + return TRUE + + +///Find airlocks and link up with them +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/unlink_airlock(airlock) + UnregisterSignal(airlock, COMSIG_QDELETING) + + if(airlock in internal_airlocks) + internal_airlocks.Remove(airlock) + if(airlock in external_airlocks) + external_airlocks.Remove(airlock) + + if(!internal_airlocks.len || !external_airlocks.len) + break_all_links() + + +///Break the cycling setup +/obj/machinery/atmospherics/components/unary/airlock_pump/proc/break_all_links() + for(var/obj/machinery/door/airlock/airlock as anything in (internal_airlocks + external_airlocks)) + UnregisterSignal(airlock, COMSIG_QDELETING) + + external_airlocks = list() + internal_airlocks = list() + cycle_timeout = initial(cycle_timeout) + cycling_set_up = FALSE + + +/obj/machinery/atmospherics/components/unary/airlock_pump/relaymove(mob/living/user, direction) + if(initialize_directions & direction) + return ..() + if((NORTH|EAST) & direction) + user.ventcrawl_layer = clamp(user.ventcrawl_layer + 2, PIPING_LAYER_DEFAULT - 1, PIPING_LAYER_DEFAULT + 1) + if((SOUTH|WEST) & direction) + user.ventcrawl_layer = clamp(user.ventcrawl_layer - 2, PIPING_LAYER_DEFAULT - 1, PIPING_LAYER_DEFAULT + 1) + to_chat(user, "You align yourself with the [user.ventcrawl_layer == 2 ? 1 : 2]\th output.") + +/obj/machinery/atmospherics/components/unary/airlock_pump/unbolt_only + open_airlock_on_cycle = FALSE + +/obj/machinery/atmospherics/components/unary/airlock_pump/silent + is_cycling_audible = FALSE + +/obj/machinery/atmospherics/components/unary/airlock_pump/lavaland + external_pressure_target = LAVALAND_EQUIPMENT_EFFECT_PRESSURE + diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 1435816499f87..acb454a983689 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -79,7 +79,7 @@ use_power = IDLE_POWER_USE idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.75 active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 1.5 - flags_1 = PREVENT_CLICK_UNDER_1 + flags_1 = PREVENT_CLICK_UNDER_1 | IGNORE_TURF_PIXEL_OFFSET_1 interaction_flags_mouse_drop = NEED_DEXTERITY ///If TRUE will eject the mob once healing is complete diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 2fe1a8e430fa1..619bf100a170f 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -333,6 +333,18 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer1 + piping_layer = 1 + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2 + piping_layer = 2 + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer4 + piping_layer = 4 + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer5 + piping_layer = 5 + /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on on = TRUE icon_state = "thermo_base_1" @@ -352,6 +364,18 @@ /obj/machinery/atmospherics/components/unary/thermomachine/heater +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer1 + piping_layer = 1 + +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer2 + piping_layer = 2 + +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer4 + piping_layer = 4 + +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer5 + piping_layer = 5 + /obj/machinery/atmospherics/components/unary/thermomachine/heater/on on = TRUE icon_state = "thermo_base_1" diff --git a/code/modules/atmospherics/machinery/pipes/bridge_pipe.dm b/code/modules/atmospherics/machinery/pipes/bridge_pipe.dm index 472cb3ed2034a..4c1cd63016c92 100644 --- a/code/modules/atmospherics/machinery/pipes/bridge_pipe.dm +++ b/code/modules/atmospherics/machinery/pipes/bridge_pipe.dm @@ -5,6 +5,7 @@ name = "bridge pipe" desc = "A one meter section of regular pipe used to connect pipenets over pipes." + layer = HIGH_PIPE_LAYER dir = SOUTH initialize_directions = NORTH | SOUTH pipe_flags = PIPING_CARDINAL_AUTONORMALIZE | PIPING_BRIDGE @@ -28,4 +29,5 @@ PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer) . += center - layer = HIGH_PIPE_LAYER //to stay above all sorts of pipes +/obj/machinery/atmospherics/pipe/bridge_pipe/update_layer() + layer = (HAS_TRAIT(src, TRAIT_UNDERFLOOR) ? ABOVE_OPEN_TURF_LAYER + 1 : initial(layer)) diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm index 730e193671dbe..fde47b1baf0ee 100644 --- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm +++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm @@ -41,7 +41,7 @@ nodes = list() /obj/machinery/atmospherics/pipe/layer_manifold/update_layer() - layer = initial(layer) + (PIPING_LAYER_MAX * PIPING_LAYER_LCHANGE) //This is above everything else. + layer = (HAS_TRAIT(src, TRAIT_UNDERFLOOR) ? ABOVE_OPEN_TURF_LAYER : initial(layer)) + (PIPING_LAYER_MAX * PIPING_LAYER_LCHANGE) //This is above everything else. /obj/machinery/atmospherics/pipe/layer_manifold/update_overlays() . = ..() @@ -65,10 +65,15 @@ for(var/i in PIPING_LAYER_MIN to PIPING_LAYER_MAX) . += get_attached_image(get_dir(src, machine_check), i, COLOR_VERY_LIGHT_GRAY) return + if(istype(machine_check, /obj/machinery/atmospherics/components/unary/airlock_pump)) + . += get_attached_image(get_dir(src, machine_check), 4, COLOR_BLUE) + //. += get_attached_image(get_dir(src, machine_check), 2, COLOR_RED) // Only the distro node is added currently to the pipenet, it doesn't merge the pipenet with the waste node + return . += get_attached_image(get_dir(src, machine_check), machine_check.piping_layer, machine_check.pipe_color) /obj/machinery/atmospherics/pipe/layer_manifold/proc/get_attached_image(p_dir, p_layer, p_color) - var/mutable_appearance/muta = mutable_appearance('icons/obj/pipes_n_cables/layer_manifold_underlays.dmi', "intact_[p_dir]_[p_layer]", layer = layer - 0.01, appearance_flags = RESET_COLOR) + var/working_layer = FLOAT_LAYER - HAS_TRAIT(src, TRAIT_UNDERFLOOR) ? 1 : 0.01 + var/mutable_appearance/muta = mutable_appearance('icons/obj/pipes_n_cables/layer_manifold_underlays.dmi', "intact_[p_dir]_[p_layer]", layer = working_layer, appearance_flags = RESET_COLOR) muta.color = p_color return muta diff --git a/code/modules/atmospherics/machinery/pipes/mapping.dm b/code/modules/atmospherics/machinery/pipes/mapping.dm index 3ba647ace8ab4..3615147e4d1bf 100644 --- a/code/modules/atmospherics/machinery/pipes/mapping.dm +++ b/code/modules/atmospherics/machinery/pipes/mapping.dm @@ -1,6 +1,22 @@ //Colored pipes, use these for mapping +#define HELPER_PIPING_LAYER(Fulltype) \ + ##Fulltype/layer1 { \ + piping_layer = 1; \ + } \ + ##Fulltype/layer2 { \ + piping_layer = 2; \ + } \ + ##Fulltype/layer4 { \ + piping_layer = 4; \ + } \ + ##Fulltype/layer5 { \ + piping_layer = 5; \ + } + #define HELPER_PARTIAL(Fulltype, Iconbase, Color) \ + HELPER_PIPING_LAYER(Fulltype/visible) \ + HELPER_PIPING_LAYER(Fulltype/hidden) \ ##Fulltype { \ pipe_color = Color; \ color = Color; \ @@ -10,38 +26,30 @@ layer = GAS_PIPE_VISIBLE_LAYER; \ } \ ##Fulltype/visible/layer2 { \ - piping_layer = 2; \ icon_state = Iconbase + "-2"; \ } \ ##Fulltype/visible/layer4 { \ - piping_layer = 4; \ icon_state = Iconbase + "-4"; \ } \ ##Fulltype/visible/layer1 { \ - piping_layer = 1; \ icon_state = Iconbase + "-1"; \ } \ ##Fulltype/visible/layer5 { \ - piping_layer = 5; \ icon_state = Iconbase + "-5"; \ } \ ##Fulltype/hidden { \ hide = TRUE; \ } \ ##Fulltype/hidden/layer2 { \ - piping_layer = 2; \ icon_state = Iconbase + "-2"; \ } \ ##Fulltype/hidden/layer4 { \ - piping_layer = 4; \ icon_state = Iconbase + "-4"; \ } \ ##Fulltype/hidden/layer1 { \ - piping_layer = 1; \ icon_state = Iconbase + "-1"; \ } \ ##Fulltype/hidden/layer5 { \ - piping_layer = 5; \ icon_state = Iconbase + "-5"; \ } @@ -89,3 +97,4 @@ HELPER_NAMED(supply, "air supply pipe", COLOR_BLUE) #undef HELPER #undef HELPER_PARTIAL_NAMED #undef HELPER_PARTIAL +#undef HELPER_PIPING_LAYER diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index 40258db903ff0..230edc9a897f0 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -139,4 +139,4 @@ current_node.update_icon() /obj/machinery/atmospherics/pipe/update_layer() - layer = initial(layer) + (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE + (GLOB.pipe_colors_ordered[pipe_color] * 0.0001) + layer = (HAS_TRAIT(src, TRAIT_UNDERFLOOR) ? ABOVE_OPEN_TURF_LAYER : initial(layer)) + (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE + (GLOB.pipe_colors_ordered[pipe_color] * 0.0001) diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm index 22d9f532efcbd..6f6a25b47c8cd 100644 --- a/code/modules/awaymissions/away_props.dm +++ b/code/modules/awaymissions/away_props.dm @@ -56,6 +56,7 @@ name = "pit grate" icon = 'icons/obj/smooth_structures/lattice.dmi' icon_state = "lattice-255" + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE anchored = TRUE obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP @@ -95,6 +96,7 @@ talpha = 255 obj_flags |= BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP SET_PLANE_IMPLICIT(src, ABOVE_LIGHTING_PLANE) //What matters it's one above openspace, so our animation is not dependant on what's there. Up to revision with 513 + layer = ABOVE_NORMAL_TURF_LAYER animate(src,alpha = talpha,time = 10) addtimer(CALLBACK(src, PROC_REF(reset_plane)), 1 SECONDS) if(hidden) @@ -106,6 +108,7 @@ /obj/structure/pitgrate/proc/reset_plane() SET_PLANE_IMPLICIT(src, FLOOR_PLANE) + layer = ABOVE_OPEN_TURF_LAYER /obj/structure/pitgrate/Destroy() if(hidden) diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm index a92e8ef3d2e6e..51263c339319e 100644 --- a/code/modules/bitrunning/components/avatar_connection.dm +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -60,7 +60,7 @@ var/datum/action/avatar_domain_info/action = new(help_datum) action.Grant(avatar) - var/client/our_client = old_body.client + var/client/our_client = avatar.client var/alias = our_client?.prefs?.read_preference(/datum/preference/name/hacker_alias) || pick(GLOB.hacker_aliases) if(alias && avatar.real_name != alias) diff --git a/code/modules/capture_the_flag/medieval_sim/medisim_classes.dm b/code/modules/capture_the_flag/medieval_sim/medisim_classes.dm index 3c4a55748c4c6..09ed5b40b1f20 100644 --- a/code/modules/capture_the_flag/medieval_sim/medisim_classes.dm +++ b/code/modules/capture_the_flag/medieval_sim/medisim_classes.dm @@ -26,7 +26,7 @@ name = "Redfield Castle Archer" icon_state = "medisim_archer" - belt = /obj/item/storage/bag/quiver + belt = /obj/item/storage/bag/quiver/full suit = /obj/item/clothing/suit/armor/vest/cuirass l_hand = /obj/item/gun/ballistic/bow diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index 300523254ed7d..5f2c6e37f387a 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -170,10 +170,10 @@ user.balloon_alert_to_viewers("deals a card") var/obj/item/toy/cards/cardhand/new_cardhand = new (drop_location()) - new_cardhand.insert(src) - new_cardhand.insert(card) new_cardhand.pixel_x = pixel_x new_cardhand.pixel_y = pixel_y + new_cardhand.insert(src) + new_cardhand.insert(card) if(!isturf(loc)) // make a cardhand in our active hand user.temporarilyRemoveItemFromInventory(src, TRUE) diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm index 67da7ad6b2984..0206ea41967d6 100644 --- a/code/modules/cargo/bounties/science.dm +++ b/code/modules/cargo/bounties/science.dm @@ -9,7 +9,7 @@ if(!..()) return FALSE var/obj/item/relic/experiment = O - if(experiment.revealed) + if(experiment.activated) return TRUE return diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index cc83aa228a8ff..8281408c17967 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -1,8 +1,8 @@ /datum/bounty/item/security/recharger - name = "Rechargers" - description = "Nanotrasen military academy is conducting marksmanship exercises. They request that rechargers be shipped." + name = "Weapon Recharger" + description = "Nanotrasen military academy is conducting marksmanship exercises. They request that a recharger be shipped." reward = CARGO_CRATE_VALUE * 4 - required_count = 3 + required_count = 1 wanted_types = list(/obj/machinery/recharger = TRUE) /datum/bounty/item/security/pepperspray @@ -81,3 +81,13 @@ if(istype(slip.scanned_area, demanded_area)) return TRUE return FALSE + +/datum/bounty/item/security/contraband + name = "Confiscated Contraband" + description = "The syndicate are constantly acting to subvert crewmates of Nanotrasen afilliated stations. Ship us your latest batch of confiscated contraband." + reward = CARGO_CRATE_VALUE * 4 + required_count = 5 + wanted_types = list(/obj/item = TRUE) + +/datum/bounty/item/security/contraband/applies_to(obj/O) + return HAS_TRAIT(O, TRAIT_CONTRABAND) diff --git a/code/modules/cargo/markets/_market.dm b/code/modules/cargo/markets/_market.dm index 78585ed842f2e..7bef341842f1a 100644 --- a/code/modules/cargo/markets/_market.dm +++ b/code/modules/cargo/markets/_market.dm @@ -10,6 +10,8 @@ var/list/available_items = list() /// Item categories available from this market, only items which are in these categories can be gotten from this market. Automatically assigned, so don't manually adjust. var/list/categories = list() + /// Are the items from this market legal or illegal? If illegal, apply a contrband trait to the bought object. + var/legal_status = TRUE /// Adds item to the available items and add it's category if it is not in categories yet. /datum/market/proc/add_item(datum/market_item/item) @@ -30,7 +32,15 @@ if(!length(available_items[item.category])) available_items -= item.category -/// Handles buying the item, this is mainly for future use and moving the code away from the uplink. +/** + * Handles buying the item for a market. + * + * @param identifier The identifier of the item to buy. + * @param category The category of the item to buy. + * @param method The shipping method to use to get the item on the station. + * @param uplink The uplink object that is buying the item. + * @param user The mob that is buying the item. + */ /datum/market/proc/purchase(identifier, category, method, obj/item/market_uplink/uplink, user) var/datum/market_item/item = available_items[category][identifier] if(isnull(item)) @@ -54,7 +64,7 @@ to_chat(user, span_warning("You don't have enough credits in [uplink] for [item] with [method] shipping.")) return FALSE - if(item.buy(uplink, user, method)) + if(item.buy(uplink, user, method, legal_status)) uplink.current_user.adjust_money(-price, "Other: Third Party Transaction") if(ismob(user)) var/mob/m_user = user @@ -70,3 +80,4 @@ SHIPPING_METHOD_LAUNCH = 10, SHIPPING_METHOD_TELEPORT= 75, ) + legal_status = FALSE diff --git a/code/modules/cargo/markets/market_item.dm b/code/modules/cargo/markets/market_item.dm index 21ff3d01deb3b..5e3ce4efb6c07 100644 --- a/code/modules/cargo/markets/market_item.dm +++ b/code/modules/cargo/markets/market_item.dm @@ -81,8 +81,15 @@ return new item(loc) CRASH("Invalid item type for market item [item || "null"]") -/// Buys the item and makes SSblackmarket handle it. -/datum/market_item/proc/buy(obj/item/market_uplink/uplink, mob/buyer, shipping_method) +/** + * Buys the item and makes SSblackmarket handle it. + * + * @param uplink The uplink that is buying the item. + * @param buyer The mob that is buying the item. + * @param shipping_method The shipping method used to get the market item onto the station. + * @param legal_status The legal status of the market. Determines if the item to be spawned is contraband. + */ +/datum/market_item/proc/buy(obj/item/market_uplink/uplink, mob/buyer, shipping_method, legal_status) SHOULD_CALL_PARENT(TRUE) // Sanity if(!istype(uplink) || !istype(buyer)) @@ -93,7 +100,7 @@ return FALSE // Alright, the item has been purchased. - var/datum/market_purchase/purchase = new(src, uplink, shipping_method) + var/datum/market_purchase/purchase = new(src, uplink, shipping_method, legal_status) // SSblackmarket takes care of the shipping. if(SSblackmarket.queue_item(purchase)) @@ -102,6 +109,7 @@ return TRUE return FALSE + // This exists because it is easier to keep track of all the vars this way. /datum/market_purchase /// The entry being purchased. @@ -112,13 +120,16 @@ var/obj/item/market_uplink/uplink /// Shipping method used to buy this item. var/method + /// Is this item considered contraband? If illegal, applies the contraband trait to the item when spawned. + var/legallity -/datum/market_purchase/New(datum/market_item/entry, obj/item/market_uplink/uplink, method) +/datum/market_purchase/New(datum/market_item/entry, obj/item/market_uplink/uplink, method, legal_status) if(!uplink || !entry || !method) CRASH("[type] created with a false value arg: (entry: [entry] - uplink: [uplink] - method: [method])") src.entry = entry src.uplink = uplink src.method = method + src.legallity = legal_status RegisterSignal(entry, COMSIG_QDELETING, PROC_REF(on_instance_del)) RegisterSignal(uplink, COMSIG_QDELETING, PROC_REF(on_instance_del)) if(ismovable(entry.item)) @@ -137,3 +148,13 @@ return // Uh oh, uplink or item is gone. We will just keep the money and you will not get your order. qdel(src) + +/** + * Proc that applies secondary effects to objects that are spawned via a market. + * + * @param spawned_item - Reference to the atom being spawned. + * @param legal_status - Is this item considered legal? If illegal, will apply the contraband trait to the spawned item. + */ +/datum/market_purchase/proc/post_purchase_effects(atom/spawned_item) + if(!legallity && isobj(spawned_item)) + ADD_TRAIT(spawned_item, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/modules/cargo/markets/market_items/clothing.dm b/code/modules/cargo/markets/market_items/clothing.dm index 82bda848eb8e9..cb78830086675 100644 --- a/code/modules/cargo/markets/market_items/clothing.dm +++ b/code/modules/cargo/markets/market_items/clothing.dm @@ -32,13 +32,23 @@ stock_max = 4 availability_prob = 50 +/datum/market_item/tool/medsechud + name = "MedSec HUD" + desc = "A mostly defunct combination of security and health scanner HUDs. They don't produce these around anymore." + item = /obj/item/clothing/glasses/hud/medsechud + + price_min = CARGO_CRATE_VALUE * 2 + price_max = CARGO_CRATE_VALUE * 3.5 + stock_max = 3 + availability_prob = 50 + /datum/market_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 = CARGO_CRATE_VALUE * 7.5 - price_max = CARGO_CRATE_VALUE * 20 + price_min = CARGO_CRATE_VALUE * 1.875 + price_max = CARGO_CRATE_VALUE * 4 stock_max = 3 availability_prob = 30 @@ -66,7 +76,7 @@ item = /obj/item/clothing/shoes/bhop/rocket price_min = CARGO_CRATE_VALUE * 5 - price_max = CARGO_CRATE_VALUE * 15 + price_max = CARGO_CRATE_VALUE * 10 stock_max = 1 availability_prob = 40 diff --git a/code/modules/cargo/markets/market_items/consumables.dm b/code/modules/cargo/markets/market_items/consumables.dm index f002ff994249d..b7eed89a1951f 100644 --- a/code/modules/cargo/markets/market_items/consumables.dm +++ b/code/modules/cargo/markets/market_items/consumables.dm @@ -19,10 +19,20 @@ stock_min = 2 stock_max = 5 - price_min = CARGO_CRATE_VALUE * 1.625 - price_max = CARGO_CRATE_VALUE * 2 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 1.825 availability_prob = 80 +/datum/market_item/consumable/donk_pocket_box/spawn_item(loc) + var/static/list/choices + if(isnull(choices)) + choices = list() + for(var/boxtype as anything in typesof(/obj/item/storage/box/donkpockets)) + choices[boxtype] = 3 + choices[/obj/item/storage/box/donkpockets/donkpocketgondola] = 1 + item = pick_weight(choices) + return ..() + /datum/market_item/consumable/suspicious_pills name = "Bottle of Suspicious Pills" desc = "A random cocktail of luxury drugs that are sure to put a smile on your face!" @@ -30,17 +40,18 @@ stock_min = 2 stock_max = 3 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 3.5 + price_min = CARGO_CRATE_VALUE * 0.625 + price_max = CARGO_CRATE_VALUE * 1.25 availability_prob = 50 /datum/market_item/consumable/suspicious_pills/spawn_item(loc) - var/pillbottle = pick(list(/obj/item/storage/pill_bottle/zoom, - /obj/item/storage/pill_bottle/happy, - /obj/item/storage/pill_bottle/lsd, - /obj/item/storage/pill_bottle/aranesp, - /obj/item/storage/pill_bottle/stimulant)) - item = pillbottle + item = pick(list(/obj/item/storage/pill_bottle/zoom, + /obj/item/storage/pill_bottle/happy, + /obj/item/storage/pill_bottle/lsd, + /obj/item/storage/pill_bottle/aranesp, + /obj/item/storage/pill_bottle/stimulant, + /obj/item/storage/pill_bottle/maintenance_pill, + )) return ..() /datum/market_item/consumable/floor_pill diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index 435396c15f251..6e61bf87f0c1c 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -2,7 +2,7 @@ category = "Miscellaneous" abstract_path = /datum/market_item/misc -/datum/market_item/misc/Clear_PDA +/datum/market_item/misc/clear_pda name = "Clear PDA" desc = "Show off your style with this limited edition clear PDA!." item = /obj/item/modular_computer/pda/clear @@ -12,7 +12,7 @@ stock_max = 2 availability_prob = 50 -/datum/market_item/misc/jade_Lantern +/datum/market_item/misc/jade_lantern name = "Jade Lantern" desc = "Found in a box labeled 'Danger: Radioactive'. Probably safe." item = /obj/item/flashlight/lantern/jade diff --git a/code/modules/cargo/markets/market_items/tools.dm b/code/modules/cargo/markets/market_items/tools.dm index 9576810b3a3c9..963d7fbaeb075 100644 --- a/code/modules/cargo/markets/market_items/tools.dm +++ b/code/modules/cargo/markets/market_items/tools.dm @@ -60,8 +60,8 @@ item = /obj/item/binoculars stock = 1 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 4.8 + price_min = CARGO_CRATE_VALUE * 1.75 + price_max = CARGO_CRATE_VALUE * 4 availability_prob = 30 /datum/market_item/tool/riot_shield @@ -76,23 +76,13 @@ /datum/market_item/tool/thermite_bottle name = "Thermite Bottle" - desc = "30u of Thermite to assist in creating a quick access point or get away!" + desc = "50u of Thermite to assist in creating a quick access point or get away!" item = /obj/item/reagent_containers/cup/bottle/thermite - price_min = CARGO_CRATE_VALUE * 2.5 - price_max = CARGO_CRATE_VALUE * 7.5 - stock_max = 3 - availability_prob = 30 - -/datum/market_item/tool/science_goggles - name = "Science Goggles" - desc = "These glasses scan the contents of containers and projects their contents to the user in an easy to read format." - item = /obj/item/clothing/glasses/science - price_min = CARGO_CRATE_VALUE * 0.75 price_max = CARGO_CRATE_VALUE stock_max = 3 - availability_prob = 50 + availability_prob = 30 /** * # Fake N-spect scanner black market entry diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm index 3323e16916234..4f20cf865bc9b 100644 --- a/code/modules/cargo/markets/market_items/weapons.dm +++ b/code/modules/cargo/markets/market_items/weapons.dm @@ -13,16 +13,15 @@ availability_prob = 40 /datum/market_item/weapon/shotgun_dart - name = "Shotgun Dart" + name = "Box of XL Shotgun Darts" desc = "These handy darts can be filled up with any chemical and be shot with a shotgun! \ Prank your friends by shooting them with laughter! \ Not recommended for comercial use." - item = /obj/item/ammo_casing/shotgun/dart + item = /obj/item/storage/box/large_dart - price_min = CARGO_CRATE_VALUE * 0.05 - price_max = CARGO_CRATE_VALUE * 0.25 - stock_min = 10 - stock_max = 60 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 2.875 + stock_max = 4 availability_prob = 40 /datum/market_item/weapon/bone_spear diff --git a/code/modules/cargo/markets/market_telepad.dm b/code/modules/cargo/markets/market_telepad.dm index 4545b07e487f4..7c5b509a9421d 100644 --- a/code/modules/cargo/markets/market_telepad.dm +++ b/code/modules/cargo/markets/market_telepad.dm @@ -91,6 +91,7 @@ if(receiving) receiving.item = receiving.entry.spawn_item(turf, receiving) + receiving.post_purchase_effects(receiving.item) use_energy(energy_usage_per_teleport / power_efficiency) var/datum/effect_system/spark_spread/sparks = new diff --git a/code/modules/cargo/markets/market_uplink.dm b/code/modules/cargo/markets/market_uplink.dm index df8c8eb36a507..d13f59937b66c 100644 --- a/code/modules/cargo/markets/market_uplink.dm +++ b/code/modules/cargo/markets/market_uplink.dm @@ -157,6 +157,9 @@ accessible_markets = list(/datum/market/blackmarket) custom_premium_price = PAYCHECK_CREW * 2.5 +/obj/item/market_uplink/blackmarket/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) /datum/crafting_recipe/blackmarket_uplink name = "Black Market Uplink" diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index 3f8ceb5ca0217..c675352d024b2 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -185,6 +185,9 @@ else account_holder = "Cargo" var/obj/structure/closet/crate/crate = pack.generate(A, paying_account) + if(pack.contraband) + for(var/atom/movable/item_within as anything in crate.get_all_contents()) + ADD_TRAIT(item_within, TRAIT_CONTRABAND, INNATE_TRAIT) if(department_destination) crate.AddElement(/datum/element/deliver_first, department_destination, pack.cost) generateManifest(crate, account_holder, pack, pack.cost) diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index 2f91ad4c8207a..d835c52f1e859 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -178,6 +178,7 @@ "desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name. "goody" = P.goody, "access" = P.access, + "contraband" = P.contraband, )) return data diff --git a/code/modules/cargo/packs/_packs.dm b/code/modules/cargo/packs/_packs.dm index 662938320cb76..b6c533050f675 100644 --- a/code/modules/cargo/packs/_packs.dm +++ b/code/modules/cargo/packs/_packs.dm @@ -77,6 +77,7 @@ continue A.flags_1 |= ADMIN_SPAWNED_1 + /// For generating supply packs at runtime. Returns a list of supply packs to use instead of this one. /datum/supply_pack/proc/generate_supply_packs() return diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index 3f7645559ff7f..f270b1da11f39 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -309,11 +309,12 @@ risky espionage hallway operations. Enjoy our product!" contraband = TRUE cost = CARGO_CRATE_VALUE * 6 - contains = list(/obj/item/clothing/under/syndicate/floortilecamo = 3, - /obj/item/clothing/mask/floortilebalaclava = 3, - /obj/item/clothing/gloves/combat/floortile = 3, - /obj/item/clothing/shoes/jackboots/floortile = 3, - /obj/item/storage/backpack/floortile = 3 + contains = list( + /obj/item/clothing/under/syndicate/floortilecamo = 3, + /obj/item/clothing/mask/floortilebalaclava = 3, + /obj/item/clothing/gloves/combat/floortile = 3, + /obj/item/clothing/shoes/jackboots/floortile = 3, + /obj/item/storage/backpack/floortile = 3 ) crate_name = "floortile camouflauge crate" crate_type = /obj/structure/closet/crate/secure/weapon diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 4059b330e2f66..dfa2a66359336 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -176,7 +176,8 @@ /obj/item/biopsy_tool, /obj/item/storage/box/petridish = 2, /obj/item/storage/box/swab, - /obj/item/construction/plumbing/research, + /obj/item/circuitboard/machine/vatgrower, + /obj/item/reagent_containers/condiment/protein, ) crate_name = "cytology supplies crate" diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index fddd093b4fb7e..228d0d3e2fa46 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -303,3 +303,17 @@ contains = list(/obj/item/wallframe/barsign/all_access) crate_name = "bar sign crate" discountable = SUPPLY_PACK_RARE_DISCOUNTABLE + +/datum/supply_pack/service/bowmaking + name = "Fletching and Bow-Making Starter Kit" + desc = "A fairly outdated copy of 'Whittle Me This: Fletching for the Modern Spacer', along with some useful materials. \ + For those looking to get into bow-making, or give their LARPing a little more edge, you can't go wrong. Also has \ + instructions for making violins." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/item/book/granter/crafting_recipe/fletching = 1, + /obj/item/stack/sheet/mineral/wood = 10, + /obj/item/stack/sheet/cloth = 10, + ) + crate_name = "bowmaking starter kit crate" + crate_type = /obj/structure/closet/crate/wooden diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 5dbcaa0f824de..4ca500a9e7198 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -180,9 +180,15 @@ /datum/client_colour/glass_colour/yellow colour = "#ffff66" +/datum/client_colour/glass_colour/lightyellow + colour = "#ffffaa" + /datum/client_colour/glass_colour/red colour = "#ffaaaa" +/datum/client_colour/glass_colour/lightred + colour = "#ffcccc" + /datum/client_colour/glass_colour/darkred colour = "#bb5555" @@ -195,6 +201,9 @@ /datum/client_colour/glass_colour/purple colour = "#ff99ff" +/datum/client_colour/glass_colour/lightpurple + colour = "#ffccff" + /datum/client_colour/glass_colour/gray colour = "#cccccc" diff --git a/code/modules/client/preferences/_preference.dm b/code/modules/client/preferences/_preference.dm index 485276b4ade2a..1ba43cf3d8a63 100644 --- a/code/modules/client/preferences/_preference.dm +++ b/code/modules/client/preferences/_preference.dm @@ -18,16 +18,19 @@ /// support the "use gender" option. #define PREFERENCE_PRIORITY_BODY_TYPE 5 +/// Used for preferences that rely on body setup being finalized. +#define PREFERENCE_PRORITY_LATE_BODY_TYPE 6 + /// Equpping items based on preferences. /// Should happen after species and body type to make sure it looks right. /// Mostly redundant, but a safety net for saving/loading. -#define PREFERENCE_PRIORITY_LOADOUT 6 +#define PREFERENCE_PRIORITY_LOADOUT 7 /// The priority at which names are decided, needed for proper randomization. -#define PREFERENCE_PRIORITY_NAMES 7 +#define PREFERENCE_PRIORITY_NAMES 8 /// Preferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES. -#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 8 +#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 9 /// The maximum preference priority, keep this updated, but don't use it for `priority`. #define MAX_PREFERENCE_PRIORITY PREFERENCE_PRIORITY_NAME_MODIFICATIONS diff --git a/code/modules/client/preferences/age.dm b/code/modules/client/preferences/age.dm index cad9786ce1fef..07b4644bc6a9e 100644 --- a/code/modules/client/preferences/age.dm +++ b/code/modules/client/preferences/age.dm @@ -8,3 +8,6 @@ /datum/preference/numeric/age/apply_to_human(mob/living/carbon/human/target, value) target.age = value + +/datum/preference/numeric/age/create_informed_default_value(datum/preferences/preferences) + return rand(max(minimum, 21), min(maximum, 50)) diff --git a/code/modules/client/preferences/blindfold_color.dm b/code/modules/client/preferences/blindfold_color.dm index 9e6504579acb6..8081ac15be8ae 100644 --- a/code/modules/client/preferences/blindfold_color.dm +++ b/code/modules/client/preferences/blindfold_color.dm @@ -4,6 +4,9 @@ savefile_key = "blindfold_color" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/color/blindfold_color/create_default_value() + return COLOR_WHITE + /datum/preference/color/blindfold_color/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE diff --git a/code/modules/client/preferences/body_type.dm b/code/modules/client/preferences/body_type.dm index 469b564e46f7b..6b27e0f0f0da7 100644 --- a/code/modules/client/preferences/body_type.dm +++ b/code/modules/client/preferences/body_type.dm @@ -5,6 +5,7 @@ priority = PREFERENCE_PRIORITY_BODY_TYPE savefile_key = "body_type" savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE /datum/preference/choiced/body_type/init_possible_values() return list(USE_GENDER, MALE, FEMALE) diff --git a/code/modules/client/preferences/clothing.dm b/code/modules/client/preferences/clothing.dm index d0ec072ba472f..074ed4e041ac6 100644 --- a/code/modules/client/preferences/clothing.dm +++ b/code/modules/client/preferences/clothing.dm @@ -33,6 +33,9 @@ DMESSENGER, ) +/datum/preference/choiced/backpack/create_default_value() + return DBACKPACK + /datum/preference/choiced/backpack/icon_for(value) switch (value) if (GBACKPACK) @@ -66,6 +69,7 @@ /datum/preference/choiced/jumpsuit savefile_key = "jumpsuit_style" savefile_identifier = PREFERENCE_CHARACTER + priority = PREFERENCE_PRIORITY_BODY_TYPE main_feature_name = "Jumpsuit" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE @@ -76,6 +80,9 @@ PREF_SKIRT, ) +/datum/preference/choiced/jumpsuit/create_default_value() + return PREF_SUIT + /datum/preference/choiced/jumpsuit/icon_for(value) switch (value) if (PREF_SUIT) @@ -93,10 +100,14 @@ main_feature_name = "Socks" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/socks/init_possible_values() return assoc_to_keys_features(SSaccessories.socks_list) +/datum/preference/choiced/socks/create_default_value() + return /datum/sprite_accessory/socks/nude::name + /datum/preference/choiced/socks/icon_for(value) var/static/icon/lower_half @@ -114,13 +125,27 @@ /datum/preference/choiced/undershirt savefile_key = "undershirt" savefile_identifier = PREFERENCE_CHARACTER + priority = PREFERENCE_PRIORITY_BODY_TYPE main_feature_name = "Undershirt" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/undershirt/init_possible_values() return assoc_to_keys_features(SSaccessories.undershirt_list) +/datum/preference/choiced/undershirt/create_default_value() + return /datum/sprite_accessory/undershirt/nude::name + +/datum/preference/choiced/undershirt/create_informed_default_value(datum/preferences/preferences) + switch(preferences.read_preference(/datum/preference/choiced/gender)) + if(MALE) + return /datum/sprite_accessory/undershirt/nude::name + if(FEMALE) + return /datum/sprite_accessory/undershirt/sports_bra::name + + return ..() + /datum/preference/choiced/undershirt/icon_for(value) var/static/icon/body if (isnull(body)) @@ -152,10 +177,14 @@ main_feature_name = "Underwear" category = PREFERENCE_CATEGORY_CLOTHING should_generate_icons = TRUE + can_randomize = FALSE /datum/preference/choiced/underwear/init_possible_values() return assoc_to_keys_features(SSaccessories.underwear_list) +/datum/preference/choiced/underwear/create_default_value() + return /datum/sprite_accessory/underwear/male_hearts::name + /datum/preference/choiced/underwear/icon_for(value) var/static/icon/lower_half diff --git a/code/modules/client/preferences/gender.dm b/code/modules/client/preferences/gender.dm index bea6674d7b086..a95874f160680 100644 --- a/code/modules/client/preferences/gender.dm +++ b/code/modules/client/preferences/gender.dm @@ -11,3 +11,8 @@ if(!target.dna.species.sexes) value = PLURAL //disregard gender preferences on this species target.gender = value + +/datum/preference/choiced/gender/create_informed_default_value(datum/preferences/preferences) + // The only reason I'm limiting this to male or female + // is that hairstyle randomization handles enbies poorly + return pick(MALE, FEMALE) diff --git a/code/modules/client/preferences/glasses.dm b/code/modules/client/preferences/glasses.dm index a08f15955eaa4..e5158f1acbbde 100644 --- a/code/modules/client/preferences/glasses.dm +++ b/code/modules/client/preferences/glasses.dm @@ -4,6 +4,9 @@ savefile_identifier = PREFERENCE_CHARACTER should_generate_icons = TRUE +/datum/preference/choiced/glasses/create_default_value() + return "Random" + /datum/preference/choiced/glasses/init_possible_values() return assoc_to_keys(GLOB.nearsighted_glasses) + "Random" diff --git a/code/modules/client/preferences/language.dm b/code/modules/client/preferences/language.dm index f602d6b3a66c9..637c4542da277 100644 --- a/code/modules/client/preferences/language.dm +++ b/code/modules/client/preferences/language.dm @@ -3,6 +3,9 @@ savefile_key = "language" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/language/create_default_value() + return "Random" + /datum/preference/choiced/language/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE diff --git a/code/modules/client/preferences/multiz_parallax.dm b/code/modules/client/preferences/multiz_parallax.dm index d4f77e206b2a5..dab945e4bb393 100644 --- a/code/modules/client/preferences/multiz_parallax.dm +++ b/code/modules/client/preferences/multiz_parallax.dm @@ -13,4 +13,4 @@ for(var/group_key as anything in my_hud.master_groups) var/datum/plane_master_group/group = my_hud.master_groups[group_key] - group.transform_lower_turfs(my_hud, my_hud.current_plane_offset) + group.build_planes_offset(my_hud, my_hud.current_plane_offset) diff --git a/code/modules/client/preferences/multiz_performance.dm b/code/modules/client/preferences/multiz_performance.dm index 7591401f2d8d1..f4575357e3482 100644 --- a/code/modules/client/preferences/multiz_performance.dm +++ b/code/modules/client/preferences/multiz_performance.dm @@ -18,4 +18,4 @@ for(var/group_key as anything in my_hud.master_groups) var/datum/plane_master_group/group = my_hud.master_groups[group_key] - group.transform_lower_turfs(my_hud, my_hud.current_plane_offset) + group.build_planes_offset(my_hud, my_hud.current_plane_offset) diff --git a/code/modules/client/preferences/prosthetic_limb.dm b/code/modules/client/preferences/prosthetic_limb.dm index 3d9525734e572..be807ac4e1f76 100644 --- a/code/modules/client/preferences/prosthetic_limb.dm +++ b/code/modules/client/preferences/prosthetic_limb.dm @@ -3,6 +3,9 @@ savefile_key = "prosthetic" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/prosthetic/create_default_value() + return "Random" + /datum/preference/choiced/prosthetic/init_possible_values() return list("Random") + GLOB.prosthetic_limb_choice diff --git a/code/modules/client/preferences/prosthetic_organ.dm b/code/modules/client/preferences/prosthetic_organ.dm index 35d3b818355eb..02e8418e3db2f 100644 --- a/code/modules/client/preferences/prosthetic_organ.dm +++ b/code/modules/client/preferences/prosthetic_organ.dm @@ -3,6 +3,9 @@ savefile_key = "prosthetic_organ" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/prosthetic_organ/create_default_value() + return "Random" + /datum/preference/choiced/prosthetic_organ/init_possible_values() return list("Random") + GLOB.organ_choice diff --git a/code/modules/client/preferences/sounds.dm b/code/modules/client/preferences/sounds.dm index 81263de677bc9..f1778405665ad 100644 --- a/code/modules/client/preferences/sounds.dm +++ b/code/modules/client/preferences/sounds.dm @@ -7,6 +7,11 @@ /datum/preference/toggle/sound_ambience/apply_to_client(client/client, value) client.update_ambience_pref(value) +/datum/preference/toggle/sound_breathing + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "sound_breathing" + savefile_identifier = PREFERENCE_PLAYER + /// Controls hearing announcement sounds /datum/preference/toggle/sound_announcements category = PREFERENCE_CATEGORY_GAME_PREFERENCES diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index 3f101ad9e44a5..21459697f864f 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -52,7 +52,7 @@ return random_eye_color() /datum/preference/choiced/facial_hairstyle - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE savefile_key = "facial_style_name" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_FEATURES @@ -69,15 +69,32 @@ /datum/preference/choiced/facial_hairstyle/apply_to_human(mob/living/carbon/human/target, value) target.set_facial_hairstyle(value, update = FALSE) +/datum/preference/choiced/facial_hairstyle/create_default_value() + return /datum/sprite_accessory/facial_hair/shaved::name + +/datum/preference/choiced/facial_hairstyle/create_informed_default_value(datum/preferences/preferences) + var/gender = preferences.read_preference(/datum/preference/choiced/gender) + var/species_type = preferences.read_preference(/datum/preference/choiced/species) + var/datum/species/species_real = GLOB.species_prototypes[species_type] + if(!gender || !species_real || !species_real.sexes) + return ..() + + var/picked_beard = random_facial_hairstyle(gender) + var/datum/sprite_accessory/beard_style = SSaccessories.facial_hairstyles_list[picked_beard] + if(!beard_style || !beard_style.natural_spawn || beard_style.locked) // Invalid, go with god(bald) + return ..() + + return picked_beard + /datum/preference/choiced/facial_hairstyle/compile_constant_data() var/list/data = ..() - data[SUPPLEMENTAL_FEATURE_KEY] = "facial_hair_color" + data[SUPPLEMENTAL_FEATURE_KEY] = /datum/preference/color/facial_hair_color::savefile_key return data /datum/preference/color/facial_hair_color - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE // Need to happen after hair oclor is set so we can match by default savefile_key = "facial_hair_color" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES @@ -86,12 +103,16 @@ /datum/preference/color/facial_hair_color/apply_to_human(mob/living/carbon/human/target, value) target.set_facial_haircolor(value, update = FALSE) +/datum/preference/color/facial_hair_color/create_informed_default_value(datum/preferences/preferences) + return preferences.read_preference(/datum/preference/color/hair_color) || random_hair_color() + /datum/preference/choiced/facial_hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "facial_hair_gradient" relevant_head_flag = HEAD_FACIAL_HAIR + can_randomize = FALSE /datum/preference/choiced/facial_hair_gradient/init_possible_values() return assoc_to_keys_features(SSaccessories.facial_hair_gradients_list) @@ -100,10 +121,10 @@ target.set_facial_hair_gradient_style(new_style = value, update = FALSE) /datum/preference/choiced/facial_hair_gradient/create_default_value() - return "None" + return /datum/sprite_accessory/gradient/none::name /datum/preference/color/facial_hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRORITY_LATE_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "facial_hair_gradient_color" @@ -115,10 +136,10 @@ /datum/preference/color/facial_hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE - return preferences.read_preference(/datum/preference/choiced/facial_hair_gradient) != "None" + return preferences.read_preference(/datum/preference/choiced/facial_hair_gradient) != /datum/sprite_accessory/gradient/none::name /datum/preference/color/hair_color - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE savefile_key = "hair_color" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES @@ -127,8 +148,11 @@ /datum/preference/color/hair_color/apply_to_human(mob/living/carbon/human/target, value) target.set_haircolor(value, update = FALSE) +/datum/preference/color/hair_color/create_informed_default_value(datum/preferences/preferences) + return random_hair_color() + /datum/preference/choiced/hairstyle - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE // Happens after gender so we can picka hairstyle based on that savefile_key = "hairstyle_name" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_FEATURES @@ -146,19 +170,37 @@ /datum/preference/choiced/hairstyle/apply_to_human(mob/living/carbon/human/target, value) target.set_hairstyle(value, update = FALSE) +/datum/preference/choiced/hairstyle/create_default_value() + return /datum/sprite_accessory/hair/bald::name + +/datum/preference/choiced/hairstyle/create_informed_default_value(datum/preferences/preferences) + var/gender = preferences.read_preference(/datum/preference/choiced/gender) + var/species_type = preferences.read_preference(/datum/preference/choiced/species) + var/datum/species/species_real = GLOB.species_prototypes[species_type] + if(!gender || !species_real || !species_real.sexes) + return ..() + + var/picked_hair = random_hairstyle(gender) + var/datum/sprite_accessory/hair_style = SSaccessories.hairstyles_list[picked_hair] + if(!hair_style || !hair_style.natural_spawn || hair_style.locked) // Invalid, go with god(bald) + return ..() + + return picked_hair + /datum/preference/choiced/hairstyle/compile_constant_data() var/list/data = ..() - data[SUPPLEMENTAL_FEATURE_KEY] = "hair_color" + data[SUPPLEMENTAL_FEATURE_KEY] = /datum/preference/color/hair_color::savefile_key return data /datum/preference/choiced/hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "hair_gradient" relevant_head_flag = HEAD_HAIR + can_randomize = FALSE /datum/preference/choiced/hair_gradient/init_possible_values() return assoc_to_keys_features(SSaccessories.hair_gradients_list) @@ -167,10 +209,10 @@ target.set_hair_gradient_style(new_style = value, update = FALSE) /datum/preference/choiced/hair_gradient/create_default_value() - return "None" + return /datum/sprite_accessory/gradient/none::name /datum/preference/color/hair_gradient - priority = PREFERENCE_PRIORITY_BODYPARTS + priority = PREFERENCE_PRIORITY_BODY_TYPE category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "hair_gradient_color" @@ -182,4 +224,4 @@ /datum/preference/color/hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) return FALSE - return preferences.read_preference(/datum/preference/choiced/hair_gradient) != "None" + return preferences.read_preference(/datum/preference/choiced/hair_gradient) != /datum/sprite_accessory/gradient/none::name diff --git a/code/modules/client/preferences/species_features/felinid.dm b/code/modules/client/preferences/species_features/felinid.dm index a6d43736cf46c..4c874ea7df750 100644 --- a/code/modules/client/preferences/species_features/felinid.dm +++ b/code/modules/client/preferences/species_features/felinid.dm @@ -29,5 +29,4 @@ target.dna.features["ears"] = value /datum/preference/choiced/ears/create_default_value() - var/datum/sprite_accessory/ears/cat/ears = /datum/sprite_accessory/ears/cat - return initial(ears.name) + return /datum/sprite_accessory/ears/cat::name diff --git a/code/modules/client/preferences/species_features/lizard.dm b/code/modules/client/preferences/species_features/lizard.dm index 38c83690b3b5e..66c107153305e 100644 --- a/code/modules/client/preferences/species_features/lizard.dm +++ b/code/modules/client/preferences/species_features/lizard.dm @@ -142,5 +142,4 @@ target.dna.features["tail_lizard"] = value /datum/preference/choiced/lizard_tail/create_default_value() - var/datum/sprite_accessory/tails/lizard/smooth/tail = /datum/sprite_accessory/tails/lizard/smooth - return initial(tail.name) + return /datum/sprite_accessory/tails/lizard/smooth::name diff --git a/code/modules/client/preferences/species_features/monkey.dm b/code/modules/client/preferences/species_features/monkey.dm index adf9e367723de..8417cd7142e07 100644 --- a/code/modules/client/preferences/species_features/monkey.dm +++ b/code/modules/client/preferences/species_features/monkey.dm @@ -3,6 +3,7 @@ savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SECONDARY_FEATURES relevant_external_organ = /obj/item/organ/external/tail/monkey + can_randomize = FALSE /datum/preference/choiced/monkey_tail/init_possible_values() return assoc_to_keys_features(SSaccessories.tails_list_monkey) @@ -11,5 +12,4 @@ target.dna.features["tail_monkey"] = value /datum/preference/choiced/monkey_tail/create_default_value() - var/datum/sprite_accessory/tails/monkey/default/tail = /datum/sprite_accessory/tails/monkey/default - return initial(tail.name) + return /datum/sprite_accessory/tails/monkey/default::name diff --git a/code/modules/client/preferences/trans_prosthetic.dm b/code/modules/client/preferences/trans_prosthetic.dm index fd28cb1ecf8c8..ea8128a1f44e4 100644 --- a/code/modules/client/preferences/trans_prosthetic.dm +++ b/code/modules/client/preferences/trans_prosthetic.dm @@ -3,6 +3,9 @@ savefile_key = "trans_prosthetic" savefile_identifier = PREFERENCE_CHARACTER +/datum/preference/choiced/trans_prosthetic/create_default_value() + return "Random" + /datum/preference/choiced/trans_prosthetic/init_possible_values() return list("Random") + GLOB.part_choice_transhuman diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 9a6448e2e6d54..5e848879d01f7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -291,13 +291,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car return FALSE // Read everything into cache - for (var/preference_type in GLOB.preference_entries) - var/datum/preference/preference = GLOB.preference_entries[preference_type] + // Uses priority order as some values may rely on others for creating default values + for (var/datum/preference/preference as anything in get_preferences_in_priority_order()) if (preference.savefile_identifier != PREFERENCE_CHARACTER) continue - value_cache -= preference_type - read_preference(preference_type) + value_cache -= preference.type + read_preference(preference.type) //Character randomise = save_data?["randomise"] diff --git a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm index 63bede9ec88c8..47b6f4db185a5 100644 --- a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm +++ b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm @@ -252,6 +252,10 @@ do { \ name = "backpack" actions_types = list(/datum/action/item_action/chameleon/change/backpack) +/obj/item/storage/backpack/chameleon/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) + /obj/item/storage/backpack/chameleon/broken /obj/item/storage/backpack/chameleon/broken/Initialize(mapload) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 98184b3fce25e..1998b7abc4db3 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -353,7 +353,7 @@ how_cool_are_your_threads += "" . += how_cool_are_your_threads.Join() - if(get_armor().has_any_armor() || (flags_cover & (HEADCOVERSMOUTH|PEPPERPROOF))) + if(get_armor().has_any_armor() || (flags_cover & (HEADCOVERSMOUTH|PEPPERPROOF)) || (clothing_flags & STOPSPRESSUREDAMAGE) || (visor_flags & STOPSPRESSUREDAMAGE)) . += span_notice("It has a tag listing its protection classes.") /obj/item/clothing/Topic(href, href_list) @@ -393,6 +393,20 @@ readout += "COVERAGE" readout += "It will block [english_list(things_blocked)]." + if(clothing_flags & STOPSPRESSUREDAMAGE || visor_flags & STOPSPRESSUREDAMAGE) + var/list/parts_covered = list() + var/output_string = "It" + if(!(clothing_flags & STOPSPRESSUREDAMAGE)) + output_string = "When sealed, it" + if(body_parts_covered & HEAD) + parts_covered += "head" + if(body_parts_covered & CHEST) + parts_covered += "torso" + if(length(parts_covered)) // Just in case someone makes spaceproof gloves or something + readout += "[output_string] will protect the wearer's [english_list(parts_covered)] from [span_tooltip("The extremely low pressure is the biggest danger posed by the vacuum of space.", "low pressure")]." + + if(min_cold_protection_temperature == SPACE_SUIT_MIN_TEMP_PROTECT) + readout += "It will insulate the wearer from [span_tooltip("While not as dangerous as the lack of pressure, the extremely low temperature of space is also a hazard.", "the cold of space")]." if(!length(readout)) readout += "No armor or durability information available." diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 9453df3616fba..e2632dd394e0c 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -92,8 +92,14 @@ inhand_icon_state = "nvgmeson" flash_protect = FLASH_PROTECTION_SENSITIVE // Night vision mesons get the same but more intense - color_cutoffs = list(10, 30, 10) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(10, 35, 10) + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/meson/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "nvgmeson_off" /obj/item/clothing/glasses/meson/gar name = "gar mesons" @@ -138,8 +144,14 @@ icon_state = "scihudnight" flash_protect = FLASH_PROTECTION_SENSITIVE // Real vivid purple - color_cutoffs = list(50, 10, 30) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(30, 5, 15) + glass_colour_type = /datum/client_colour/glass_colour/lightpurple + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/science/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" /obj/item/clothing/glasses/night name = "night vision goggles" @@ -149,8 +161,18 @@ flags_cover = GLASSESCOVERSEYES flash_protect = FLASH_PROTECTION_SENSITIVE // Dark green - color_cutoffs = list(10, 30, 10) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(10, 25, 10) + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" + +/obj/item/clothing/glasses/night/colorless + desc = parent_type::desc + " Now with 50% less green!" + forced_glass_color = FALSE /obj/item/clothing/glasses/eyepatch name = "eyepatch" @@ -326,8 +348,8 @@ /obj/item/clothing/glasses/sunglasses/proc/add_glasses_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsunsec, /datum/crafting_recipe/hudsunmed, /datum/crafting_recipe/hudsundiag, /datum/crafting_recipe/scienceglasses) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -346,8 +368,8 @@ /obj/item/clothing/glasses/sunglasses/chemical/add_glasses_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/scienceglassesremoval) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index c9fbb159126f3..064a24cf5c779 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -47,21 +47,21 @@ if(MODE_MESON) vision_flags = SEE_TURFS color_cutoffs = list(15, 12, 0) - change_glass_color(user, /datum/client_colour/glass_colour/yellow) + change_glass_color(/datum/client_colour/glass_colour/yellow) if(MODE_TRAY) //undoes the last mode, meson vision_flags = NONE color_cutoffs = null - change_glass_color(user, /datum/client_colour/glass_colour/lightblue) + change_glass_color(/datum/client_colour/glass_colour/lightblue) if(MODE_PIPE_CONNECTABLE) - change_glass_color(user, /datum/client_colour/glass_colour/lightblue) + change_glass_color(/datum/client_colour/glass_colour/lightblue) if(MODE_SHUTTLE) - change_glass_color(user, /datum/client_colour/glass_colour/red) + change_glass_color(/datum/client_colour/glass_colour/red) if(MODE_NONE) - change_glass_color(user, initial(glass_colour_type)) + change_glass_color(initial(glass_colour_type)) if(ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 46900c1caa9a5..f82f56a48fbe5 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -2,15 +2,16 @@ name = "HUD" desc = "A heads-up display that provides important info in (almost) real time." flags_1 = null //doesn't protect eyes because it's a monocle, duh - var/hud_type = null + ///A list of atom hud types added to the mob when the glasses are worn on the appropriate slot. + var/list/hud_types - // NOTE: Just because you have a HUD display doesn't mean you should be able to interact with stuff on examine, that's where the associated trait (TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, etc) is necessary. + // NOTE: Just because you have a HUD display doesn't mean you should be able to interact with stuff on examine, that's where the associated trait (TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, etc) is necessary. /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) ..() if(!(slot & ITEM_SLOT_EYES)) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -18,7 +19,7 @@ ..() if(!istype(user) || user.glasses != src) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) @@ -55,10 +56,17 @@ name = "health scanner HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status." icon_state = "healthhud" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue +/obj/item/clothing/glasses/hud/medsechud + name = "health scanner security HUD" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status, ID status and security records." + icon_state = "medsechud" + hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_SECURITY_ADVANCED) + clothing_traits = list(TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD) + /obj/item/clothing/glasses/hud/health/night name = "night vision health scanner HUD" desc = "An advanced medical heads-up display that allows doctors to find patients in complete darkness." @@ -67,8 +75,14 @@ flash_protect = FLASH_PROTECTION_SENSITIVE flags_cover = GLASSESCOVERSEYES // Blue green, dark - color_cutoffs = list(5, 15, 30) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(20, 20, 45) + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/hud/health/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" /obj/item/clothing/glasses/hud/health/night/meson name = "night vision meson health scanner HUD" @@ -79,7 +93,8 @@ name = "night vision medical science scanner HUD" desc = "An clandestine medical science heads-up display that allows operatives to find \ dying captains and the perfect poison to finish them off in complete darkness." - clothing_traits = list(TRAIT_REAGENT_SCANNER) + clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_MEDICAL_HUD) + forced_glass_color = FALSE /obj/item/clothing/glasses/hud/health/sunglasses name = "medical HUDSunglasses" @@ -94,8 +109,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsunmedremoval) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -103,7 +118,7 @@ name = "diagnostic HUD" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange @@ -115,8 +130,14 @@ flash_protect = FLASH_PROTECTION_SENSITIVE flags_cover = GLASSESCOVERSEYES // Pale yellow - color_cutoffs = list(30, 20, 5) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(25, 15, 5) + glass_colour_type = /datum/client_colour/glass_colour/lightyellow + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/hud/diagnostic/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" /obj/item/clothing/glasses/hud/diagnostic/sunglasses name = "diagnostic sunglasses" @@ -131,8 +152,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsundiagremoval) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -140,7 +161,7 @@ name = "security HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records." icon_state = "securityhud" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red @@ -175,8 +196,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsunsecremoval) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -187,8 +208,14 @@ flash_protect = FLASH_PROTECTION_SENSITIVE flags_cover = GLASSESCOVERSEYES // Red with a tint of green - color_cutoffs = list(35, 5, 5) - glass_colour_type = /datum/client_colour/glass_colour/green + color_cutoffs = list(40, 15, 10) + glass_colour_type = /datum/client_colour/glass_colour/lightred + actions_types = list(/datum/action/item_action/toggle_nv) + forced_glass_color = TRUE + +/obj/item/clothing/glasses/hud/security/night/update_icon_state() + . = ..() + icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" /obj/item/clothing/glasses/hud/security/sunglasses/gars name = "\improper HUD gar glasses" @@ -224,18 +251,18 @@ if (wearer.glasses != src) return - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) - if (hud_type == DATA_HUD_MEDICAL_ADVANCED) - hud_type = null - else if (hud_type == DATA_HUD_SECURITY_ADVANCED) - hud_type = DATA_HUD_MEDICAL_ADVANCED + if (DATA_HUD_MEDICAL_ADVANCED in hud_types) + hud_types = null + else if (DATA_HUD_SECURITY_ADVANCED in hud_types) + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) else - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -246,26 +273,27 @@ name = "thermal HUD scanner" desc = "Thermal imaging HUD in the shape of glasses." icon_state = "thermal" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) vision_flags = SEE_MOBS color_cutoffs = list(25, 8, 5) glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) ..() + var/hud_type = hud_types[1] switch (hud_type) if (DATA_HUD_MEDICAL_ADVANCED) icon_state = "meson" color_cutoffs = list(5, 15, 5) - change_glass_color(user, /datum/client_colour/glass_colour/green) + change_glass_color(/datum/client_colour/glass_colour/green) if (DATA_HUD_SECURITY_ADVANCED) icon_state = "thermal" color_cutoffs = list(25, 8, 5) - change_glass_color(user, /datum/client_colour/glass_colour/red) + change_glass_color(/datum/client_colour/glass_colour/red) else icon_state = "purple" color_cutoffs = list(15, 0, 25) - change_glass_color(user, /datum/client_colour/glass_colour/purple) + change_glass_color(/datum/client_colour/glass_colour/purple) user.update_sight() user.update_worn_glasses() diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 03b1cbb5bf782..021d895f69c36 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -13,8 +13,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/extendohand_l, /datum/crafting_recipe/extendohand_r) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index ddb0e07dd9986..bb0e12809955e 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -15,8 +15,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/radiogloves) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -37,8 +37,8 @@ . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/gripperoffbrand) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/clothing/head/costume.dm b/code/modules/clothing/head/costume.dm index ec5ee81741fcc..2768656d5e6f9 100644 --- a/code/modules/clothing/head/costume.dm +++ b/code/modules/clothing/head/costume.dm @@ -156,10 +156,8 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' //Grandfathered in from the wallframe for status displays. righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' clothing_flags = SNUG_FIT - flash_protect = FLASH_PROTECTION_SENSITIVE - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT - var/has_fov = TRUE /datum/armor/costume_bronze melee = 5 @@ -169,15 +167,6 @@ fire = 20 acid = 20 -/obj/item/clothing/head/costume/tv_head/Initialize(mapload) - . = ..() - if(has_fov) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) - -/obj/item/clothing/head/costume/tv_head/fov_less - desc = "A mysterious headgear made from the hollowed out remains of a status display. How very retro-retro-futuristic of you. It's very easy to see out of this one." - has_fov = FALSE - /obj/item/clothing/head/costume/irs name = "internal revenue service cap" desc = "Even in space, you can't avoid the tax collectors." diff --git a/code/modules/clothing/head/frenchberet.dm b/code/modules/clothing/head/frenchberet.dm index 40d8abc5b62ce..de63c6fddfdd1 100644 --- a/code/modules/clothing/head/frenchberet.dm +++ b/code/modules/clothing/head/frenchberet.dm @@ -6,37 +6,17 @@ greyscale_config_worn = /datum/greyscale_config/beret/worn greyscale_colors = "#972A2A" +/obj/item/clothing/head/frenchberet/Initialize(mapload) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("french_replacement.json", "french"), end_string = list(" Honh honh honh!"," Honh!"," Zut Alors!"), end_string_chance = 3, slots = ITEM_SLOT_HEAD) /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() if (slot & ITEM_SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) ADD_TRAIT(M, TRAIT_GARLIC_BREATH, type) else - UnregisterSignal(M, COMSIG_MOB_SAY) REMOVE_TRAIT(M, TRAIT_GARLIC_BREATH, type) /obj/item/clothing/head/frenchberet/dropped(mob/M) . = ..() - UnregisterSignal(M, COMSIG_MOB_SAY) REMOVE_TRAIT(M, TRAIT_GARLIC_BREATH, type) - -/obj/item/clothing/head/frenchberet/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" - var/list/french_words = strings("french_replacement.json", "french") - - for(var/key in french_words) - var/value = french_words[key] - if(islist(value)) - value = pick(value) - - message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") - message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") - message = replacetextEx(message, " [key]", " [value]") - - if(prob(3)) - message += pick(" Honh honh honh!"," Honh!"," Zut Alors!") - speech_args[SPEECH_MESSAGE] = trim(message) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 81ec00d54b439..fc56f83342346 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -123,7 +123,7 @@ flash_protect = FLASH_PROTECTION_WELDER tint = 2 flags_inv = HIDEEYES | HIDEFACE | HIDESNOUT - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT visor_flags_inv = HIDEEYES | HIDEFACE | HIDESNOUT visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF @@ -158,6 +158,14 @@ if(!up) . += visor_state +/obj/item/clothing/head/utility/hardhat/welding/up + up = TRUE // for calls to worn_overlays before init (prefs) + +/obj/item/clothing/head/utility/hardhat/welding/up/Initialize(mapload) + . = ..() + up = FALSE + visor_toggling() + /obj/item/clothing/head/utility/hardhat/welding/orange icon_state = "hardhat0_orange" inhand_icon_state = null @@ -175,6 +183,15 @@ cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT +/obj/item/clothing/head/utility/hardhat/welding/white/up + up = TRUE // for calls to worn_overlays before init (prefs) + +/obj/item/clothing/head/utility/hardhat/welding/white/up/Initialize(mapload) + . = ..() + up = FALSE + visor_toggling() + + /obj/item/clothing/head/utility/hardhat/welding/dblue icon_state = "hardhat0_dblue" inhand_icon_state = null diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm index 0fc2de1375a48..13285257c6553 100644 --- a/code/modules/clothing/head/hat.dm +++ b/code/modules/clothing/head/hat.dm @@ -53,11 +53,12 @@ /obj/item/clothing/head/bio_hood/plague name = "plague doctor's hat" - desc = "These were once used by plague doctors. Will protect you from exposure to the Pestilence." + desc = "These were once used by plague doctors. This hat will only slightly protect you from exposure to the Pestilence." icon_state = "plaguedoctor" - clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | SNUG_FIT | STACKABLE_HELMET_EXEMPT armor_type = /datum/armor/bio_hood_plague flags_inv = NONE + clothing_flags = SNUG_FIT + flags_cover = NONE /datum/armor/bio_hood_plague bio = 100 diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 27be2799b7d2e..4d41d9daa5c76 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/clothing/head/helmet.dmi' worn_icon = 'icons/mob/clothing/head/helmet.dmi' icon_state = "helmet" + base_icon_state = "helmet" inhand_icon_state = "helmet" armor_type = /datum/armor/head_helmet cold_protection = HEAD @@ -31,6 +32,7 @@ AddElement(/datum/element/update_icon_updates_onmob) /obj/item/clothing/head/helmet/sec + var/flipped_visor = FALSE /obj/item/clothing/head/helmet/sec/Initialize(mapload) . = ..() @@ -60,6 +62,19 @@ return ..() +/obj/item/clothing/head/helmet/sec/click_alt(mob/user) + flipped_visor = !flipped_visor + balloon_alert(user, "visor flipped") + // base_icon_state is modified for seclight attachment component + base_icon_state = "[initial(base_icon_state)][flipped_visor ? "-novisor" : ""]" + icon_state = base_icon_state + if (flipped_visor) + flags_cover &= ~HEADCOVERSEYES + else + flags_cover |= HEADCOVERSEYES + update_appearance() + return CLICK_ACTION_SUCCESS + /obj/item/clothing/head/helmet/alt name = "bulletproof helmet" desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." @@ -395,6 +410,7 @@ armor_type = /datum/armor/helmet_knight flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = NONE strip_delay = 80 dog_fashion = null clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 5ea7d62313bd4..a5041de7fa0a9 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -412,8 +412,8 @@ /datum/crafting_recipe/sturdy_shako,\ ) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/clothing/head/welding.dm b/code/modules/clothing/head/welding.dm index cb785447174f7..e3f014875dde4 100644 --- a/code/modules/clothing/head/welding.dm +++ b/code/modules/clothing/head/welding.dm @@ -2,7 +2,7 @@ name = "welding helmet" desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye." icon_state = "welding" - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF inhand_icon_state = "welding" lefthand_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index c1d29d65c8641..5255b758b6faf 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -8,7 +8,6 @@ strip_delay = 40 equip_delay_other = 40 visor_vars_to_toggle = NONE - var/modifies_speech = FALSE var/adjusted_flags = null ///Did we install a filtering cloth? var/has_filter = FALSE @@ -25,31 +24,6 @@ var/status = !(clothing_flags & VOICEBOX_DISABLED) to_chat(user, span_notice("You turn the voice box in [src] [status ? "on" : "off"].")) -/obj/item/clothing/mask/equipped(mob/M, slot) - . = ..() - if ((slot & ITEM_SLOT_MASK) && modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else - UnregisterSignal(M, COMSIG_MOB_SAY) - -/obj/item/clothing/mask/dropped(mob/M) - . = ..() - UnregisterSignal(M, COMSIG_MOB_SAY) - -/obj/item/clothing/mask/vv_edit_var(vname, vval) - if(vname == NAMEOF(src, modifies_speech) && ismob(loc)) - var/mob/M = loc - if(M.get_item_by_slot(ITEM_SLOT_MASK) == src) - if(vval) - if(!modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else if(modifies_speech) - UnregisterSignal(M, COMSIG_MOB_SAY) - return ..() - -/obj/item/clothing/mask/proc/handle_speech() - SIGNAL_HANDLER - /obj/item/clothing/mask/worn_overlays(mutable_appearance/standing, isinhands = FALSE) . = ..() if(isinhands) diff --git a/code/modules/clothing/masks/animal_masks.dm b/code/modules/clothing/masks/animal_masks.dm index 5df5c6738d8e5..05e5888168e12 100644 --- a/code/modules/clothing/masks/animal_masks.dm +++ b/code/modules/clothing/masks/animal_masks.dm @@ -16,7 +16,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal w_class = WEIGHT_CLASS_SMALL clothing_flags = VOICEBOX_TOGGLABLE - modifies_speech = TRUE + var/modifies_speech = TRUE flags_cover = MASKCOVERSMOUTH var/animal_type ///what kind of animal the masks represents. used for automatic name and description generation. @@ -32,6 +32,17 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( if(cursed) make_cursed() +/obj/item/clothing/mask/animal/equipped(mob/M, slot) + . = ..() + if ((slot & ITEM_SLOT_MASK) && modifies_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + else + UnregisterSignal(M, COMSIG_MOB_SAY) + +/obj/item/clothing/mask/animal/dropped(mob/M) + . = ..() + UnregisterSignal(M, COMSIG_MOB_SAY) + /obj/item/clothing/mask/animal/vv_edit_var(vname, vval) if(vname == NAMEOF(src, cursed)) if(vval) @@ -39,6 +50,14 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( make_cursed() else if(cursed) clear_curse() + if(vname == NAMEOF(src, modifies_speech) && ismob(loc)) + var/mob/M = loc + if(M.get_item_by_slot(ITEM_SLOT_MASK) == src) + if(vval) + if(!modifies_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + else if(modifies_speech) + UnregisterSignal(M, COMSIG_MOB_SAY) return ..() /obj/item/clothing/mask/animal/examine(mob/user) @@ -90,7 +109,9 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( UnregisterSignal(M, COMSIG_MOB_SAY) M.update_worn_mask() -/obj/item/clothing/mask/animal/handle_speech(datum/source, list/speech_args) +/obj/item/clothing/mask/animal/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + if(clothing_flags & VOICEBOX_DISABLED) return if(!modifies_speech || !LAZYLEN(animal_sounds)) diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 468b1272f8604..2e75cebf5d98f 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -34,31 +34,10 @@ inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL - modifies_speech = TRUE -/obj/item/clothing/mask/luchador/handle_speech(datum/source, list/speech_args) - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = replacetext(message, "captain", "CAPITÁN") - message = replacetext(message, "station", "ESTACIÓN") - message = replacetext(message, "sir", "SEÑOR") - message = replacetext(message, "the ", "el ") - message = replacetext(message, "my ", "mi ") - message = replacetext(message, "is ", "es ") - message = replacetext(message, "it's", "es") - message = replacetext(message, "friend", "amigo") - message = replacetext(message, "buddy", "amigo") - message = replacetext(message, "hello", "hola") - message = replacetext(message, " hot", " caliente") - message = replacetext(message, " very ", " muy ") - message = replacetext(message, "sword", "espada") - message = replacetext(message, "library", "biblioteca") - message = replacetext(message, "traitor", "traidor") - message = replacetext(message, "wizard", "mago") - message = uppertext(message) //Things end up looking better this way (no mixed cases), and it fits the macho wrestler image. - if(prob(25)) - message += " OLE!" - speech_args[SPEECH_MESSAGE] = message +/obj/item/clothing/mask/luchador/Initialize(mapload) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("luchador_replacement.json", "luchador"), end_string = " OLE!", end_string_chance = 25, uppercase = TRUE, slots = ITEM_SLOT_MASK) /obj/item/clothing/mask/luchador/tecnicos name = "Tecnicos Mask" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 36fe591a63edb..5eff7eb3e7afe 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -250,12 +250,12 @@ GLOBAL_LIST_INIT(clown_mask_options, list( //Plague Dr suit can be found in clothing/suits/bio.dm /obj/item/clothing/mask/gas/plaguedoctor name = "plague doctor mask" - desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply." + desc = "A modernised version of the classic design, this mask will not only protect you from exposure to the Pestilence but it can also be connected to an air supply." icon_state = "plaguedoctor" flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR inhand_icon_state = "gas_mask" has_fov = FALSE - flags_cover = MASKCOVERSEYES + clothing_flags = BLOCK_GAS_SMOKE_EFFECT /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" diff --git a/code/modules/clothing/masks/gondola.dm b/code/modules/clothing/masks/gondola.dm index 7a8283293ded2..bfaae3cb3f314 100644 --- a/code/modules/clothing/masks/gondola.dm +++ b/code/modules/clothing/masks/gondola.dm @@ -5,18 +5,7 @@ inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL - modifies_speech = TRUE -/obj/item/clothing/mask/gondola/handle_speech(datum/source, list/speech_args) - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" - var/list/spurdo_words = strings("spurdo_replacement.json", "spurdo") - for(var/key in spurdo_words) - var/value = spurdo_words[key] - if(islist(value)) - value = pick(value) - message = replacetextEx(message,regex(uppertext(key),"g"), "[uppertext(value)]") - message = replacetextEx(message,regex(capitalize(key),"g"), "[capitalize(value)]") - message = replacetextEx(message,regex(key,"g"), "[value]") - speech_args[SPEECH_MESSAGE] = trim(message) +/obj/item/clothing/mask/gondola/Initialize(mapload) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("spurdo_replacement.json", "spurdo"), slots = ITEM_SLOT_MASK) diff --git a/code/modules/clothing/masks/moustache.dm b/code/modules/clothing/masks/moustache.dm index aaf59be51e4fd..5b71e7a426090 100644 --- a/code/modules/clothing/masks/moustache.dm +++ b/code/modules/clothing/masks/moustache.dm @@ -10,23 +10,7 @@ /obj/item/clothing/mask/fakemoustache/italian name = "italian moustache" desc = "Made from authentic Italian moustache hairs. Gives the wearer an irresistable urge to gesticulate wildly." - modifies_speech = TRUE -/obj/item/clothing/mask/fakemoustache/italian/handle_speech(datum/source, list/speech_args) - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" - var/list/italian_words = strings("italian_replacement.json", "italian") - - for(var/key in italian_words) - var/value = italian_words[key] - if(islist(value)) - value = pick(value) - - message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") - message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") - message = replacetextEx(message, " [key]", " [value]") - - if(prob(3)) - message += pick(" Ravioli, ravioli, give me the formuoli!"," Mamma-mia!"," Mamma-mia! That's a spicy meat-ball!", " La la la la la funiculi funicula!") - speech_args[SPEECH_MESSAGE] = trim(message) +/obj/item/clothing/mask/fakemoustache/italian/Initialize(mapload) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("italian_replacement.json", "italian"), end_string = list(" Ravioli, ravioli, give me the formuoli!"," Mamma-mia!"," Mamma-mia! That's a spicy meat-ball!", " La la la la la funiculi funicula!"), end_string_chance = 3, slots = ITEM_SLOT_MASK) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index db20562039b23..2aa61b0046070 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -242,7 +242,7 @@ /obj/item/storage/box/lights/mixed = 1, ) belt = /obj/item/storage/belt/janitor/full - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/night/colorless l_pocket = /obj/item/grenade/chem_grenade/cleaner r_pocket = /obj/item/grenade/chem_grenade/cleaner l_hand = /obj/item/storage/bag/trash/bluespace diff --git a/code/modules/clothing/spacesuits/pirate.dm b/code/modules/clothing/spacesuits/pirate.dm index 946c0c2b66fdd..ca041d68d036f 100644 --- a/code/modules/clothing/spacesuits/pirate.dm +++ b/code/modules/clothing/spacesuits/pirate.dm @@ -30,3 +30,15 @@ armor_type = /datum/armor/space_pirate strip_delay = 40 equip_delay_other = 20 + +/obj/item/clothing/head/helmet/space/pirate/tophat + name = "designer pirate helmet" + desc = "A modified EVA helmet with a five-thousand credit Lizzy Vuitton hat affixed to the top, proving that working in deep space is no excuse for being poor." + icon_state = "spacetophat" + +/obj/item/clothing/suit/space/pirate/silverscale + name = "designer pirate suit" + desc = "A specially-made Cybersun branded space suit; the fine plastisilk exterior is woven from the coccons of black-market Lümlan mothroaches \ + and the trim is lined with the ivory of the critically endagered Zanzibarian dwarf elephant. Baby seal leather boots sold seperately." + inhand_icon_state = "syndicate-black" + icon_state = "syndicate-black-white" diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 67702582ff857..9cca1cfc3af08 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(syndicate_space_suits_to_helmets,list( /obj/item/clothing/suit/space/syndicate/black/blue = /obj/item/clothing/head/helmet/space/syndicate/black/blue, /obj/item/clothing/suit/space/syndicate/black/orange = /obj/item/clothing/head/helmet/space/syndicate/black/orange, /obj/item/clothing/suit/space/syndicate/black/red = /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/clothing/suit/space/syndicate/black/white = /obj/item/clothing/head/helmet/space/syndicate/black, /obj/item/clothing/suit/space/syndicate/black/med = /obj/item/clothing/head/helmet/space/syndicate/black/med, /obj/item/clothing/suit/space/syndicate/black/engie = /obj/item/clothing/head/helmet/space/syndicate/black/engie, )) @@ -132,6 +133,13 @@ GLOBAL_LIST_INIT(syndicate_space_suits_to_helmets,list( inhand_icon_state = "syndicate-black-blue" helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black/blue +//Black and white syndicate space suit without the medical iconography +/obj/item/clothing/suit/space/syndicate/black/white + name = "black and white space suit" + icon_state = "syndicate-black-white" + inhand_icon_state = "syndicate-black" + helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black + //Black medical syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/med diff --git a/code/modules/clothing/suits/ghostsheet.dm b/code/modules/clothing/suits/ghostsheet.dm index 9bd8753f50b41..65213fd176dba 100644 --- a/code/modules/clothing/suits/ghostsheet.dm +++ b/code/modules/clothing/suits/ghostsheet.dm @@ -22,8 +22,18 @@ if(!isinhands && check_holidays(HALLOWEEN)) . += emissive_appearance('icons/mob/simple/mob.dmi', "ghost", offset_spokesman = src, alpha = src.alpha) -/obj/item/clothing/suit/costume/ghost_sheet/spooky +/obj/item/clothing/suit/spooky_ghost_sheet name = "spooky ghost" desc = "This is obviously just a bedsheet, but maybe try it on?" + icon = 'icons/obj/clothing/suits/costume.dmi' + worn_icon = 'icons/mob/clothing/suits/costume.dmi' user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) + inhand_icon_state = null + throwforce = 0 + throw_speed = 1 + throw_range = 2 + w_class = WEIGHT_CLASS_TINY + flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + species_exception = list(/datum/species/golem) + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index cbbe357690846..dcc33fb65376b 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -49,6 +49,7 @@ /obj/item/clothing/suit/hooded/wintercoat/click_alt(mob/user) zipped = !zipped + playsound(src, 'sound/items/zip_up.ogg', 30, TRUE, -3) worn_icon_state = "[initial(icon_state)][zipped ? "_t" : ""]" balloon_alert(user, "[zipped ? "" : "un"]zipped") diff --git a/code/modules/deathmatch/deathmatch_controller.dm b/code/modules/deathmatch/deathmatch_controller.dm index 45b5f087c5bb5..0b098871624dc 100644 --- a/code/modules/deathmatch/deathmatch_controller.dm +++ b/code/modules/deathmatch/deathmatch_controller.dm @@ -76,6 +76,9 @@ return switch (action) if ("host") + if(!(GLOB.ghost_role_flags & GHOSTROLE_MINIGAME)) + tgui_alert(usr, "Deathmatch has been temporarily disabled by admins.") + return if (lobbies[usr.ckey]) return if(!SSticker.HasRoundStarted()) @@ -84,6 +87,9 @@ ui.close() create_new_lobby(usr) if ("join") + if(!(GLOB.ghost_role_flags & GHOSTROLE_MINIGAME)) + tgui_alert(usr, "Deathmatch has been temporarily disabled by admins.") + return if (!lobbies[params["id"]]) return var/datum/deathmatch_lobby/playing_lobby = find_lobby_by_user(usr.ckey) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 358057e1de0d9..0a41f5ffb6c9a 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -22,7 +22,7 @@ var/holidayID = "" //string which should be in the SSeventss.holidays list if you wish this event to be holiday-specific //anything with a (non-null) holidayID which does not match holiday, cannot run. var/wizardevent = FALSE - var/alert_observers = TRUE //should we let the ghosts and admins know this event is firing + var/alert_observers = TRUE //should we let the ghosts know this event is firing //should be disabled on events that fire a lot /// Minimum wizard rituals at which to trigger this event, inclusive @@ -101,15 +101,14 @@ triggering = TRUE - // We sleep HERE, in pre-event setup (because there's no sense doing it in run_event() since the event is already running!) for the given amount of time to make an admin has enough time to cancel an event un-fitting of the present round. - if(alert_observers) - message_admins("Random Event triggering in [DisplayTimeText(RANDOM_EVENT_ADMIN_INTERVENTION_TIME)]: [name]. (CANCEL) (SOMETHING ELSE)") - sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME) - var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) - if(!can_spawn_event(players_amt)) - message_admins("Second pre-condition check for [name] failed, rerolling...") - SSevents.spawnEvent(excluded_event = src) - return EVENT_INTERRUPTED + // We sleep HERE, in pre-event setup (because there's no sense doing it in run_event() since the event is already running!) for the given amount of time to make an admin has enough time to cancel an event un-fitting of the present round or at least reroll it. + message_admins("Random Event triggering in [DisplayTimeText(RANDOM_EVENT_ADMIN_INTERVENTION_TIME)]: [name]. (CANCEL) (SOMETHING ELSE)") + sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME) + var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) + if(!can_spawn_event(players_amt)) + message_admins("Second pre-condition check for [name] failed, rerolling...") + SSevents.spawnEvent(excluded_event = src) + return EVENT_INTERRUPTED if(!triggering) return EVENT_CANCELLED //admin cancelled diff --git a/code/modules/events/space_vines/vine_mutations.dm b/code/modules/events/space_vines/vine_mutations.dm index 0571f4d0509f3..c2f8e2d41393c 100644 --- a/code/modules/events/space_vines/vine_mutations.dm +++ b/code/modules/events/space_vines/vine_mutations.dm @@ -335,6 +335,7 @@ //This specific mutation only covers floors instead of structures, items, mobs and cant tangle mobs /datum/spacevine_mutation/timid/on_birth(obj/structure/spacevine/holder) SET_PLANE_IMPLICIT(holder, FLOOR_PLANE) + holder.layer = ABOVE_OPEN_TURF_LAYER holder.light_state = PASS_LIGHT holder.can_tangle = FALSE return ..() diff --git a/code/modules/events/space_vines/vine_structure.dm b/code/modules/events/space_vines/vine_structure.dm index 4b3a10d9256cc..a7b9aa2fce516 100644 --- a/code/modules/events/space_vines/vine_structure.dm +++ b/code/modules/events/space_vines/vine_structure.dm @@ -161,7 +161,7 @@ if(!istype(stepturf)) return - if(isspaceturf(stepturf) || isopenspaceturf(stepturf) || !stepturf.Enter(src)) + if(is_space_or_openspace(stepturf) || !stepturf.Enter(src)) return if(ischasm(stepturf) && !HAS_TRAIT(stepturf, TRAIT_CHASM_STOPPED)) return diff --git a/code/modules/events/wizard/embeddies.dm b/code/modules/events/wizard/embeddies.dm index ea8c5fd176bc1..8b4568942154a 100644 --- a/code/modules/events/wizard/embeddies.dm +++ b/code/modules/events/wizard/embeddies.dm @@ -43,9 +43,12 @@ GLOBAL_DATUM(global_funny_embedding, /datum/global_funny_embedding) * Makes every item in the world embed when thrown, but also hooks into global signals for new items created to also bless them with embed-ability(??). */ /datum/global_funny_embedding - var/embed_type = EMBED_POINTY + var/embed_type = /datum/embed_data/global_funny var/prefix = "error" +/datum/embed_data/global_funny + ignore_throwspeed_threshold = TRUE + /datum/global_funny_embedding/New() . = ..() //second operation takes MUCH longer, so lets set up signals first. @@ -61,11 +64,11 @@ GLOBAL_DATUM(global_funny_embedding, /datum/global_funny_embedding) SIGNAL_HANDLER // this proc says it's for initializing components, but we're initializing elements too because it's you and me against the world >:) - if(LAZYLEN(created_item.embedding)) - return //already embeds to some degree, so whatever 🐀 - created_item.embedding = embed_type + if(created_item.get_embed()) + return //already embeds to some degree, so whatever // No rat allowed + created_item.name = "[prefix] [created_item.name]" - created_item.updateEmbedding() + created_item.set_embed(embed_type) /** * ### handle_current_items @@ -77,17 +80,20 @@ GLOBAL_DATUM(global_funny_embedding, /datum/global_funny_embedding) CHECK_TICK if(!(embed_item.flags_1 & INITIALIZED_1)) continue - if(!embed_item.embedding) - embed_item.embedding = embed_type - embed_item.updateEmbedding() - embed_item.name = "[prefix] [embed_item.name]" + if(embed_item.get_embed()) + continue + embed_item.set_embed(embed_type) + embed_item.name = "[prefix] [embed_item.name]" ///everything will be... POINTY!!!! /datum/global_funny_embedding/pointy - embed_type = EMBED_POINTY prefix = "pointy" ///everything will be... sticky? sure, why not /datum/global_funny_embedding/sticky - embed_type = EMBED_HARMLESS + embed_type = /datum/embed_data/global_funny/sticky prefix = "sticky" + +/datum/embed_data/global_funny/sticky + pain_mult = 0 + jostle_pain_mult = 0 diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index ea3a982cb8f80..9587b6209e271 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -326,8 +326,8 @@ name = "Exosuit Materials: Stress Failure Test" description = "Your exosuit fabricators allow for rapid production on a small scale, but the structural integrity of created parts is inferior to more traditional means." exp_tag = "Scan" + total_requirement = 2 possible_types = list(/obj/vehicle/sealed/mecha) - total_requirement = 1 ///Damage percent that each mech needs to be at for a scan to work. var/damage_percent @@ -337,6 +337,21 @@ possible_types = list(/obj/vehicle/sealed/mecha) total_requirement = 1 +/// Scan a person with any mutation +/datum/experiment/scanning/people/mutant + name = "Human Field Research: Genetic Mutations" + description = "Our new research assistants have been drinking random chemicals for science, when one of them mastered telekinesis and another started shooting lasers from the eyes. This could be useful for our studies. Repeat the experiment by making assistants drink unstable mutagen, scan them and report the results." + performance_hint = "Scan a person with a random mutation." + required_traits_desc = "random mutation" + +/datum/experiment/scanning/people/mutant/is_valid_scan_target(mob/living/carbon/human/check, datum/component/experiment_handler/experiment_handler) + . = ..() + if (!.) + return + if(!check.dna.mutations.len) + return FALSE + return TRUE + /// Scan for organs you didn't start the round with /datum/experiment/scanning/people/novel_organs name = "Human Field Research: Divergent Biology" @@ -399,7 +414,7 @@ ) for (var/obj/item/organ/organ as anything in check.organs) - if (organ.slot in vital_organ_slots && IS_ROBOTIC_ORGAN(organ)) + if ((organ.slot in vital_organ_slots) && IS_ROBOTIC_ORGAN(organ)) return TRUE return FALSE @@ -465,6 +480,13 @@ required_reagent = /datum/reagent/cryostylane min_purity = 0.99 +/datum/experiment/scanning/reagent/haloperidol + name = "Pure Haloperidol Scan" + description = "We require testing related to the long-term treatment of chronic psychiatric disorders. Produce Haloperidol with at least 98% purity and scan the beaker." + performance_hint = "Exothermic and consumes hydrogen during reaction." + required_reagent = /datum/reagent/medicine/haloperidol + min_purity = 0.98 + /datum/experiment/scanning/points/bluespace_crystal name = "Bluespace Crystal Sampling" description = "Investigate the properties of bluespace crystals by scanning either an artificial or naturally occurring variant. This will help us deepen our understanding of bluespace phenomena." @@ -474,10 +496,16 @@ /obj/item/stack/sheet/bluespace_crystal = 1 ) +/datum/experiment/scanning/points/anomalies + name = "Neutralized Anomaly Analysis" + description = "We have the power to deal with the anomalies now. Neutralize them with an anomaly neutralizer or refine the raw cores in the refinery and scan the results." + required_points = 4 + required_atoms = list(/obj/item/assembly/signaler/anomaly = 1) + /datum/experiment/scanning/points/machinery_tiered_scan/tier2_any name = "Upgraded Stock Parts Benchmark" description = "Our newly-designed machinery components require practical application tests for hints at possible further advancements, as well as a general confirmation that we didn't actually design worse parts somehow. Scan any machinery with Upgraded Parts and report the results." - required_points = 4 + required_points = 6 required_atoms = list( /obj/machinery = 1 ) @@ -486,7 +514,7 @@ /datum/experiment/scanning/points/machinery_tiered_scan/tier3_any name = "Advanced Stock Parts Benchmark" description = "Our newly-designed machinery components require practical application tests for hints at possible further advancements, as well as a general confirmation that we didn't actually design worse parts somehow. Scan any machinery with Advanced Parts and report the results." - required_points = 4 + required_points = 6 required_atoms = list( /obj/machinery = 1 ) diff --git a/code/modules/experisci/experiment/types/scanning_vatgrown.dm b/code/modules/experisci/experiment/types/scanning_vatgrown.dm index 0a7ade381a4ea..20cd48288ba08 100644 --- a/code/modules/experisci/experiment/types/scanning_vatgrown.dm +++ b/code/modules/experisci/experiment/types/scanning_vatgrown.dm @@ -1,14 +1,17 @@ -/datum/experiment/scanning/random/cytology +/datum/experiment/scanning/cytology name = "Cytology Scanning Experiment" - description = "Base experiment for scanning atoms that were vatgrown" exp_tag = "Cytology Scan" - total_requirement = 1 - possible_types = list(/mob/living/basic/slime) - traits = EXPERIMENT_TRAIT_DESTRUCTIVE -/datum/experiment/scanning/random/cytology/final_contributing_index_checks(datum/component/experiment_handler/experiment_handler, atom/target, typepath) +/datum/experiment/scanning/cytology/final_contributing_index_checks(datum/component/experiment_handler/experiment_handler, atom/target, typepath) return ..() && HAS_TRAIT(target, TRAIT_VATGROWN) -/datum/experiment/scanning/random/cytology/serialize_progress_stage(atom/target, list/seen_instances) - return EXPERIMENT_PROG_INT("Scan samples of \a vat-grown [initial(target.name)]", \ - traits & EXPERIMENT_TRAIT_DESTRUCTIVE ? scanned[target] : seen_instances.len, required_atoms[target]) +/datum/experiment/scanning/cytology/serialize_progress_stage(atom/target, list/seen_instances) + return EXPERIMENT_PROG_INT("Scan samples of \a vat-grown [initial(target.name)]", seen_instances.len, required_atoms[target]) + +/datum/experiment/scanning/cytology/slime + name = "Vat-Grown Slime Scan" + description = "Seen the slimes in the xenobiology pens? They spawned when our researchers donked a moldy bread slice into the vat. Cultivate another one and report the results." + performance_hint = "Swab the slime cell lines from a moldy bread or take a biopsy sample of existing slime. And grow it in the vat." + required_atoms = list(/mob/living/basic/slime = 1) + + diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 0a836eadafdda..cd05d0bd34baf 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -53,6 +53,9 @@ /// /obj/item/fish in the aquarium, sorted by type - does not include things with aquarium visuals that are not fish var/list/tracked_fish_by_type + /// Var used to keep track of the current beauty of the aquarium, which can be throughfully changed by aquarium content. + var/current_beauty = 150 + /obj/structure/aquarium/Initialize(mapload) . = ..() update_appearance() @@ -62,6 +65,8 @@ create_reagents(6, SEALED_CONTAINER) RegisterSignal(reagents, COMSIG_REAGENTS_NEW_REAGENT, PROC_REF(start_autofeed)) AddComponent(/datum/component/plumbing/aquarium) + if(current_beauty) + AddElement(/datum/element/beauty, current_beauty) ADD_KEEP_TOGETHER(src, INNATE_TRAIT) /obj/structure/aquarium/proc/track_if_fish(atom/source, atom/initialized) @@ -192,9 +197,9 @@ var/obj/item/stack/sheet/glass/glass = item if(istype(glass)) if(glass.get_amount() < 2) - to_chat(user, span_warning("You need two glass sheets to fix the case!")) + balloon_alert(user, "it needs two sheets!") return - to_chat(user, span_notice("You start fixing [src]...")) + balloon_alert(user, "fixing the aquarium...") if(do_after(user, 2 SECONDS, target = src)) glass.use(2) broken = FALSE @@ -202,10 +207,18 @@ update_appearance() return TRUE else - var/datum/component/aquarium_content/content_component = item.GetComponent(/datum/component/aquarium_content) - if(content_component && content_component.is_ready_to_insert(src) && user.transferItemToLoc(item, src)) - update_appearance() - return TRUE + var/insert_attempt = SEND_SIGNAL(item, COMSIG_TRY_INSERTING_IN_AQUARIUM, src) + switch(insert_attempt) + if(COMSIG_CAN_INSERT_IN_AQUARIUM) + if(!user.transferItemToLoc(item, src)) + user.balloon_alert(user, "stuck to your hand!") + return TRUE + balloon_alert(user, "added to aquarium") + update_appearance() + return TRUE + if(COMSIG_CANNOT_INSERT_IN_AQUARIUM) + balloon_alert(user, "cannot add to aquarium!") + return TRUE if(istype(item, /obj/item/fish_feed) && !panel_open) if(!item.reagents.total_volume) @@ -270,24 +283,27 @@ ///Apply mood bonus depending on aquarium status /obj/structure/aquarium/proc/admire(mob/living/user) - to_chat(user,span_notice("You take a moment to watch [src].")) - if(do_after(user, 5 SECONDS, target = src)) - var/alive_fish = 0 - var/dead_fish = 0 - var/list/tracked_fish = get_fishes() - for(var/obj/item/fish/fish in tracked_fish) - if(fish.status == FISH_ALIVE) - alive_fish++ - else - dead_fish++ - //Check if there are live fish - good mood - //All fish dead - bad mood. - //No fish - nothing. - if(alive_fish > 0) - user.add_mood_event("aquarium", /datum/mood_event/aquarium_positive) - else if(dead_fish > 0) - user.add_mood_event("aquarium", /datum/mood_event/aquarium_negative) - // Could maybe scale power of this mood with number/types of fish + user.balloon_alert(user, "admiring aquarium...") + if(!do_after(user, 5 SECONDS, target = src)) + return + var/alive_fish = 0 + var/dead_fish = 0 + var/list/tracked_fish = get_fishes() + for(var/obj/item/fish/fish in tracked_fish) + if(fish.status == FISH_ALIVE) + alive_fish++ + else + dead_fish++ + + var/morb = HAS_TRAIT(user, TRAIT_MORBID) + //Check if there are live fish - good mood + //All fish dead - bad mood. + //No fish - nothing. + if(alive_fish > 0) + user.add_mood_event("aquarium", morb ? /datum/mood_event/morbid_aquarium_bad : /datum/mood_event/aquarium_positive) + else if(dead_fish > 0) + user.add_mood_event("aquarium", morb ? /datum/mood_event/morbid_aquarium_good : /datum/mood_event/aquarium_negative) + // Could maybe scale power of this mood with number/types of fish /obj/structure/aquarium/ui_data(mob/user) . = ..() diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm index 30c9300323126..1161648f7d15f 100644 --- a/code/modules/fishing/aquarium/aquarium_kit.dm +++ b/code/modules/fishing/aquarium/aquarium_kit.dm @@ -100,7 +100,8 @@ /obj/item/aquarium_kit/Initialize(mapload) . = ..() - AddComponent(/datum/component/slapcrafting, /datum/crafting_recipe/aquarium) + var/static/list/recipes = list(/datum/crafting_recipe/aquarium) + AddElement(/datum/element/slapcrafting, recipes) /obj/item/aquarium_prop name = "generic aquarium prop" @@ -109,10 +110,11 @@ w_class = WEIGHT_CLASS_TINY var/layer_mode = AQUARIUM_LAYER_MODE_BOTTOM + var/beauty = 150 /obj/item/aquarium_prop/Initialize(mapload) . = ..() - AddComponent(/datum/component/aquarium_content, icon) + AddComponent(/datum/component/aquarium_content, icon, beauty = beauty) /obj/item/aquarium_prop/rocks name = "rocks" diff --git a/code/modules/fishing/aquarium/aquarium_upgrades.dm b/code/modules/fishing/aquarium/aquarium_upgrades.dm index 140777d34f0ae..c73e6e9d230ae 100644 --- a/code/modules/fishing/aquarium/aquarium_upgrades.dm +++ b/code/modules/fishing/aquarium/aquarium_upgrades.dm @@ -24,6 +24,8 @@ icon_state = "bioelec_map" icon_prefix = "bioelec" + current_beauty = 0 + /obj/structure/aquarium/bioelec_gen/zap_act(power, zap_flags) var/explosive = zap_flags & ZAP_MACHINE_EXPLOSIVE if(!explosive) diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index a12ae7e7397a9..62d9068f66af5 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -12,7 +12,7 @@ attack_verb_simple = list("slap", "whack") hitsound = 'sound/weapons/slap.ogg' ///The grind results of the fish. They scale with the weight of the fish. - grind_results = list(/datum/reagent/blood = 20, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/blood = 5, /datum/reagent/consumable/liquidgibs = 5) obj_flags = UNIQUE_RENAME /// Resulting width of aquarium visual icon - default size of "fish_greyscale" state @@ -143,9 +143,12 @@ /// power of the tesla zap created by the fish in a bioelectric generator var/electrogenesis_power = 10 MEGA JOULES + /// The beauty this fish provides to the aquarium it's inserted in. + var/beauty = FISH_BEAUTY_GENERIC + /obj/item/fish/Initialize(mapload, apply_qualities = TRUE) . = ..() - AddComponent(/datum/component/aquarium_content, icon, PROC_REF(get_aquarium_animation), list(COMSIG_FISH_STATUS_CHANGED,COMSIG_FISH_STIRRED)) + AddComponent(/datum/component/aquarium_content, icon, PROC_REF(get_aquarium_animation), list(COMSIG_FISH_STIRRED), beauty) RegisterSignal(src, COMSIG_ATOM_ON_LAZARUS_INJECTOR, PROC_REF(use_lazarus)) if(do_flop_animation) diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index 67804cba9fcd1..5160cc73f4966 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -41,6 +41,12 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( SEND_SIGNAL(prey, COMSIG_FISH_EATEN_BY_OTHER_FISH, predator) qdel(prey) +/// Proc that inserts a reagent to the grind_results list of the fish. You'll still have to set the processed comsig proc yourself. +/datum/fish_trait/proc/add_to_reagents(obj/item/fish/fish, reagent_type, amount) + LAZYINITLIST(fish.grind_results) + fish.grind_results.Insert(1, reagent_type) + fish.grind_results[reagent_type] = amount + /datum/fish_trait/wary name = "Wary" catalog_description = "This fish will avoid visible fish lines, cloaked line recommended." @@ -254,7 +260,7 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/yucky/apply_to_fish(obj/item/fish/fish) RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_yuck)) ADD_TRAIT(fish, TRAIT_YUCKY_FISH, FISH_TRAIT_DATUM) - LAZYSET(fish.grind_results, /datum/reagent/yuck, 3) + add_to_reagents(fish, /datum/reagent/yuck, 3) /datum/fish_trait/yucky/proc/add_yuck(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) var/amount = source.grind_results[/datum/reagent/yuck] / length(results) @@ -269,12 +275,12 @@ GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list( /datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish) RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_toxin)) RegisterSignal(fish, COMSIG_FISH_EATEN_BY_OTHER_FISH, PROC_REF(on_eaten)) - LAZYSET(fish.grind_results, /datum/reagent/toxin/tetrodotoxin, 0.5) + add_to_reagents(fish, /datum/reagent/toxin/tetrodotoxin, 2.5) /datum/fish_trait/toxic/proc/add_toxin(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) var/amount = source.grind_results[ /datum/reagent/toxin/tetrodotoxin] / length(results) for(var/atom/result as anything in results) - result.reagents?.add_reagent( /datum/reagent/toxin/tetrodotoxin, amount) + result.reagents?.add_reagent(/datum/reagent/toxin/tetrodotoxin, amount) /datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator) if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE)) diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm index f61cb43b22424..f6148de0eeea4 100644 --- a/code/modules/fishing/fish/fish_types.dm +++ b/code/modules/fishing/fish/fish_types.dm @@ -19,6 +19,8 @@ desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case." stable_population = 1 random_case_rarity = FISH_RARITY_NOPE + show_in_catalog = FALSE + beauty = FISH_BEAUTY_GOOD /obj/item/fish/angelfish name = "angelfish" @@ -77,6 +79,7 @@ ) required_temperature_min = MIN_AQUARIUM_TEMP+12 required_temperature_max = MIN_AQUARIUM_TEMP+30 + beauty = FISH_BEAUTY_GOOD // Saltwater fish below @@ -107,6 +110,7 @@ evolution_types = null compatible_types = list(/obj/item/fish/clownfish) food = /datum/reagent/lube + beauty = FISH_BEAUTY_GREAT /obj/item/fish/cardinal name = "cardinalfish" @@ -163,8 +167,9 @@ stable_population = 3 required_temperature_min = MIN_AQUARIUM_TEMP+23 required_temperature_max = MIN_AQUARIUM_TEMP+28 - fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/toxic) + beauty = FISH_BEAUTY_GOOD + /obj/item/fish/lanternfish name = "lanternfish" @@ -182,6 +187,7 @@ fish_traits = list(/datum/fish_trait/nocturnal) required_temperature_min = MIN_AQUARIUM_TEMP+2 //My source is that the water at a depth 6600 feet is pretty darn cold. required_temperature_max = MIN_AQUARIUM_TEMP+18 + beauty = FISH_BEAUTY_NULL //Tiziran Fish /obj/item/fish/dwarf_moonfish @@ -195,6 +201,7 @@ average_weight = 2000 required_temperature_min = MIN_AQUARIUM_TEMP+20 required_temperature_max = MIN_AQUARIUM_TEMP+30 + beauty = FISH_BEAUTY_GOOD /obj/item/fish/gunner_jellyfish name = "gunner jellyfish" @@ -205,6 +212,7 @@ fillet_type = /obj/item/food/fishmeat/gunner_jellyfish required_temperature_min = MIN_AQUARIUM_TEMP+24 required_temperature_max = MIN_AQUARIUM_TEMP+32 + beauty = FISH_BEAUTY_GOOD /obj/item/fish/needlefish name = "needlefish" @@ -261,6 +269,7 @@ ) evolution_types = list(/datum/fish_evolution/ice_chrab) compatible_types = list(/obj/item/fish/chasm_crab/ice) + beauty = FISH_BEAUTY_GOOD /obj/item/fish/chasm_crab/ice name = "arctic chrab" @@ -271,13 +280,7 @@ required_temperature_max = MIN_AQUARIUM_TEMP+15 evolution_types = list(/datum/fish_evolution/chasm_chrab) compatible_types = list(/obj/item/fish/chasm_crab) - -/obj/item/storage/box/fish_debug - name = "box full of fish" - -/obj/item/storage/box/fish_debug/PopulateContents() - for(var/fish_type in subtypesof(/obj/item/fish)) - new fish_type(src) + beauty = FISH_BEAUTY_GREAT /obj/item/fish/donkfish name = "donk co. company patent donkfish" @@ -290,6 +293,7 @@ fish_traits = list(/datum/fish_trait/yucky) required_temperature_min = MIN_AQUARIUM_TEMP+15 required_temperature_max = MIN_AQUARIUM_TEMP+28 + beauty = FISH_BEAUTY_EXCELLENT /obj/item/fish/emulsijack name = "toxic emulsijack" @@ -301,6 +305,7 @@ fish_traits = list(/datum/fish_trait/emulsijack) required_temperature_min = MIN_AQUARIUM_TEMP+5 required_temperature_max = MIN_AQUARIUM_TEMP+40 + beauty = FISH_BEAUTY_BAD /obj/item/fish/jumpercable name = "monocloning jumpercable" @@ -322,6 +327,7 @@ /datum/fish_trait/mixotroph, /datum/fish_trait/electrogenesis, ) + beauty = FISH_BEAUTY_UGLY /obj/item/fish/ratfish name = "ratfish" @@ -341,6 +347,7 @@ "Value" = DAIRY ) ) + beauty = FISH_BEAUTY_DISGUSTING /obj/item/fish/ratfish/Initialize(mapload) . = ..() @@ -364,6 +371,7 @@ required_temperature_min = MIN_AQUARIUM_TEMP+10 required_temperature_max = MIN_AQUARIUM_TEMP+40 evolution_types = list(/datum/fish_evolution/purple_sludgefish) + beauty = FISH_BEAUTY_NULL /obj/item/fish/sludgefish/purple name = "purple sludgefish" @@ -401,6 +409,7 @@ ), ) required_temperature_min = MIN_AQUARIUM_TEMP+20 + beauty = FISH_BEAUTY_GREAT /obj/item/fish/boned name = "unmarine bonemass" @@ -415,7 +424,7 @@ min_pressure = HAZARD_LOW_PRESSURE health = 150 stable_population = 3 - grind_results = list(/datum/reagent/bone_dust = 20) + grind_results = list(/datum/reagent/bone_dust = 10) fillet_type = /obj/item/stack/sheet/bone num_fillets = 2 fish_traits = list(/datum/fish_trait/revival, /datum/fish_trait/carnivore) @@ -423,6 +432,7 @@ average_weight = 2000 death_text = "%SRC stops moving." //It's dead... or is it? evolution_types = list(/datum/fish_evolution/mastodon) + beauty = FISH_BEAUTY_UGLY /obj/item/fish/mastodon name = "unmarine mastodon" @@ -442,7 +452,7 @@ min_pressure = HAZARD_LOW_PRESSURE health = 300 stable_population = 2 //This means they can only crossbreed. - grind_results = list(/datum/reagent/bone_dust = 15, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5) fillet_type = /obj/item/stack/sheet/bone num_fillets = 2 feeding_frequency = 2 MINUTES @@ -451,6 +461,7 @@ average_weight = 5000 death_text = "%SRC stops moving." fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/revival, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive) + beauty = FISH_BEAUTY_BAD /obj/item/fish/holo name = "holographic goldfish" @@ -501,6 +512,7 @@ sprite_height = 8 average_size = 60 average_weight = 1000 + beauty = FISH_BEAUTY_GOOD /obj/item/fish/holo/angel name = "holographic angelfish" @@ -524,6 +536,7 @@ icon_state = "checkered" //it's a meta joke, buddy. dedicated_in_aquarium_icon_state = "checkered_small" sprite_width = 4 + beauty = FISH_BEAUTY_NULL /obj/item/fish/holo/halffish name = "holographic half-fish" @@ -533,6 +546,7 @@ sprite_height = 4 sprite_width = 10 average_size = 50 + beauty = FISH_BEAUTY_UGLY /obj/item/fish/starfish name = "cosmostarfish" @@ -551,9 +565,10 @@ safe_air_limits = null min_pressure = 0 max_pressure = INFINITY - grind_results = list(/datum/reagent/bluespace = 10, /datum/reagent/consumable/liquidgibs = 5) + grind_results = list(/datum/reagent/bluespace = 10) fillet_type = null fish_traits = list(/datum/fish_trait/antigrav, /datum/fish_trait/mixotroph) + beauty = FISH_BEAUTY_GREAT /obj/item/fish/starfish/Initialize(mapload) . = ..() @@ -589,6 +604,7 @@ ) hitsound = null throwforce = 5 + beauty = FISH_BEAUTY_GOOD ///maximum bonus damage when winded up var/maximum_bonus = 25 @@ -662,3 +678,4 @@ ) //anxiety naturally limits the amount of zipzaps per tank, so they are stronger alone electrogenesis_power = 20 MEGA JOULES + beauty = FISH_BEAUTY_GOOD diff --git a/code/modules/fishing/fish_catalog.dm b/code/modules/fishing/fish_catalog.dm index 3e1cb6cfcfa6b..49a84413ded06 100644 --- a/code/modules/fishing/fish_catalog.dm +++ b/code/modules/fishing/fish_catalog.dm @@ -37,6 +37,25 @@ else fish_data["feed"] = "[AQUARIUM_COMPANY] Fish Feed" fish_data["fishing_tips"] = build_fishing_tips(fish) + var/beauty_score = initial(fish.beauty) + switch(beauty_score) + if(-INFINITY to FISH_BEAUTY_DISGUSTING) + beauty_score = "OH HELL NAW!" + if(FISH_BEAUTY_DISGUSTING to FISH_BEAUTY_UGLY) + beauty_score = "☆☆☆☆☆" + if(FISH_BEAUTY_UGLY to FISH_BEAUTY_BAD) + beauty_score = "★☆☆☆☆" + if(FISH_BEAUTY_BAD to FISH_BEAUTY_NULL) + beauty_score = "★★☆☆☆" + if(FISH_BEAUTY_NULL to FISH_BEAUTY_GENERIC) + beauty_score = "★★★☆☆" + if(FISH_BEAUTY_GENERIC to FISH_BEAUTY_GOOD) + beauty_score = "★★★★☆" + if(FISH_BEAUTY_GOOD to FISH_BEAUTY_GREAT) + beauty_score = "★★★★★" + if(FISH_BEAUTY_GREAT to INFINITY) + beauty_score = "★★★★★★" + fish_data["beauty"] = beauty_score fish_info += list(fish_data) // TODO: Custom entries for unusual stuff diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index df6c4eee9c254..f6b49a9b52314 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -304,5 +304,12 @@ new /obj/item/fishing_line/reinforced(src) new /obj/item/fishing_line/cloaked(src) +/obj/item/storage/box/fish_debug + name = "box full of fish" + +/obj/item/storage/box/fish_debug/PopulateContents() + for(var/fish_type in subtypesof(/obj/item/fish)) + new fish_type(src) + #undef MAGNET_HOOK_BONUS_MULTIPLIER #undef RESCUE_HOOK_FISH_MULTIPLIER diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 6ee02d6d9de4d..77de3446a5383 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -71,6 +71,7 @@ . = ..() if(currently_hooked) context[SCREENTIP_CONTEXT_LMB] = "Reel in" + context[SCREENTIP_CONTEXT_RMB] = "Unhook" return CONTEXTUAL_SCREENTIP_SET return NONE @@ -212,6 +213,16 @@ cast_line(interacting_with, user) return ITEM_INTERACT_SUCCESS +/obj/item/fishing_rod/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + return ranged_interact_with_atom_secondary(interacting_with, user, modifiers) + +/obj/item/fishing_rod/ranged_interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + //Stop reeling, delete the fishing line + if(currently_hooked) + QDEL_NULL(fishing_line) + return ITEM_INTERACT_BLOCKING + return ..() + /// If the line to whatever that is is clear and we're not already busy, try fishing in it /obj/item/fishing_rod/proc/cast_line(atom/target, mob/user) if(casting || currently_hooked) @@ -219,9 +230,6 @@ if(!hook) balloon_alert(user, "install a hook first!") return - if(!CheckToolReach(user, target, cast_range)) - balloon_alert(user, "cannot reach there!") - return if(!COOLDOWN_FINISHED(src, casting_cd)) return casting = TRUE diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index 66d2bf0a880e3..059a532072204 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -239,6 +239,21 @@ GLOBAL_LIST(fishing_property_cache) /// Builds a fish weights table modified by bait/rod/user properties /datum/fish_source/proc/get_modified_fish_table(obj/item/fishing_rod/rod, mob/fisherman) var/obj/item/bait = rod.bait + ///An exponent used to level out the difference in probabilities between fishes/mobs on the table depending on bait quality. + var/leveling_exponent = 0 + ///Multiplier used to make fishes more common compared to everything else. + var/result_multiplier = 1 + + if(bait) + if(HAS_TRAIT(bait, TRAIT_GREAT_QUALITY_BAIT)) + result_multiplier = 9 + leveling_exponent = 0.5 + else if(HAS_TRAIT(bait, TRAIT_GOOD_QUALITY_BAIT)) + result_multiplier = 3.5 + leveling_exponent = 0.25 + else if(HAS_TRAIT(bait, TRAIT_BASIC_QUALITY_BAIT)) + result_multiplier = 2 + leveling_exponent = 0.1 var/list/fish_list_properties = collect_fish_properties() @@ -246,17 +261,13 @@ GLOBAL_LIST(fishing_property_cache) for(var/result in final_table) final_table[result] *= rod.hook?.get_hook_bonus_multiplicative(result) final_table[result] += rod.hook?.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative + if(ispath(result, /obj/item/fish)) //Modify fish roll chance var/obj/item/fish/caught_fish = result if(bait) - if(HAS_TRAIT(bait, TRAIT_GREAT_QUALITY_BAIT)) - final_table[result] *= 10 - else if(HAS_TRAIT(bait, TRAIT_GOOD_QUALITY_BAIT)) - final_table[result] = round(final_table[result] * 3.5, 1) - else if(HAS_TRAIT(bait, TRAIT_BASIC_QUALITY_BAIT)) - final_table[result] *= 2 + final_table[result] = round(final_table[result] * result_multiplier, 1) if(!HAS_TRAIT(bait, TRAIT_OMNI_BAIT)) //Bait matching likes doubles the chance var/list/fav_bait = fish_list_properties[result][NAMEOF(caught_fish, favorite_bait)] @@ -286,4 +297,22 @@ GLOBAL_LIST(fishing_property_cache) if(final_table[result] <= 0) final_table -= result + + ///here we even out the chances of fishie based on bait quality: better baits lead rarer fishes being more common. + if(leveling_exponent) + var/highest_fish_weight + var/list/collected_fish_weights = list() + for(var/fishable in final_table) + if(ispath(fishable, /obj/item/fish)) + var/fish_weight = fish_table[fishable] + collected_fish_weights[fishable] = fish_weight + if(fish_weight > highest_fish_weight) + highest_fish_weight = fish_weight + + for(var/fish in collected_fish_weights) + var/difference = highest_fish_weight - collected_fish_weights[fish] + if(!difference) + continue + final_table[fish] += round(difference**leveling_exponent, 1) + return final_table diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.dm b/code/modules/food_and_drinks/machinery/icecream_vat.dm index eba5ff63f3f8c..355601693b9d2 100644 --- a/code/modules/food_and_drinks/machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm @@ -75,13 +75,15 @@ RegisterSignal(src, COMSIG_ATOM_REAGENT_EXAMINE, PROC_REF(allow_reagent_scan)) - create_reagents(300, NO_REACT|TRANSPARENT) + var/ice_cream_day = check_holidays(ICE_CREAM_DAY) //ice cream vats are more "robust" on this holiday + + create_reagents(ice_cream_day ? 400 : 300, NO_REACT|TRANSPARENT) reagents.chem_temp = T0C //So ice doesn't melt register_context() if(preinstall_reagents) for(var/reagent in icecream_vat_reagents) - reagents.add_reagent(reagent, icecream_vat_reagents[reagent], reagtemp = T0C) + reagents.add_reagent(reagent, icecream_vat_reagents[reagent] * (ice_cream_day ? 2.5 : 1), reagtemp = T0C) /obj/machinery/icecream_vat/Exited(atom/movable/gone, direction) . = ..() @@ -95,6 +97,8 @@ context[SCREENTIP_CONTEXT_RMB] = "Transfer beaker reagents" else if(istype(held_item, /obj/item/food/icecream)) context[SCREENTIP_CONTEXT_LMB] = "Take scoop of [selected_flavour] ice cream" + else if(istype(held_item, /obj/item/kitchen/spoon) || istype(held_item, /obj/item/kitchen/spoon/soup_ladle)) + context[SCREENTIP_CONTEXT_RMB] = "Spill reagent" return CONTEXTUAL_SCREENTIP_SET switch(vat_mode) @@ -106,10 +110,20 @@ context[SCREENTIP_CONTEXT_RMB] = "Change mode to flavors" return CONTEXTUAL_SCREENTIP_SET -/obj/machinery/icecream_vat/attackby(obj/item/reagent_containers/beaker, mob/user, params) +/obj/machinery/icecream_vat/examine(mob/user) + . = ..() + . += "You can use a [EXAMINE_HINT("spoon")] or [EXAMINE_HINT("soup ladle")] to spill reagents." + +/obj/machinery/icecream_vat/attackby(obj/item/weapon, mob/user, params) . = ..() if(.) return + + if(istype(weapon, /obj/item/kitchen/spoon) || istype(weapon, /obj/item/kitchen/spoon/soup_ladle)) + spill_reagents(user) + return TRUE + + var/obj/item/reagent_containers/beaker = weapon if(!istype(beaker) || !beaker.reagents || (beaker.item_flags & ABSTRACT) || !beaker.is_open_container()) return @@ -204,6 +218,14 @@ if(cone) make_cone(user, choice, cone.ingredients) +///Lets the user select a reagent in the vat to spill out. +/obj/machinery/icecream_vat/proc/spill_reagents(mob/living/user) + var/datum/reagent/reagent_to_remove = tgui_input_list(user, "Select a reagent to purge from the vat.", "Remove reagent", reagents.reagent_list, ui_state = GLOB.conscious_state) + if(isnull(reagent_to_remove) || !user.can_perform_action(src, action_bitflags = ALLOW_RESTING)) + return + balloon_alert(user, "spilled [reagent_to_remove.name]") + reagents.remove_reagent(reagent_to_remove.type, reagent_to_remove.volume) + /obj/machinery/icecream_vat/proc/make_ice_cream_color(datum/ice_cream_flavour/flavor) if(!flavor.color) return diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm index 78dd71df128d9..21d49808beda1 100644 --- a/code/modules/food_and_drinks/machinery/processor.dm +++ b/code/modules/food_and_drinks/machinery/processor.dm @@ -238,8 +238,10 @@ processed_slime.forceMove(drop_location()) processed_slime.balloon_alert_to_viewers("crawls free") return + var/core_count = processed_slime.cores - for(var/i in 1 to (core_count+rating_amount-1)) + var/extra_cores = rating_amount - 1 // 0-3 bonus cores above what slime already has with upgraded parts + for(var/i in 1 to (core_count + extra_cores)) var/atom/movable/item = new processed_slime.slime_type.core_type(drop_location()) adjust_item_drop_location(item) SSblackbox.record_feedback("tally", "slime_core_harvested", 1, processed_slime.slime_type.colour) diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm index 392d716965d6a..114d7d020f6c9 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -647,7 +647,7 @@ return istype(weapon, /obj/item/petri_dish) /obj/machinery/smartfridge/petri/preloaded - initial_contents = list(/obj/item/petri_dish = 5) + initial_contents = list(/obj/item/petri_dish/random = 3) // ------------------------- // Organ Surgery Smartfridge diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.dm b/code/modules/food_and_drinks/restaurant/customers/_customer.dm index 15e4659338d0c..646f31f80c67b 100644 --- a/code/modules/food_and_drinks/restaurant/customers/_customer.dm +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.dm @@ -47,6 +47,10 @@ /datum/customer_data/New() . = ..() name_prefixes = world.file2list(prefix_file) + if(check_holidays(ICE_CREAM_DAY)) ///customers are more likely to order ice cream on this holiday + var/list/orderable_restaurant = orderable_objects[VENUE_RESTAURANT] + if(orderable_restaurant?[/datum/custom_order/icecream]) + orderable_restaurant[/datum/custom_order/icecream] *= 3 /// Can this customer be chosen for this venue? /datum/customer_data/proc/can_use(datum/venue/venue) diff --git a/code/modules/hallucination/body.dm b/code/modules/hallucination/body.dm index 2d017f969679d..8cd34cfcd4071 100644 --- a/code/modules/hallucination/body.dm +++ b/code/modules/hallucination/body.dm @@ -10,7 +10,7 @@ /// Whether we apply the floating anim to the body var/body_floats = FALSE /// The layer this body will be drawn on, in case we want to bypass lighting - var/body_layer = TURF_LAYER + var/body_layer = LOW_FLOOR_LAYER /// if TRUE, spawns the body under the hallucinator instead of somewhere in view var/spawn_under_hallucinator = FALSE diff --git a/code/modules/hallucination/bubblegum_attack.dm b/code/modules/hallucination/bubblegum_attack.dm index 5ee39ed8e8649..529d67dcd3551 100644 --- a/code/modules/hallucination/bubblegum_attack.dm +++ b/code/modules/hallucination/bubblegum_attack.dm @@ -36,7 +36,7 @@ if(hallucinator.client) - fake_broken_wall = image('icons/turf/floors.dmi', wall_source, "plating", layer = TURF_LAYER) + fake_broken_wall = image('icons/turf/floors.dmi', wall_source, "plating", layer = LOW_FLOOR_LAYER) SET_PLANE_EXPLICIT(fake_broken_wall, FLOOR_PLANE, wall_source) fake_broken_wall.override = TRUE fake_rune = image('icons/effects/96x96.dmi', target_landing_image_turf, "landing", layer = ABOVE_OPEN_TURF_LAYER) diff --git a/code/modules/hallucination/hazard.dm b/code/modules/hallucination/hazard.dm index 1dfdfd23970e7..34bcee62f6a87 100644 --- a/code/modules/hallucination/hazard.dm +++ b/code/modules/hallucination/hazard.dm @@ -29,7 +29,8 @@ /// These hallucination effects cause side effects when the hallucinator walks into them. /obj/effect/client_image_holder/hallucination/danger - image_layer = TURF_LAYER + image_layer = LOW_FLOOR_LAYER + image_plane = FLOOR_PLANE /obj/effect/client_image_holder/hallucination/danger/Initialize(mapload, list/mobs_which_see_us, datum/hallucination/parent) . = ..() diff --git a/code/modules/holiday/nth_week.dm b/code/modules/holiday/nth_week.dm index ef4815de06646..6786e2ef7ce66 100644 --- a/code/modules/holiday/nth_week.dm +++ b/code/modules/holiday/nth_week.dm @@ -84,3 +84,12 @@ /datum/holiday/nth_week/moth/getStationPrefix() return pick("Mothball","Lepidopteran","Lightbulb","Moth","Giant Atlas","Twin-spotted Sphynx","Madagascan Sunset","Luna","Death's Head","Emperor Gum","Polyphenus","Oleander Hawk","Io","Rosy Maple","Cecropia","Noctuidae","Giant Leopard","Dysphania Militaris","Garden Tiger") + +/datum/holiday/nth_week/ice_cream + name = ICE_CREAM_DAY + begin_week = 3 + begin_month = JULY + begin_weekday = SUNDAY + +/datum/holiday/nth_week/ice_cream/getStationPrefix() + return pick("Ice Cream", "Gelato", "Semifreddo", "Cornuto", "Soft Serve", "Cone", "Ice", "Cream", "I Scream", "Parfait", "Straccciatella", "Sherbet", "Snow", "Affogato", "Mochi", "Tartufo", "Sundae", "Neapolitan") diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 3d80ef6d968c0..7a27aecb4bcfe 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -14,7 +14,7 @@ throw_speed = 2 block_chance = 0 throwforce = 0 - embedding = null + embed_type = null sword_color_icon = null active_throwforce = 0 diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 0eb05fcdc3049..ee62a12b3d0e1 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -127,6 +127,7 @@ desc = "Space-looking floor. Thankfully, the deadly aspects of space are not emulated here." icon = 'icons/turf/space.dmi' icon_state = "space" + layer = SPACE_LAYER plane = PLANE_SPACE /turf/open/floor/holofloor/hyperspace diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 35bf611b506a6..52df09c29cdf8 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -2,8 +2,6 @@ #define MAX_ITEMS_PER_RATING 10 /// How many items are converted per cycle, per rating point of the manipulator used. #define PROCESSED_ITEMS_PER_RATING 5 -/// Starting purity of reagents made in biogenerator -#define BIOGEN_REAGENT_PURITY 0.3 /obj/machinery/biogenerator name = "biogenerator" @@ -571,4 +569,3 @@ #undef MAX_ITEMS_PER_RATING #undef PROCESSED_ITEMS_PER_RATING -#undef BIOGEN_REAGENT_PURITY diff --git a/code/modules/hydroponics/grown/kronkus.dm b/code/modules/hydroponics/grown/kronkus.dm index e0b6e6b66aad3..90d264230e750 100644 --- a/code/modules/hydroponics/grown/kronkus.dm +++ b/code/modules/hydroponics/grown/kronkus.dm @@ -16,6 +16,10 @@ growing_icon = 'icons/obj/service/hydroponics/growing.dmi' reagents_add = list(/datum/reagent/consumable/nutriment = 0.05) +/obj/item/seeds/kronkus/Initialize(mapload, nogenes) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/food/grown/kronkus seed = /obj/item/seeds/kronkus name = "kronkus vine segment" @@ -24,3 +28,7 @@ filling_color = "#37946e" foodtypes = VEGETABLES | TOXIC distill_reagent = /datum/reagent/kronkus_extract + +/obj/item/food/grown/kronkus/Initialize(mapload, nogenes) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 5c8a7049eb825..5f72806ca3635 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -478,13 +478,18 @@ throwforce = 15 throw_speed = 4 throw_range = 7 - embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) + embed_type = /datum/embed_data/hatchet custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5) attack_verb_continuous = list("chops", "tears", "lacerates", "cuts") attack_verb_simple = list("chop", "tear", "lacerate", "cut") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = SHARP_EDGED +/datum/embed_data/hatchet + pain_mult = 4 + embed_chance = 35 + fall_chance = 10 + /obj/item/hatchet/Initialize(mapload) . = ..() AddComponent(/datum/component/butchering, \ diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 791b7ac51a253..34fb9fc04622e 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -249,7 +249,7 @@ // So we'll let it leak in, and move the water over. set_recipient_reagents_holder(nutri_reagents) reagents = nutri_reagents - process_request(dir = dir) + process_request(dir = dir, round_robin = FALSE) // Move the leaked water from nutrients to... water var/leaking_water_amount = nutri_reagents.get_reagent_amount(/datum/reagent/water) @@ -267,7 +267,7 @@ process_request( amount = extra_water_to_gather, reagent = /datum/reagent/water, - dir = dir, + dir = dir ) // Now transfer all remaining water in that buffer and clear it out. diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index c5861140e4e56..6fc671ccd4c94 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -859,12 +859,15 @@ return var/obj/item/seeds/our_seed = our_plant.get_plant_seed() - if(our_seed.get_gene(/datum/plant_gene/trait/stinging)) - our_plant.embedding = EMBED_POINTY - else - our_plant.embedding = EMBED_HARMLESS - our_plant.updateEmbedding() our_plant.throwforce = (our_seed.potency/20) + if (!our_plant.get_embed()) + return + + if(our_seed.get_gene(/datum/plant_gene/trait/stinging)) + our_plant.set_embed(our_plant.get_embed().generate_with_values(ignore_throwspeed_threshold = TRUE)) + return + + our_plant.set_embed(our_plant.get_embed().generate_with_values(ignore_throwspeed_threshold = TRUE, pain_mult = 0, jostle_pain_mult = 0)) /** * This trait automatically heats up the plant's chemical contents when harvested. diff --git a/code/modules/jobs/job_types/antagonists/voidwalker.dm b/code/modules/jobs/job_types/antagonists/voidwalker.dm new file mode 100644 index 0000000000000..c29d165efb807 --- /dev/null +++ b/code/modules/jobs/job_types/antagonists/voidwalker.dm @@ -0,0 +1,2 @@ +/datum/job/voidwalker + title = ROLE_VOIDWALKER diff --git a/code/modules/jobs/job_types/assistant/assistant.dm b/code/modules/jobs/job_types/assistant/assistant.dm index 2732d5e21ca9c..6a590d3e8f8dc 100644 --- a/code/modules/jobs/job_types/assistant/assistant.dm +++ b/code/modules/jobs/job_types/assistant/assistant.dm @@ -39,7 +39,7 @@ Assistant /datum/job/assistant/get_outfit(consistent) if(consistent) - return /datum/outfit/job/assistant/consistent + return /datum/outfit/job/assistant/preview if(!HAS_TRAIT(SSstation, STATION_TRAIT_ASSISTANT_GIMMICKS)) return ..() @@ -96,3 +96,12 @@ Assistant if (SSatoms.initialized == INITIALIZATION_INSSATOMS) H.w_uniform?.update_greyscale() H.update_worn_undersuit() + +/datum/outfit/job/assistant/preview + name = "Assistant - Preview" + +/datum/outfit/job/assistant/preview/give_jumpsuit(mob/living/carbon/human/target) + if (target.jumpsuit_style == PREF_SUIT) + uniform = /obj/item/clothing/under/color/grey + else + uniform = /obj/item/clothing/under/color/jumpskirt/grey diff --git a/code/modules/jobs/job_types/chaplain/chaplain.dm b/code/modules/jobs/job_types/chaplain/chaplain.dm index 8bcfaefcfc67a..435e4ce7b3303 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain.dm @@ -78,8 +78,8 @@ else holy_bible.deity_name = pick("Gay Space Jesus", "Gandalf", "Dumbledore") human_spawned.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // starts off brain damaged as fuck - if("lol", "wtf", "poo", "badmin", "shitmin", "deadmin", "meme", "memes") - new_bible = pick("Woody's Got Wood: The Aftermath", "Sweet Bro and Hella Jeff: Expanded Edition","F.A.T.A.L. Rulebook") + if("lol", "wtf", "poo", "badmin", "shitmin", "deadmin", "meme", "memes", "skibidi") + new_bible = pick("Woody's Got Wood: The Aftermath", "Sweet Bro and Hella Jeff: Expanded Edition","F.A.T.A.L. Rulebook", "Toilet Humor") switch(new_bible) if("Woody's Got Wood: The Aftermath") holy_bible.deity_name = pick("Woody", "Andy", "Cherry Flavored Lube") @@ -87,6 +87,8 @@ holy_bible.deity_name = pick("Sweet Bro", "Hella Jeff", "Stairs", "AH") if("F.A.T.A.L. Rulebook") holy_bible.deity_name = "Twenty Ten-Sided Dice" + if("Toilet Humor") + holy_bible.deity_name = pick("Skibidi Toilet", "Skibidi Wizard", "Skibidi Bathtub", "John Skibidi", "Skibidi Skibidi", "G-Toilet 1.0", "John Freeman") human_spawned.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // also starts off brain damaged as fuck if("servicianism", "partying") holy_bible.desc = "Happy, Full, Clean. Live it and give it." diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm index f204518acc53b..df658d71dddc2 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm @@ -48,6 +48,7 @@ Allows you to behead targets for empowered strikes. \ Harms you if you dismiss the scythe without first causing harm to a creature. \ The shard also causes you to become Morbid, shifting your interests towards the macabre." + rods[/obj/item/melee/skateboard/holyboard] = "A skateboard that grants you flight and anti-magic abilities while ridden. Fits in your bag." AddComponent(/datum/component/subtype_picker, rods, CALLBACK(src, PROC_REF(on_holy_weapon_picked))) /obj/item/nullrod/proc/on_holy_weapon_picked(obj/item/nullrod/holy_weapon_type) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index fd568464bb676..7ac1b6e29af9b 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -71,7 +71,7 @@ belt = /obj/item/storage/belt/utility/chief/full ears = /obj/item/radio/headset/heads/ce gloves = /obj/item/clothing/gloves/color/black - head = /obj/item/clothing/head/utility/hardhat/white + head = /obj/item/clothing/head/utility/hardhat/welding/white/up shoes = /obj/item/clothing/shoes/sneakers/brown l_pocket = /obj/item/modular_computer/pda/heads/ce diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 14e80f65ea9c4..3000e4a037a59 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -48,7 +48,7 @@ uniform = /obj/item/clothing/under/rank/engineering/engineer belt = /obj/item/storage/belt/utility/full/engi ears = /obj/item/radio/headset/headset_eng - head = /obj/item/clothing/head/utility/hardhat + head = /obj/item/clothing/head/utility/hardhat/welding/up shoes = /obj/item/clothing/shoes/workboots l_pocket = /obj/item/modular_computer/pda/engineering r_pocket = /obj/item/t_scanner diff --git a/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm b/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm new file mode 100644 index 0000000000000..a836442eca052 --- /dev/null +++ b/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm @@ -0,0 +1,40 @@ +#define FLIP_STAMINA_COST 19 + +/obj/item/skillchip/matrix_flip + name = "BULLET_DODGER skillchip" + skill_name = "Flip 2 Dodge" + skill_description = "At the cost of stamina, your flips can also be used to dodge incoming projectiles." + skill_icon = FA_ICON_SPINNER + activate_message = span_notice("You feel the urge to flip scenically as if you are the 'Chosen One'.") + deactivate_message = span_notice("The urge to flip goes away.") + +/obj/item/skillchip/matrix_flip/on_activate(mob/living/carbon/user, silent = FALSE) + . = ..() + ADD_TRAIT(user, TRAIT_SLOW_FLIP, SKILLCHIP_TRAIT) + RegisterSignal(user, COMSIG_MOB_EMOTED("flip"), PROC_REF(on_flip)) + RegisterSignal(user, COMSIG_MOB_PRE_EMOTED, PROC_REF(check_if_we_can_flip)) + +/obj/item/skillchip/matrix_flip/on_deactivate(mob/living/carbon/user, silent=FALSE) + REMOVE_TRAIT(user, TRAIT_SLOW_FLIP, SKILLCHIP_TRAIT) + UnregisterSignal(user, list(COMSIG_MOB_EMOTED("flip"), COMSIG_MOB_PRE_EMOTED)) + return ..() + +///Prevent players from stamcritting from INTENTIONAL flips. 1.4s of bullet immunity isn't worth several secs of stun. +/obj/item/skillchip/matrix_flip/proc/check_if_we_can_flip(mob/living/source, key, params, type_override, intentional, datum/emote/emote) + SIGNAL_HANDLER + if(key != "flip" || !intentional) + return + if((source.maxHealth - (source.getStaminaLoss() + FLIP_STAMINA_COST)) <= source.crit_threshold) + source.balloon_alert(source, "too tired!") + return COMPONENT_CANT_EMOTE + +/obj/item/skillchip/matrix_flip/proc/on_flip(mob/living/source) + SIGNAL_HANDLER + if(HAS_TRAIT_FROM(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT)) + return + playsound(source, 'sound/weapons/fwoosh.ogg', 90, FALSE, frequency = 0.7) + ADD_TRAIT(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT) + source.adjustStaminaLoss(FLIP_STAMINA_COST) + addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT), FLIP_EMOTE_DURATION * 2) + +#undef FLIP_STAMINA_COST diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm index ae40b84c64be9..cc284b91454aa 100644 --- a/code/modules/library/skill_learning/skillchip.dm +++ b/code/modules/library/skill_learning/skillchip.dm @@ -499,28 +499,3 @@ skill_icon = FA_ICON_DRUMSTICK_BITE activate_message = span_notice("You think of your favourite food and realise that you can rotate its flavour in your mind.") deactivate_message = span_notice("You feel your food-based mind palace crumbling...") - -/obj/item/skillchip/matrix_flip - name = "BULLET_DODGER skillchip" - skill_name = "Flip 2 Dodge" - skill_description = "At the cost of stamina, your flips can also be used to dodge incoming projectiles." - skill_icon = FA_ICON_SPINNER - activate_message = span_notice("You feel the urge to flip scenically as if you are the 'Chosen One'.") - deactivate_message = span_notice("The urge to flip goes away.") - -/obj/item/skillchip/matrix_flip/on_activate(mob/living/carbon/user, silent = FALSE) - . = ..() - RegisterSignal(user, COMSIG_MOB_EMOTED("flip"), PROC_REF(on_flip)) - -/obj/item/skillchip/matrix_flip/on_deactivate(mob/living/carbon/user, silent=FALSE) - UnregisterSignal(user, COMSIG_MOB_EMOTED("flip")) - return ..() - -/obj/item/skillchip/matrix_flip/proc/on_flip(mob/living/source) - SIGNAL_HANDLER - if(HAS_TRAIT_FROM(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT)) - return - playsound(source, 'sound/weapons/fwoosh.ogg', 90, FALSE) - ADD_TRAIT(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT) - source.adjustStaminaLoss(20) - addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT), FLIP_EMOTE_DURATION + 0.1 SECONDS) diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index 287102ed7cd10..03e53ff6f8ab1 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -96,6 +96,7 @@ //yes, we register the signal to the top atom too, this is intentional and ensures contained lighting updates properly if(ismovable(new_atom_host)) RegisterSignal(new_atom_host, COMSIG_MOVABLE_MOVED, PROC_REF(update_host_lights)) + RegisterSignal(new_atom_host, COMSIG_TURF_NO_LONGER_BLOCK_LIGHT, PROC_REF(force_update)) return TRUE ///remove this light source from old_atom_host's light_sources list, unsetting movement registrations @@ -106,6 +107,7 @@ LAZYREMOVE(old_atom_host.light_sources, src) if(ismovable(old_atom_host)) UnregisterSignal(old_atom_host, COMSIG_MOVABLE_MOVED) + UnregisterSignal(old_atom_host, COMSIG_TURF_NO_LONGER_BLOCK_LIGHT) return TRUE // Yes this doesn't align correctly on anything other than 4 width tabs. diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 26ebbd1ba4e29..949d9b59b8f30 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -88,6 +88,9 @@ else //If fulltile and opaque, then the whole tile blocks view, no need to continue checking. directional_opacity = ALL_CARDINALS break + else + for(var/atom/movable/content as anything in contents) + SEND_SIGNAL(content, COMSIG_TURF_NO_LONGER_BLOCK_LIGHT) if(. != directional_opacity && (. == ALL_CARDINALS || directional_opacity == ALL_CARDINALS)) reconsider_lights() //The lighting system only cares whether the tile is fully concealed from all directions or not. diff --git a/code/modules/loadout/loadout_items.dm b/code/modules/loadout/loadout_items.dm index 53d0a7cc6cd5b..37a457f06c5ef 100644 --- a/code/modules/loadout/loadout_items.dm +++ b/code/modules/loadout/loadout_items.dm @@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(all_loadout_categories, init_loadout_categories()) if(can_be_greyscale == DONT_GREYSCALE) can_be_greyscale = FALSE - else if(item_path::flags_1 & IS_PLAYER_COLORABLE_1) + else if((item_path::flags_1 & IS_PLAYER_COLORABLE_1) && item_path::greyscale_config && item_path::greyscale_colors) can_be_greyscale = TRUE if(isnull(name)) diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/lavaland_incursion.dm b/code/modules/mapfluff/ruins/icemoonruin_code/lavaland_incursion.dm new file mode 100644 index 0000000000000..6674123c4089a --- /dev/null +++ b/code/modules/mapfluff/ruins/icemoonruin_code/lavaland_incursion.dm @@ -0,0 +1,20 @@ +/mob/living/basic/mining/legion/cult_skeleton + corpse_type = /obj/effect/mob_spawn/corpse/human/skeleton/cultist + +/obj/effect/mob_spawn/corpse/human/skeleton/cultist + name = "skeleton cultist" + outfit = /datum/outfit/skeleton_cultist + +/datum/outfit/skeleton_cultist + name = "Skeleton Cultist" + uniform = /obj/item/clothing/under/rank/civilian/chaplain + suit = /obj/item/clothing/suit/hooded/cultrobes + shoes = /obj/item/clothing/shoes/cult + +/obj/item/paper/crumpled/bloody/ruins/lavaland_incursion + name = "blood-written note" + default_raw_text = "

    Here, far above Indecipheres, shrouded in snow and ice, I sign the death warrant of the last of a species. The Dragons kneel beneath us." + +/obj/item/paper/crumpled/bloody/ruins/lavaland_incursion/last + name = "blood-written note" + default_raw_text = "

    SHE WAS WRONG. KILL IT? WE COULD BARELY CONTAIN IT. AND NOW, INDECIPHERES WANTS IT TO COME HOME" diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/library.dm b/code/modules/mapfluff/ruins/icemoonruin_code/library.dm index 1de9ce2dc728c..2f3b6381f0484 100644 --- a/code/modules/mapfluff/ruins/icemoonruin_code/library.dm +++ b/code/modules/mapfluff/ruins/icemoonruin_code/library.dm @@ -5,6 +5,18 @@ puzzle_id = "library" open_message = "The door opens with a loud creak." +/obj/machinery/door/puzzle/keycard/library/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.2 SECONDS + +/obj/machinery/door/puzzle/keycard/library/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 1.0 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.2 SECONDS + /obj/item/keycard/library name = "golden key" desc = "A dull, golden key." diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm index 1c0a5392fb9b2..57f20abb1aa19 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm @@ -78,15 +78,15 @@ desc = /obj/machinery/atmospherics/components/unary/vent_scrubber::desc icon = /obj/machinery/atmospherics/components/unary/vent_scrubber::icon layer = /obj/machinery/atmospherics/components/unary/vent_scrubber::layer - plane = FLOOR_PLANE + plane = /obj/machinery/atmospherics/components/unary/vent_scrubber::plane icon_state = "scrub_on" /obj/structure/fluff/fake_vent name = /obj/machinery/atmospherics/components/unary/vent_pump::name desc = /obj/machinery/atmospherics/components/unary/vent_pump::desc icon = /obj/machinery/atmospherics/components/unary/vent_pump::icon - layer = /obj/machinery/atmospherics/components/unary/vent_scrubber::layer - plane = FLOOR_PLANE + layer = /obj/machinery/atmospherics/components/unary/vent_pump::layer + plane = /obj/machinery/atmospherics/components/unary/vent_pump::plane icon_state = "vent_out" /turf/open/mirage diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm index 8dc9cec326d95..860eb8c816882 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm @@ -15,6 +15,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF light_range = 8 light_color = LIGHT_COLOR_LAVA + can_atmos_pass = ATMOS_PASS_DENSITY var/open = FALSE var/changing_openness = FALSE var/locked = FALSE diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index e81425b9a1a80..587a62ec0e1b7 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -267,6 +267,16 @@ else airlock.autoname = TRUE +/obj/effect/mapping_helpers/airlock/inaccessible + name = "airlock inaccessible helper" + icon_state = "airlock_inaccessible" + +/obj/effect/mapping_helpers/airlock/inaccessible/payload(obj/machinery/door/airlock/airlock) + if(airlock.req_one_access != null) + log_mapping("[src] at [AREACOORD(src)] tried to set req_access, but req__one_access was already set!") + else + airlock.req_access += list(ACCESS_INACCESSIBLE) + //air alarm helpers /obj/effect/mapping_helpers/airalarm desc = "You shouldn't see this. Report it please." @@ -1189,7 +1199,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_atoms_ontop) if(response.errored || response.status_code != 200) query_in_progress = FALSE CRASH("Failed to fetch mapped custom json from url [json_url], code: [response.status_code], error: [response.error]") - var/json_data = response["body"] + var/json_data = response.body json_cache[json_url] = json_data query_in_progress = FALSE return json_data diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm index 1ffce8737bdd4..8f6889b7c8470 100644 --- a/code/modules/mining/boulder_processing/boulder_types.dm +++ b/code/modules/mining/boulder_processing/boulder_types.dm @@ -4,7 +4,7 @@ desc = "This boulder is brimming with strange energy. Cracking it open could contain something unusual for science." icon_state = "boulder_artifact" /// This is the type of item that will be inside the boulder. Default is a strange object. - var/artifact_type = /obj/item/relic + var/artifact_type = /obj/item/relic/lavaland /// References to the relic inside the boulder, if any. var/obj/item/artifact_inside diff --git a/code/modules/mining/equipment/grapple_gun.dm b/code/modules/mining/equipment/grapple_gun.dm index 4e61b5d0fb3fd..76da071ec6e2d 100644 --- a/code/modules/mining/equipment/grapple_gun.dm +++ b/code/modules/mining/equipment/grapple_gun.dm @@ -41,8 +41,8 @@ if(target == user || !hooked) return NONE - if(!lavaland_equipment_pressure_check(get_turf(user))) - user.balloon_alert(user, "gun mechanism wont work here!") + if(!lavaland_equipment_pressure_check(get_turf(user)) && !(obj_flags & EMAGGED)) + user.balloon_alert(user, "gun mechanism won't work here!") return ITEM_INTERACT_BLOCKING if(get_dist(user, target) > 9) user.balloon_alert(user, "too far away!") @@ -73,6 +73,14 @@ update_appearance() return ITEM_INTERACT_SUCCESS +/obj/item/grapple_gun/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + if(obj_flags & EMAGGED) + return FALSE + balloon_alert(user, "pressure settings overloaded") + obj_flags |= EMAGGED + return TRUE + /obj/item/grapple_gun/proc/on_grapple_hit(datum/source, atom/movable/firer, atom/target, Angle) SIGNAL_HANDLER diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index 6dfc8cfe40c3a..2dacdc97622d5 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -772,7 +772,7 @@ user.physiology.brute_mod *= 0.5 user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER user.add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY) - ADD_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT) + user.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), BERSERK_TRAIT) ADD_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT) berserk_active = TRUE START_PROCESSING(SSobj, src) @@ -790,7 +790,7 @@ user.physiology.brute_mod *= 2 user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BUBBLEGUM_RED) - REMOVE_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT) + user.remove_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), BERSERK_TRAIT) REMOVE_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT) STOP_PROCESSING(SSobj, src) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 385afb0f81f3e..79d7901dd9e44 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -127,13 +127,16 @@ if(istype(AM, /obj/item/stack/sheet) && AM.loc == get_step(src, input_dir)) process_sheet(AM) -/obj/machinery/mineral/stacking_machine/multitool_act(mob/living/user, obj/item/multitool/M) - if(istype(M)) - if(istype(M.buffer, /obj/machinery/mineral/stacking_unit_console)) - console = M.buffer - console.machine = src - to_chat(user, span_notice("You link [src] to the console in [M]'s buffer.")) - return TRUE +/obj/machinery/mineral/stacking_machine/multitool_act(mob/living/user, obj/item/multitool/multi_tool) + if(user.combat_mode || multi_tool.item_flags & ABSTRACT || multi_tool.flags_1 & HOLOGRAM_1) + return ITEM_INTERACT_SKIP_TO_ATTACK + + . = ITEM_INTERACT_BLOCKING + if(istype(multi_tool.buffer, /obj/machinery/mineral/stacking_unit_console)) + console = multi_tool.buffer + console.machine = src + to_chat(user, span_notice("You link [src] to the console in [multi_tool]'s buffer.")) + return ITEM_INTERACT_SUCCESS /obj/machinery/mineral/stacking_machine/proc/rotate(input) if (input) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index c1822ff0e51c4..18666a1cbd5f5 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -79,10 +79,14 @@ /datum/emote/flip/run_emote(mob/user, params , type_override, intentional) . = ..() if(.) - user.SpinAnimation(FLIP_EMOTE_DURATION,1) + user.SpinAnimation(HAS_TRAIT(user, TRAIT_SLOW_FLIP) ? FLIP_EMOTE_DURATION * 2 : FLIP_EMOTE_DURATION, 1) /datum/emote/flip/check_cooldown(mob/user, intentional) + var/slow_flipper = HAS_TRAIT(user, TRAIT_SLOW_FLIP) + if(slow_flipper) + cooldown *= 2 . = ..() + cooldown *= 0.5 if(.) return if(!can_run_emote(user, intentional=intentional)) diff --git a/code/modules/mob/living/basic/bots/_bots.dm b/code/modules/mob/living/basic/bots/_bots.dm index 22ab453226912..86fe0b5cf5704 100644 --- a/code/modules/mob/living/basic/bots/_bots.dm +++ b/code/modules/mob/living/basic/bots/_bots.dm @@ -142,9 +142,6 @@ GLOBAL_LIST_INIT(command_strings, list( var/datum/atom_hud/datahud = GLOB.huds[data_hud_type] datahud.show_to(src) - if(HAS_TRAIT(SSstation, STATION_TRAIT_BOTS_GLITCHED)) - randomize_language_if_on_station() - if(mapload && is_station_level(z) && (bot_mode_flags & BOT_MODE_CAN_BE_SAPIENT) && (bot_mode_flags & BOT_MODE_ROUNDSTART_POSSESSION)) enable_possession(mapload = mapload) diff --git a/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm b/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm index 030ae6d64b837..ba6346ea19159 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm @@ -20,7 +20,7 @@ if (ismineralturf(loc)) var/turf/closed/mineral/floor = loc floor.gets_drilled() - if (!isopenturf(loc) || isspaceturf(loc) || isopenspaceturf(loc)) + if (!isopenturf(loc) || is_space_or_openspace(loc)) return INITIALIZE_HINT_QDEL for (var/obj/effect/goliath_tentacle/tentacle in loc) if (tentacle != src) diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm index 7484cbfe6751c..ad9a56b3acfdd 100644 --- a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm @@ -29,7 +29,7 @@ /datum/ai_behavior/find_and_set/hoard_location/search_tactic(datum/ai_controller/controller, locate_path, search_range) for(var/turf/open/candidate in oview(search_range, controller.pawn)) - if(isspaceturf(candidate) || isopenspaceturf(candidate)) + if(is_space_or_openspace(candidate)) continue if(candidate.is_blocked_turf(source_atom = controller.pawn)) continue diff --git a/code/modules/mob/living/basic/ruin_defender/flesh.dm b/code/modules/mob/living/basic/ruin_defender/flesh.dm index 6f46e69070038..359705ecff2bd 100644 --- a/code/modules/mob/living/basic/ruin_defender/flesh.dm +++ b/code/modules/mob/living/basic/ruin_defender/flesh.dm @@ -1,3 +1,6 @@ +#define LIVING_FLESH_TOUCH_CHANCE 30 +#define LIVING_FLESH_COMBAT_TOUCH_CHANCE 70 + /datum/ai_controller/basic_controller/living_limb_flesh blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, @@ -67,11 +70,9 @@ if(istype(current_bodypart, /obj/item/bodypart/arm)) var/list/candidates = list() for(var/atom/movable/movable in orange(victim, 1)) - if(movable.anchored) - continue if(movable == victim) continue - if(!victim.CanReach(movable)) + if(!victim.CanReach(movable) || victim.invisibility) continue candidates += movable if(!length(candidates)) @@ -79,8 +80,19 @@ var/atom/movable/candidate = pick(candidates) if(isnull(candidate)) return - victim.start_pulling(candidate, supress_message = TRUE) - victim.visible_message(span_warning("[victim][victim.p_s()] [current_bodypart] instinctually starts feeling [candidate]!")) + + victim.visible_message(span_warning("[victim]'s [current_bodypart.name] instinctively starts feeling [candidate]!")) + if (!victim.anchored && !prob(victim.combat_mode ? LIVING_FLESH_COMBAT_TOUCH_CHANCE : LIVING_FLESH_TOUCH_CHANCE)) + victim.start_pulling(candidate, supress_message = TRUE) + return + + var/active_hand = victim.active_hand_index + var/new_index = (current_bodypart.body_zone == BODY_ZONE_L_ARM) ? LEFT_HANDS : RIGHT_HANDS + if (active_hand != new_index) + victim.swap_hand(new_index, TRUE) + victim.resolve_unarmed_attack(candidate) + if (active_hand != victim.active_hand_index) // Different check in case we failed to swap hands previously due to holding a bulky item + victim.swap_hand(active_hand, TRUE) return if(HAS_TRAIT(victim, TRAIT_IMMOBILIZED)) @@ -127,7 +139,11 @@ if(BODY_ZONE_R_LEG) part_type = /obj/item/bodypart/leg/right/flesh - target.visible_message(span_danger("[src] [target_part ? "tears off and attaches itself" : "attaches itself"] to where [target][target.p_s()] limb used to be!")) + if (!isnull(target_part)) + target.visible_message(span_danger("[src] tears off [target]'s [target_part.plaintext_zone] and attaches itself in [target_part.p_their()] place!"), span_userdanger("[src] tears off your [target_part.plaintext_zone] and attaches itself in [target_part.p_their()] place!")) + else + target.visible_message(span_danger("[src] attaches itself to where [target]'s [target.parse_zone_with_bodypart(target_zone)] used to be!"), span_userdanger("[src] attaches itself to where your [target.parse_zone_with_bodypart(target_zone)] used to be!")) + var/obj/item/bodypart/new_bodypart = new part_type() forceMove(new_bodypart) new_bodypart.replace_limb(target, TRUE) @@ -181,3 +197,6 @@ ai_controller.set_ai_status(AI_STATUS_ON) forceMove(limb.drop_location()) qdel(limb) + +#undef LIVING_FLESH_TOUCH_CHANCE +#undef LIVING_FLESH_COMBAT_TOUCH_CHANCE diff --git a/code/modules/mob/living/basic/ruin_defender/living_floor.dm b/code/modules/mob/living/basic/ruin_defender/living_floor.dm index 851a0873657a0..105838f0c55dd 100644 --- a/code/modules/mob/living/basic/ruin_defender/living_floor.dm +++ b/code/modules/mob/living/basic/ruin_defender/living_floor.dm @@ -35,7 +35,7 @@ move_resist = INFINITY density = FALSE combat_mode = TRUE - layer = TURF_LAYER + layer = LOW_FLOOR_LAYER plane = FLOOR_PLANE faction = list(FACTION_HOSTILE) melee_damage_lower = 20 diff --git a/code/modules/mob/living/basic/slime/slime.dm b/code/modules/mob/living/basic/slime/slime.dm index fa40ac28d816d..352a8149ca616 100644 --- a/code/modules/mob/living/basic/slime/slime.dm +++ b/code/modules/mob/living/basic/slime/slime.dm @@ -189,15 +189,17 @@ cut_overlays() if(slime_type.transparent) alpha = SLIME_TRANSPARENCY_ALPHA - var/icon_text = "[slime_type.colour]-[life_stage]" - icon_dead = "[icon_text]-dead" + + icon_dead = !cores ? "[slime_type.colour]-cut" : "[slime_type.colour]-[life_stage]-dead" + if(stat != DEAD) - icon_state = icon_text + icon_state = "[slime_type.colour]-[life_stage]" if(current_mood && current_mood != SLIME_MOOD_NONE && !stat) add_overlay("aslime-[current_mood]") else icon_state = icon_dead - ..() + + return ..() /mob/living/basic/slime/get_status_tab_items() . = ..() @@ -364,6 +366,21 @@ visible_message(span_warning("The mutated core shudders, and collapses into a puddle, unable to maintain its form.")) qdel(src) +///Proc for slime core removal surgery, tries to remove cores from a dead slime. +/mob/living/basic/slime/proc/try_extract_cores(count = 1) + if(stat != DEAD) + return FALSE + if(count <= 0 || cores < count) + return FALSE + + var/core_count = min(count, cores) + for(var/i in 1 to core_count) + new slime_type.core_type(loc) + cores-- + + regenerate_icons() + + return TRUE ///Makes the slime peaceful and content /mob/living/basic/slime/proc/set_pacified_behaviour() diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm index 44775ea7217ce..0318b044a21ce 100644 --- a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_eyeball.dm @@ -10,7 +10,7 @@ GLOBAL_LIST_EMPTY(meteor_eyeballs) desc = "An eyeball growing out of the ground, gross." icon_state = "eyeball" max_integrity = 15 - layer = LOW_OBJ_LAYER + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE /obj/structure/meateor_fluff/eyeball/Initialize(mapload) diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm index 5ef330cdc64f9..5801d18321594 100644 --- a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm +++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm @@ -27,9 +27,21 @@ SIGNAL_HANDLER set_blackboard_key(BB_MOTHROACH_NEXT_EAT, world.time + MOTHROACH_EAT_TIMER) +/datum/ai_planning_subtree/find_food/mothroach + finding_behavior = /datum/ai_behavior/find_and_set/in_list/mothroach_food + /datum/ai_planning_subtree/find_food/mothroach/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) if(world.time < controller.blackboard[BB_MOTHROACH_NEXT_EAT]) return return ..() +/datum/ai_behavior/find_and_set/in_list/mothroach_food + +/datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range) + var/list/found = typecache_filter_list(oview(search_range, controller.pawn), locate_paths) + var/mob/living/living_pawn = controller.pawn + found -= living_pawn.loc + if(length(found)) + return pick(found) + #undef MOTHROACH_EAT_TIMER diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 8b970605af84a..7d5d6bec936a7 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -25,10 +25,6 @@ adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR * seconds_per_tick) blood_volume = min(blood_volume + (BLOOD_REGEN_FACTOR * nutrition_ratio * seconds_per_tick), BLOOD_VOLUME_NORMAL) - // Some effects are halved mid-combat. - var/determined_mod = has_status_effect(/datum/status_effect/determined) ? 0.5 : 0 - - //Bloodloss from wounds var/temp_bleed = 0 for(var/obj/item/bodypart/iter_part as anything in bodyparts) @@ -45,6 +41,10 @@ //Effects of bloodloss if(sigreturn & HANDLE_BLOOD_NO_OXYLOSS) return + + // Some effects are halved mid-combat. + var/determined_mod = has_status_effect(/datum/status_effect/determined) ? 0.5 : 0 + var/word = pick("dizzy","woozy","faint") switch(blood_volume) if(BLOOD_VOLUME_EXCESS to BLOOD_VOLUME_MAX_LETHAL) @@ -105,11 +105,12 @@ // Blood ratio! if you have 280 blood, this equals 0.5 as that's half of the current value, 560. var/effective_blood_ratio = blood_volume / BLOOD_VOLUME_NORMAL + var/target_oxyloss = max((1 - effective_blood_ratio) * 100, 0) // If your ratio is less than one (you're missing any blood) and your oxyloss is under missing blood %, start getting oxy damage. // This damage accrues faster the less blood you have. - // If KO or in hardcrit, the damage accrues even then to prevent being perma-KO. - if(((effective_blood_ratio < 1) && (getOxyLoss() < ((1 - effective_blood_ratio) * 100))) || (stat in list(UNCONSCIOUS, HARD_CRIT))) + // If the damage surpasses the KO threshold for oxyloss, then we'll always tick up so you die eventually + if(target_oxyloss > 0 && (getOxyLoss() < target_oxyloss || (target_oxyloss >= OXYLOSS_PASSOUT_THRESHOLD && stat >= UNCONSCIOUS))) // At roughly half blood this equals to 3 oxyloss per tick. At 90% blood it's close to 0.5 var/rounded_oxyloss = round(0.01 * (BLOOD_VOLUME_NORMAL - blood_volume), 0.25) * seconds_per_tick adjustOxyLoss(rounded_oxyloss, updating_health = TRUE) @@ -227,7 +228,7 @@ ****************************************************/ //Gets blood from mob to a container or other mob, preserving all data in it. -/mob/living/proc/transfer_blood_to(atom/movable/AM, amount, forced) +/mob/living/proc/transfer_blood_to(atom/movable/AM, amount, forced, ignore_incompatibility) if(!blood_volume || !AM.reagents) return FALSE if(blood_volume < BLOOD_VOLUME_BAD && !forced) @@ -254,7 +255,7 @@ if((D.spread_flags & DISEASE_SPREAD_SPECIAL) || (D.spread_flags & DISEASE_SPREAD_NON_CONTAGIOUS)) continue C.ForceContractDisease(D) - if(!(blood_data["blood_type"] in get_safe_blood(C.dna.blood_type))) + if(!(blood_data["blood_type"] in get_safe_blood(C.dna.blood_type)) && !(ignore_incompatibility)) C.reagents.add_reagent(/datum/reagent/toxin, amount * 0.5) return TRUE @@ -349,6 +350,15 @@ if(safe) . = safe +/** + * Returns TRUE if src is compatible with donor's blood, otherwise FALSE. + * * donor: Carbon mob, the one that is donating blood. + */ +/mob/living/carbon/proc/get_blood_compatibility(mob/living/carbon/donor) + var/patient_blood_data = get_blood_data(get_blood_id()) + var/donor_blood_data = donor.get_blood_data(donor.get_blood_id()) + return donor_blood_data["blood_type"] in get_safe_blood(patient_blood_data["blood_type"]) + //to add a splatter of blood or other mob liquid. /mob/living/proc/add_splatter_floor(turf/T, small_drip) if(get_blood_id() != /datum/reagent/blood) diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index b0a747ff51d88..3d380ef6824ca 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -113,10 +113,10 @@ if(!QDELETED(organ_owner) && length(skillchips)) if(!special) to_chat(organ_owner, span_notice("You feel your skillchips enable emergency power saving mode, deactivating as your brain leaves your body...")) - for(var/chip in skillchips) - var/obj/item/skillchip/skillchip = chip - // Run the try_ proc with force = TRUE. - skillchip.try_deactivate_skillchip(silent = special, force = TRUE) + for(var/chip in skillchips) + var/obj/item/skillchip/skillchip = chip + // Run the try_ proc with force = TRUE. + skillchip.try_deactivate_skillchip(silent = special, force = TRUE) . = ..() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 98948e6a9af90..bd02476e56e8d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -6,6 +6,7 @@ GLOB.carbon_list += src ADD_TRAIT(src, TRAIT_CAN_HOLD_ITEMS, INNATE_TRAIT) // Carbons are assumed to be innately capable of having arms, we check their arms count instead + breathing_loop = new(src, _direct = TRUE) /mob/living/carbon/Destroy() //This must be done first, so the mob ghosts correctly before DNA etc is nulled @@ -21,6 +22,7 @@ qdel(scar) remove_from_all_data_huds() QDEL_NULL(dna) + QDEL_NULL(breathing_loop) GLOB.carbon_list -= src /mob/living/carbon/item_interaction(mob/living/user, obj/item/tool, list/modifiers) @@ -172,6 +174,8 @@ power_throw++ if(neckgrab_throw) power_throw++ + if(HAS_TRAIT(src, TRAIT_TOSS_GUN_HARD) && isgun(thrown_thing)) + power_throw++ if(isitem(thrown_thing)) var/obj/item/thrown_item = thrown_thing frequency_number = 1-(thrown_item.w_class-3)/8 //At normal weight, the frequency is at 1. For tiny, it is 1.25. For huge, it is 0.75. @@ -193,6 +197,11 @@ span_danger("You [verb_text] [thrown_thing][power_throw_text]")) log_message("has thrown [thrown_thing] [power_throw_text]", LOG_ATTACK) var/extra_throw_range = HAS_TRAIT(src, TRAIT_THROWINGARM) ? 2 : 0 + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + extra_throw_range += potential_spine.added_throw_range + newtonian_move(get_dir(target, src)) thrown_thing.safe_throw_at(target, thrown_thing.throw_range + extra_throw_range, max(1,thrown_thing.throw_speed + power_throw), src, null, null, null, move_force) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index d6dc119de58a3..af3385fc5b34f 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -283,7 +283,7 @@ else Knockdown(stun_duration) -/mob/living/carbon/proc/help_shake_act(mob/living/carbon/helper) +/mob/living/carbon/proc/help_shake_act(mob/living/carbon/helper, force_friendly) if(on_fire) to_chat(helper, span_warning("You can't put [p_them()] out with just your bare hands!")) return @@ -374,7 +374,7 @@ else if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) to_chat(helper, span_warning("It feels like [src] is freezing as you hug [p_them()].")) - if(HAS_TRAIT(helper, TRAIT_FRIENDLY)) + if(HAS_TRAIT(helper, TRAIT_FRIENDLY) || force_friendly) if (helper.mob_mood.sanity >= SANITY_GREAT) new /obj/effect/temp_visual/heart(loc) add_mood_event("friendly_hug", /datum/mood_event/besthug, helper) @@ -415,7 +415,7 @@ // this way, we only visibly try to examine ourselves if we have something embedded, otherwise we'll still hug ourselves :) visible_message(span_notice("[src] examines [p_them()]self."), \ span_notice("You check yourself for shrapnel.")) - if(I.isEmbedHarmless()) + if(I.is_embed_harmless()) to_chat(src, "\t There is \a [I] stuck to your [LB.name]!") else to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") @@ -545,10 +545,10 @@ */ /mob/living/carbon/proc/check_passout() var/mob_oxyloss = getOxyLoss() - if(mob_oxyloss >= 50) + if(mob_oxyloss >= OXYLOSS_PASSOUT_THRESHOLD) if(!HAS_TRAIT_FROM(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT)) ADD_TRAIT(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT) - else if(mob_oxyloss < 50) + else if(mob_oxyloss < OXYLOSS_PASSOUT_THRESHOLD) REMOVE_TRAIT(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT) /mob/living/carbon/get_organic_health() @@ -696,7 +696,7 @@ /mob/living/carbon/get_shove_flags(mob/living/shover, obj/item/weapon) . = ..() . |= SHOVE_CAN_STAGGER - if(IsKnockdown() && !IsParalyzed()) + if(IsKnockdown() && !IsParalyzed() && HAS_TRAIT(src, TRAIT_STUN_ON_NEXT_SHOVE)) . |= SHOVE_CAN_KICK_SIDE if(HAS_TRAIT(src, TRAIT_NO_SIDE_KICK)) // added as an extra check, just in case . &= ~SHOVE_CAN_KICK_SIDE diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index dcab69f531ee3..dbfa3849b25ad 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -53,6 +53,8 @@ ///This is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks. var/failed_last_breath = FALSE + ///Sound loop for breathing when using internals + var/datum/looping_sound/breathing/breathing_loop /// Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]] var/co2overloadtime = null diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index 00e502bad0451..4c98419ef412c 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -306,6 +306,7 @@ continue if(isnull(damage_overlay) && (iter_part.brutestate || iter_part.burnstate)) damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "blank", -DAMAGE_LAYER, appearance_flags = KEEP_TOGETHER) + damage_overlay.color = iter_part.damage_overlay_color if(iter_part.brutestate) damage_overlay.add_overlay("[iter_part.dmg_overlay_type]_[iter_part.body_zone]_[iter_part.brutestate]0") //we're adding icon_states of the base image as overlays if(iter_part.burnstate) diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 5fdd3498f1559..8d4e66bccda6e 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -3,7 +3,7 @@ return losebreath = 0 - + breathing_loop.stop() //This would've happened eventually but it's nice to make it stop immediatelly in this case if(!gibbed) add_memory_in_range(src, 7, /datum/memory/witnessed_death, protagonist = src) reagents.end_metabolization(src) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index e37048ca32fee..6d6d7ada73ceb 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -36,7 +36,7 @@ var/list/msg = list("") for(var/obj/item/bodypart/bodypart as anything in bodyparts) for(var/obj/item/embedded_item as anything in bodypart.embedded_objects) - if(embedded_item.isEmbedHarmless()) + if(embedded_item.is_embed_harmless()) msg += "[t_He] [t_has] [icon2html(embedded_item, user)] \a [embedded_item] stuck to [t_his] [bodypart.name]!\n" else msg += "[t_He] [t_has] [icon2html(embedded_item, user)] \a [embedded_item] embedded in [t_his] [bodypart.name]!\n" diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index f5c3ae6b49903..be35872ed1a49 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -66,7 +66,7 @@ only_forced_audio = TRUE vary = TRUE -/datum/emote/carbon/human/scream/run_emote(mob/user, params, type_override, intentional = FALSE) +/datum/emote/living/carbon/human/scream/run_emote(mob/user, params, type_override, intentional = FALSE) if(!intentional && HAS_TRAIT(user, TRAIT_ANALGESIA)) return return ..() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 4fe60084c0e93..0c50e881635f6 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -138,7 +138,7 @@ disabled += body_part missing -= body_part.body_zone for(var/obj/item/I in body_part.embedded_objects) - if(I.isEmbedHarmless()) + if(I.is_embed_harmless()) msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] stuck to [t_his] [body_part.name]!\n" else msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] embedded in [t_his] [body_part.name]!\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1dd47f8060426..612801695fd2c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -915,7 +915,7 @@ var/carrydelay = 5 SECONDS //if you have latex you are faster at grabbing var/skills_space - var/fitness_level = mind.get_skill_level(/datum/skill/athletics) - 1 + var/fitness_level = mind?.get_skill_level(/datum/skill/athletics) - 1 if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY)) carrydelay -= 2 SECONDS else if(HAS_TRAIT(src, TRAIT_QUICK_CARRY)) @@ -924,6 +924,10 @@ // can remove up to 2 seconds at legendary carrydelay -= fitness_level * (1/3) SECONDS + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + carrydelay *= potential_spine.athletics_boost_multiplier + if(carrydelay <= 3 SECONDS) skills_space = " very quickly" else if(carrydelay <= 4 SECONDS) @@ -1095,3 +1099,6 @@ /mob/living/carbon/human/species/zombie/infectious race = /datum/species/zombie/infectious + +/mob/living/carbon/human/species/voidwalker + race = /datum/species/voidwalker diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index aa2daa1675e91..bea66f71112d3 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -146,8 +146,10 @@ return if(!(shove_flags & SHOVE_KNOCKDOWN_BLOCKED)) target.Knockdown(SHOVE_KNOCKDOWN_HUMAN) + target.apply_status_effect(/datum/status_effect/next_shove_stuns) if(!HAS_TRAIT(src, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) Knockdown(SHOVE_KNOCKDOWN_COLLATERAL) + apply_status_effect(/datum/status_effect/next_shove_stuns) target.visible_message(span_danger("[shover] shoves [target.name] into [name]!"), span_userdanger("You're shoved into [name] by [shover]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You shove [target.name] into [name]!")) @@ -549,7 +551,7 @@ . = rand(-1000, 1000) ..() //Called afterwards because getting the mind after getting gibbed is sketchy -/mob/living/carbon/human/help_shake_act(mob/living/carbon/helper) +/mob/living/carbon/human/help_shake_act(mob/living/carbon/helper, force_friendly) if(!istype(helper)) return diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index e63e3c39c4885..0cb0d9d85f084 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -62,6 +62,7 @@ /datum/outfit/syndicate/reinforcement/mi13 = /datum/outfit/syndicate/reinforcement/plasmaman, /datum/outfit/syndicate/reinforcement/waffle = /datum/outfit/syndicate/reinforcement/plasmaman, /datum/outfit/syndicate/support = /datum/outfit/syndicate/support/plasmaman, + /datum/outfit/syndicate/full/loneop = /datum/outfit/syndicate/full/plasmaman/loneop, ) /// If the bones themselves are burning clothes won't help you much diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index a377568246404..e59a6328aa72e 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -310,6 +310,8 @@ internal = null target_tank.after_internals_closed(src) update_mob_action_buttons() + //To make sure it stops at a timely manner when you turn off internals + breathing_loop.stop() return TRUE /// Close the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful. diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 7fb92c26e6183..01531b77d63a9 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -64,6 +64,7 @@ // Second link in a breath chain, calls [carbon/proc/check_breath()] /mob/living/carbon/proc/breathe(seconds_per_tick, times_fired) var/obj/item/organ/internal/lungs = get_organ_slot(ORGAN_SLOT_LUNGS) + var/is_on_internals = FALSE if(SEND_SIGNAL(src, COMSIG_CARBON_ATTEMPT_BREATHE, seconds_per_tick, times_fired) & COMSIG_CARBON_BLOCK_BREATH) return @@ -108,15 +109,26 @@ breath = loc.remove_air(breath_moles) else //Breathe from loc as obj again + is_on_internals = TRUE + if(isobj(loc)) var/obj/loc_as_obj = loc loc_as_obj.handle_internal_lifeform(src,0) - check_breath(breath) + if(check_breath(breath) && is_on_internals) + try_breathing_sound(breath) if(breath) loc.assume_air(breath) +//Tries to play the carbon a breathing sound when using internals, also invokes check_breath +/mob/living/carbon/proc/try_breathing_sound(breath) + var/should_be_on = canon_client?.prefs?.read_preference(/datum/preference/toggle/sound_breathing) + if(should_be_on && !breathing_loop.timer_id) + breathing_loop.start() + else if(!should_be_on && breathing_loop.timer_id) + breathing_loop.stop() + /mob/living/carbon/proc/has_smoke_protection() if(HAS_TRAIT(src, TRAIT_NOBREATH)) return TRUE diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index eb1e95ad9db5d..b1ca17337115e 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -5,19 +5,6 @@ /mob/living/carbon/IsParalyzed(include_stamcrit = TRUE) return ..() || (include_stamcrit && HAS_TRAIT_FROM(src, TRAIT_INCAPACITATED, STAMINA)) -/mob/living/carbon/proc/enter_stamcrit() - if(HAS_TRAIT_FROM(src, TRAIT_INCAPACITATED, STAMINA)) //Already in stamcrit - return - if(check_stun_immunity(CANKNOCKDOWN)) - return - if (SEND_SIGNAL(src, COMSIG_CARBON_ENTER_STAMCRIT) & STAMCRIT_CANCELLED) - return - - to_chat(src, span_notice("You're too exhausted to keep going...")) - add_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED, TRAIT_FLOORED), STAMINA) - if(getStaminaLoss() < 120) // Puts you a little further into the initial stamcrit, makes stamcrit harder to outright counter with chems. - adjustStaminaLoss(30, FALSE) - /mob/living/carbon/adjust_disgust(amount, max = DISGUST_LEVEL_MAXEDOUT) disgust = clamp(disgust + amount, 0, max) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 67358fa912a3b..9ccc26eec6cc2 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -355,6 +355,7 @@ message = "screams!" message_mime = "acts out a scream!" emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE + mob_type_blacklist_typecache = list(/mob/living/brain, /mob/living/carbon/human) /datum/emote/living/scream/run_emote(mob/user, params, type_override, intentional = FALSE) if(!intentional && HAS_TRAIT(user, TRAIT_ANALGESIA)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c7a0c034ac5aa..2873dab1a71bc 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -62,6 +62,12 @@ . = SEND_SIGNAL(src, COMSIG_LIVING_Z_IMPACT, levels, impacted_turf) if(. & ZIMPACT_CANCEL_DAMAGE) return . + // multiplier for the damage taken from falling + var/damage_softening_multiplier = 1 + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + damage_softening_multiplier *= potential_spine.athletics_boost_multiplier // If you are incapped, you probably can't brace yourself var/can_help_themselves = !incapacitated(IGNORE_RESTRAINTS) @@ -108,7 +114,7 @@ new /obj/effect/temp_visual/mook_dust(impacted_turf) if(body_position == STANDING_UP) - var/damage_for_each_leg = round(incoming_damage / 2) + var/damage_for_each_leg = round((incoming_damage / 2) * damage_softening_multiplier) apply_damage(damage_for_each_leg, BRUTE, BODY_ZONE_L_LEG, wound_bonus = -2.5 * levels) apply_damage(damage_for_each_leg, BRUTE, BODY_ZONE_R_LEG, wound_bonus = -2.5 * levels) else @@ -678,6 +684,13 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE + + var/get_up_time = 1 SECONDS + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + get_up_time *= potential_spine.athletics_boost_multiplier + 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, hidden = TRUE)) return if(resting || body_position == STANDING_UP || HAS_TRAIT(src, TRAIT_FLOORED)) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index ee601251465aa..d3dfa7e55f605 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -700,6 +700,7 @@ return if((shove_flags & SHOVE_BLOCKED) && !(shove_flags & (SHOVE_KNOCKDOWN_BLOCKED|SHOVE_CAN_KICK_SIDE))) target.Knockdown(SHOVE_KNOCKDOWN_SOLID) + target.apply_status_effect(/datum/status_effect/next_shove_stuns) target.visible_message(span_danger("[name] shoves [target.name], knocking [target.p_them()] down!"), span_userdanger("You're knocked down from a shove by [name]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You shove [target.name], knocking [target.p_them()] down!")) @@ -708,6 +709,7 @@ if(shove_flags & SHOVE_CAN_KICK_SIDE) //KICK HIM IN THE NUTS target.Paralyze(SHOVE_CHAIN_PARALYZE) + target.apply_status_effect(/datum/status_effect/no_side_kick) target.visible_message(span_danger("[name] kicks [target.name] onto [target.p_their()] side!"), span_userdanger("You're kicked onto your side by [name]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You kick [target.name] onto [target.p_their()] side!")) @@ -720,10 +722,8 @@ //Take their lunch money var/target_held_item = target.get_active_held_item() var/append_message = weapon ? " with [weapon]" : "" - if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) //It's too expensive we'll get caught - target_held_item = null - - if(target_held_item && target.get_timed_status_effect_duration(/datum/status_effect/staggered)) + // If it's in our typecache, they're staggered and it exists, disarm. If they're knocked down, disarm too. + if(target_held_item && target.get_timed_status_effect_duration(/datum/status_effect/staggered) && is_type_in_typecache(target_held_item, GLOB.shove_disarming_types) || target_held_item && target.body_position == LYING_DOWN) target.dropItemToGround(target_held_item) append_message = "causing [target.p_them()] to drop [target_held_item]" target.visible_message(span_danger("[target.name] drops \the [target_held_item]!"), diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 58e13951ebc4f..1d7f447493e07 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -401,27 +401,13 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( var/list/filter = list() var/list/special_filter = list() - var/voice_to_use = voice - var/use_radio = FALSE if(length(voice_filter) > 0) filter += voice_filter if(length(tts_filter) > 0) filter += tts_filter.Join(",") - if(ishuman(src)) - var/mob/living/carbon/human/human_speaker = src - if(istype(human_speaker.wear_mask, /obj/item/clothing/mask)) - var/obj/item/clothing/mask/worn_mask = human_speaker.wear_mask - if(!worn_mask.up) - if(worn_mask.voice_override) - voice_to_use = worn_mask.voice_override - if(worn_mask.voice_filter) - filter += worn_mask.voice_filter - use_radio = worn_mask.use_radio_beeps_tts - if(use_radio) - special_filter += TTS_FILTER_RADIO - if(issilicon(src)) - special_filter += TTS_FILTER_SILICON + + var/voice_to_use = get_tts_voice(filter, special_filter) INVOKE_ASYNC(SStts, TYPE_PROC_REF(/datum/controller/subsystem/tts, queue_tts_message), src, html_decode(tts_message_to_use), message_language, voice_to_use, filter.Join(","), listened, message_range = message_range, pitch = pitch, special_filters = special_filter.Join("|")) @@ -432,6 +418,22 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( LAZYADD(update_on_z, say_popup) addtimer(CALLBACK(src, PROC_REF(clear_saypopup), say_popup), 3.5 SECONDS) +/mob/living/proc/get_tts_voice(list/filter, list/special_filter) + . = voice + var/obj/item/clothing/mask/mask = get_item_by_slot(ITEM_SLOT_MASK) + if(!istype(mask) || mask.up) + return + if(mask.voice_override) + . = mask.voice_override + if(mask.voice_filter) + filter += mask.voice_filter + if(mask.use_radio_beeps_tts) + special_filter |= TTS_FILTER_RADIO + +/mob/living/silicon/get_tts_voice(list/filter, list/special_filter) + . = ..() + special_filter |= TTS_FILTER_SILICON + /mob/living/proc/clear_saypopup(image/say_popup) LAZYREMOVE(update_on_z, say_popup) diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 1721d6ec2c102..030161f8da9e1 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -65,6 +65,9 @@ emag_modules += new_module emag_modules -= path + if(check_holidays(ICE_CREAM_DAY) && !(locate(/obj/item/borg/lollipop) in basic_modules)) + basic_modules += new /obj/item/borg/lollipop/ice_cream(src) + /obj/item/robot_model/Destroy() basic_modules.Cut() emag_modules.Cut() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 6d94c2c5be978..9ca655740cd08 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -76,6 +76,7 @@ TRAIT_MARTIAL_ARTS_IMMUNE, TRAIT_NOFIRE_SPREAD, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED, + TRAIT_FENCE_CLIMBER, ) add_traits(traits_to_apply, ROUNDSTART_TRAIT) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 48d83da80a9c1..49b44122ac0e7 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -196,9 +196,6 @@ path_hud.add_atom_to_hud(src) path_hud.show_to(src) - if(HAS_TRAIT(SSstation, STATION_TRAIT_BOTS_GLITCHED)) - randomize_language_if_on_station() - if(mapload && is_station_level(z) && bot_mode_flags & BOT_MODE_CAN_BE_SAPIENT && bot_mode_flags & BOT_MODE_ROUNDSTART_POSSESSION) enable_possession(mapload = mapload) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 623e18e0494be..ae0011f998a68 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -272,8 +272,8 @@ While using this makes the system rely on OnFire, it still gives options for tim var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(mychild)) H.color = COLOR_RED -/obj/structure/elite_tumor/attackby(obj/item/attacking_item, mob/user, params) - . = ..() +/obj/structure/elite_tumor/item_interaction(mob/living/user, obj/item/attacking_item, list/modifiers) + . = NONE if(istype(attacking_item, /obj/item/organ/internal/monster_core/regenerative_core) && activity == TUMOR_INACTIVE && !boosted) var/obj/item/organ/internal/monster_core/regenerative_core/core = attacking_item visible_message(span_boldwarning("As [user] drops the core into [src], [src] appears to swell.")) @@ -282,7 +282,7 @@ While using this makes the system rely on OnFire, it still gives options for tim set_light_range(6) desc = "[desc] This one seems to glow with a strong intensity." qdel(core) - return TRUE + return ITEM_INTERACT_SUCCESS /obj/structure/elite_tumor/proc/arena_checks() if(activity != TUMOR_ACTIVE || QDELETED(src)) diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index e20ecc2337a4d..f69c010ac6bfb 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -375,7 +375,7 @@ name = "mending globule" icon_state = "glob_projectile" shrapnel_type = /obj/item/mending_globule - embedding = list("embed_chance" = 100, ignore_throwspeed_threshold = TRUE, "pain_mult" = 0, "jostle_pain_mult" = 0, "fall_chance" = 0.5) + embed_type = /datum/embed_data/mending_globule damage = 0 ///This item is what is embedded into the mob, and actually handles healing of mending globules @@ -384,10 +384,17 @@ desc = "It somehow heals those who touch it." icon = 'icons/obj/science/vatgrowing.dmi' icon_state = "globule" - embedding = list("embed_chance" = 100, ignore_throwspeed_threshold = TRUE, "pain_mult" = 0, "jostle_pain_mult" = 0, "fall_chance" = 0.5) + embed_type = /datum/embed_data/mending_globule var/obj/item/bodypart/bodypart var/heals_left = 35 +/datum/embed_data/mending_globule + embed_chance = 100 + ignore_throwspeed_threshold = TRUE + pain_mult = 0 + jostle_pain_mult = 0 + fall_chance = 0.5 + /obj/item/mending_globule/Destroy() . = ..() bodypart = null diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6ec820bc469c9..dd651085d91fe 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -838,12 +838,13 @@ return data -/mob/proc/swap_hand(held_index) +/mob/proc/swap_hand(held_index, silent = FALSE) SHOULD_NOT_OVERRIDE(TRUE) // Override perform_hand_swap instead var/obj/item/held_item = get_active_held_item() if(SEND_SIGNAL(src, COMSIG_MOB_SWAPPING_HANDS, held_item) & COMPONENT_BLOCK_SWAP) - to_chat(src, span_warning("Your other hand is too busy holding [held_item].")) + if (!silent) + to_chat(src, span_warning("Your other hand is too busy holding [held_item].")) return FALSE var/result = perform_hand_swap(held_index) diff --git a/code/modules/mob_spawn/ghost_roles/unused_roles.dm b/code/modules/mob_spawn/ghost_roles/unused_roles.dm index d9cdd699ade70..80f584d52c2b6 100644 --- a/code/modules/mob_spawn/ghost_roles/unused_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/unused_roles.dm @@ -308,7 +308,7 @@ /datum/outfit/syndicatespace/syndicrew name = "Syndicate Ship Crew Member" - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/night/colorless mask = /obj/item/clothing/mask/gas/syndicate l_pocket = /obj/item/gun/ballistic/automatic/pistol r_pocket = /obj/item/knife/combat/survival diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 350c2fabc3069..3b47453ef374f 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -322,6 +322,26 @@ return ITEM_INTERACT_BLOCKING insert_pai(user, tool) return ITEM_INTERACT_SUCCESS + if(istype(tool, /obj/item/mod/paint)) + var/obj/item/mod/paint/paint_kit = tool + if(active || activating) + balloon_alert(user, "suit is active!") + return ITEM_INTERACT_BLOCKING + if(LAZYACCESS(modifiers, RIGHT_CLICK)) // Right click + if(paint_kit.editing_mod == src) + return ITEM_INTERACT_BLOCKING + paint_kit.editing_mod = src + paint_kit.proxy_view = new() + paint_kit.proxy_view.generate_view("color_matrix_proxy_[REF(user.client)]") + + paint_kit.proxy_view.appearance = paint_kit.editing_mod.appearance + paint_kit.proxy_view.color = null + paint_kit.proxy_view.display_to(user) + paint_kit.ui_interact(user) + return ITEM_INTERACT_SUCCESS + else // Left click + paint_kit.paint_skin(src, user) + return ITEM_INTERACT_SUCCESS if(istype(tool, /obj/item/mod/module)) if(!open) balloon_alert(user, "open the cover first!") @@ -445,6 +465,7 @@ SEND_SIGNAL(src, COMSIG_MOD_WEARER_SET, wearer) RegisterSignal(wearer, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) RegisterSignal(wearer, COMSIG_SPECIES_GAIN, PROC_REF(on_species_gain)) + RegisterSignal(wearer, COMSIG_MOB_CLICKON, PROC_REF(click_on)) update_charge_alert() for(var/obj/item/mod/module/module as anything in modules) module.on_equip() @@ -452,7 +473,7 @@ /obj/item/mod/control/proc/unset_wearer() for(var/obj/item/mod/module/module as anything in modules) module.on_unequip() - UnregisterSignal(wearer, list(COMSIG_ATOM_EXITED, COMSIG_SPECIES_GAIN)) + UnregisterSignal(wearer, list(COMSIG_ATOM_EXITED, COMSIG_SPECIES_GAIN, COMSIG_MOB_CLICKON)) SEND_SIGNAL(src, COMSIG_MOD_WEARER_UNSET, wearer) wearer.update_spacesuit_hud_icon("0") wearer = null @@ -486,7 +507,14 @@ forceMove(drop_location()) return -/obj/item/mod/control/proc/quick_module(mob/user) +/obj/item/mod/control/proc/click_on(mob/source, atom/A, list/modifiers) + SIGNAL_HANDLER + + if (LAZYACCESS(modifiers, CTRL_CLICK) && LAZYACCESS(modifiers, source.client?.prefs.read_preference(/datum/preference/choiced/mod_select) || MIDDLE_CLICK)) + INVOKE_ASYNC(src, PROC_REF(quick_module), source, get_turf(A)) + return COMSIG_MOB_CANCEL_CLICKON + +/obj/item/mod/control/proc/quick_module(mob/user, anchor_override = null) if(!length(modules)) return var/list/display_names = list() @@ -508,7 +536,9 @@ var/radial_anchor = src if(istype(user.loc, /obj/effect/dummy/phased_mob)) radial_anchor = get_turf(user.loc) //they're phased out via some module, anchor the radial on the turf so it may still display - var/pick = show_radial_menu(user, radial_anchor, items, custom_check = FALSE, require_near = TRUE, tooltips = TRUE) + if (!isnull(anchor_override)) + radial_anchor = anchor_override + var/pick = show_radial_menu(user, radial_anchor, items, custom_check = FALSE, require_near = isnull(anchor_override), tooltips = TRUE) if(!pick) return var/module_reference = display_names[pick] diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index ad7addf691b4a..aa5307957f981 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -16,7 +16,7 @@ /proc/get_link_visual_generic(datum/mod_link/mod_link, atom/movable/visuals, proc_path) var/mob/living/user = mod_link.get_user_callback.Invoke() playsound(mod_link.holder, 'sound/machines/terminal_processing.ogg', 50, vary = TRUE) - visuals.add_overlay(mutable_appearance('icons/effects/effects.dmi', "static_base", TURF_LAYER)) + visuals.add_overlay(mutable_appearance('icons/effects/effects.dmi', "static_base", ABOVE_NORMAL_TURF_LAYER)) visuals.add_overlay(mutable_appearance('icons/effects/effects.dmi', "modlink", ABOVE_ALL_MOB_LAYER)) visuals.add_filter("crop_square", 1, alpha_mask_filter(icon = icon('icons/effects/effects.dmi', "modlink_filter"))) visuals.maptext_height = 6 diff --git a/code/modules/mod/mod_paint.dm b/code/modules/mod/mod_paint.dm index 77af1f7290c83..7897b60b794a7 100644 --- a/code/modules/mod/mod_paint.dm +++ b/code/modules/mod/mod_paint.dm @@ -23,34 +23,6 @@ . += span_notice("Left-click a MODsuit to change skin.") . += span_notice("Right-click a MODsuit to recolor.") -/obj/item/mod/paint/pre_attack(atom/attacked_atom, mob/living/user, params) - if(!istype(attacked_atom, /obj/item/mod/control)) - return ..() - var/obj/item/mod/control/mod = attacked_atom - if(mod.active || mod.activating) - balloon_alert(user, "suit is active!") - return TRUE - paint_skin(mod, user) - -/obj/item/mod/paint/pre_attack_secondary(atom/attacked_atom, mob/living/user, params) - if(!istype(attacked_atom, /obj/item/mod/control)) - return ..() - var/obj/item/mod/control/mod = attacked_atom - if(mod.active || mod.activating) - balloon_alert(user, "suit is active!") - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - if(editing_mod) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - editing_mod = mod - proxy_view = new() - proxy_view.generate_view("color_matrix_proxy_[REF(user.client)]") - - proxy_view.appearance = editing_mod.appearance - proxy_view.color = null - proxy_view.display_to(user) - ui_interact(user) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - /obj/item/mod/paint/ui_interact(mob/user, datum/tgui/ui) if(!editing_mod) return diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index d6465960beb28..b74f05408a0a1 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -5,7 +5,7 @@ /// The MOD core we apply to the suit. var/applied_core = /obj/item/mod/core/standard /// The cell we apply to the core. Only applies to standard core suits. - var/applied_cell = /obj/item/stock_parts/power_store/cell/high + var/applied_cell = /obj/item/stock_parts/power_store/cell/super /// List of modules we spawn with. var/list/applied_modules = list() /// Modules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules. @@ -165,9 +165,9 @@ /obj/item/mod/module/storage, /obj/item/mod/module/magnetic_harness, /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, /obj/item/mod/module/pepper_shoulders, /obj/item/mod/module/criminalcapture, - /obj/item/mod/module/dispenser/mirage, /obj/item/mod/module/quick_cuff, /obj/item/mod/module/headprotector, ) @@ -197,13 +197,13 @@ /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/hat_stabilizer, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/pathfinder, /obj/item/mod/module/quick_cuff, /obj/item/mod/module/headprotector, ) default_pins = list( - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, ) /obj/item/mod/control/pre_equipped/cosmohonk @@ -245,7 +245,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/dna_lock, @@ -254,7 +254,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, ) @@ -268,7 +268,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -276,14 +276,14 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, ) /obj/item/mod/control/pre_equipped/nuclear/no_jetpack /obj/item/mod/control/pre_equipped/nuclear/no_jetpack/Initialize(mapload, new_theme, new_skin, new_core) - applied_modules -= list(/obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet) + applied_modules -= list(/obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet) return ..() /obj/item/mod/control/pre_equipped/nuclear/plasmaman @@ -305,7 +305,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -313,7 +313,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, ) @@ -324,7 +324,7 @@ /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, /obj/item/mod/module/thermal_regulator, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -333,7 +333,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flamethrower, ) @@ -351,13 +351,16 @@ /obj/item/mod/module/quick_cuff, ) +/obj/item/mod/control/pre_equipped/infiltrator/Initialize(mapload, new_theme, new_skin, new_core) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT) /obj/item/mod/control/pre_equipped/interdyne theme = /datum/mod_theme/interdyne starting_frequency = MODLINK_FREQ_SYNDICATE applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( - /obj/item/mod/module/organ_thrower, + /obj/item/mod/module/organizer, /obj/item/mod/module/defibrillator/combat, /obj/item/mod/module/flashlight, /obj/item/mod/module/health_analyzer, @@ -426,13 +429,13 @@ applied_modules = list( /obj/item/mod/module/storage, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet, ) @@ -623,7 +626,7 @@ /obj/item/mod/module/stealth/ninja, /obj/item/mod/module/quick_carry/advanced, /obj/item/mod/module/magboot/advanced, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/anomaly_locked/kinesis/admin, /obj/item/mod/module/shove_blocker, /obj/item/mod/module/quick_cuff, @@ -631,7 +634,7 @@ default_pins = list( /obj/item/mod/module/stealth/ninja, /obj/item/mod/module/magboot/advanced, - /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/jetpack, /obj/item/mod/module/anomaly_locked/kinesis/admin, ) diff --git a/code/modules/mod/modules/module_pathfinder.dm b/code/modules/mod/modules/module_pathfinder.dm index 64790eacb3bec..f0a92e3a05153 100644 --- a/code/modules/mod/modules/module_pathfinder.dm +++ b/code/modules/mod/modules/module_pathfinder.dm @@ -11,6 +11,7 @@ Nakamura Engineering swears up and down there's airbrakes." icon_state = "pathfinder" complexity = 1 + module_type = MODULE_USABLE use_energy_cost = DEFAULT_CHARGE_DRAIN * 10 incompatible_modules = list(/obj/item/mod/module/pathfinder) required_slots = list(ITEM_SLOT_BACK|ITEM_SLOT_BELT) @@ -56,6 +57,21 @@ else target.visible_message(span_notice("[user] implants [target]."), span_notice("[user] implants you with [implant].")) playsound(src, 'sound/effects/spray.ogg', 30, TRUE, -6) + module_type = MODULE_PASSIVE + +/obj/item/mod/module/pathfinder/on_use() + . = ..() + if (!ishuman(mod.wearer) || !implant) + return + if(!implant.implant(mod.wearer, mod.wearer)) + balloon_alert(mod.wearer, "can't implant!") + return + balloon_alert(mod.wearer, "implanted") + playsound(src, 'sound/effects/spray.ogg', 30, TRUE, -6) + module_type = MODULE_PASSIVE + var/datum/action/item_action/mod/pinnable/module/existing_action = pinned_to[REF(mod.wearer)] + if(existing_action) + mod.remove_item_action(existing_action) /obj/item/mod/module/pathfinder/proc/attach(mob/living/user) if(!ishuman(user)) diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index fc21937eef049..40e1889efd968 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -120,7 +120,7 @@ hitsound = 'sound/weapons/batonextend.ogg' hitsound_wall = 'sound/weapons/batonextend.ogg' suppressed = SUPPRESSED_VERY - hit_threshhold = LATTICE_LAYER + hit_threshhold = ABOVE_NORMAL_TURF_LAYER /// Reference to the beam following the projectile. var/line diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index 3ef6b9558712a..815cfb0a144bc 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -108,8 +108,6 @@ overlay_state_inactive = "module_jetpack" overlay_state_active = "module_jetpack_on" required_slots = list(ITEM_SLOT_BACK) - /// Do we give the wearer a speed buff. - var/full_speed = FALSE /// Do we have stabilizers? If yes the user won't move from inertia. var/stabilize = TRUE /// Callback to see if we can thrust the user. @@ -143,14 +141,6 @@ /datum/effect_system/trail_follow/ion/grav_allowed \ ) -/obj/item/mod/module/jetpack/on_activation() - if(full_speed) - mod.wearer.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) - -/obj/item/mod/module/jetpack/on_deactivation(display_message = TRUE, deleting = FALSE) - if(full_speed) - mod.wearer.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) - /obj/item/mod/module/jetpack/get_configuration() . = ..() .["stabilizers"] = add_ui_configuration("Stabilizers", "bool", stabilize) @@ -167,15 +157,6 @@ return FALSE return TRUE -/obj/item/mod/module/jetpack/advanced - name = "MOD advanced ion jetpack module" - desc = "An improvement on the previous model of electric thrusters. This one achieves higher speeds through \ - mounting of more jets and application of red paint." - icon_state = "jetpack_advanced" - overlay_state_inactive = "module_jetpackadv" - overlay_state_active = "module_jetpackadv_on" - full_speed = TRUE - /// Cooldown to use if we didn't actually launch a jump jet #define FAILED_ACTIVATION_COOLDOWN 3 SECONDS diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm index 3cf1d34a63a83..936c261dd2047 100644 --- a/code/modules/mod/modules/modules_medical.dm +++ b/code/modules/mod/modules/modules_medical.dm @@ -119,19 +119,25 @@ volume = 30 inject_flags = INJECT_CHECK_PENETRATE_THICK -///Organ Thrower - Lets you shoot organs, immediately replacing them if the target has the organ manipulation surgery. -/obj/item/mod/module/organ_thrower - name = "MOD organ thrower module" +/obj/item/reagent_containers/syringe/mod/update_reagent_overlay() + if(reagents?.total_volume) + var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/medical/reagent_fillings.dmi', "mod[get_rounded_vol()]") + filling_overlay.color = mix_color_from_reagents(reagents.reagent_list) + . += filling_overlay + +///Organizer - Lets you shoot organs, immediately replacing them if the target has the organ manipulation surgery. +/obj/item/mod/module/organizer + name = "MOD organizer module" desc = "A device recovered from a crashed Interdyne Pharmaceuticals vessel, \ this module has been unearthed for better or for worse. \ - It's an arm-mounted device utilizing technology similar to modern-day part replacers, \ - capable of storing and inserting organs into open patients. \ + It's an arm-mounted device utilizing technology similar to modern rapid part exchange devices, \ + capable of instantly replacing up to 5 organs at once in surgery without the need to remove them first, even from range. \ It's recommended by the DeForest Medical Corporation to not inform patients it has been used." - icon_state = "organ_thrower" + icon_state = "organizer" module_type = MODULE_ACTIVE complexity = 2 use_energy_cost = DEFAULT_CHARGE_DRAIN - incompatible_modules = list(/obj/item/mod/module/organ_thrower, /obj/item/mod/module/microwave_beam) + incompatible_modules = list(/obj/item/mod/module/organizer, /obj/item/mod/module/microwave_beam) cooldown_time = 0.5 SECONDS required_slots = list(ITEM_SLOT_GLOVES) /// How many organs the module can hold. @@ -139,7 +145,7 @@ /// A list of all our organs. var/organ_list = list() -/obj/item/mod/module/organ_thrower/on_select_use(atom/target) +/obj/item/mod/module/organizer/on_select_use(atom/target) . = ..() if(!.) return diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm index a868eb6205659..518e3683abf72 100644 --- a/code/modules/mod/modules/modules_ninja.dm +++ b/code/modules/mod/modules/modules_ninja.dm @@ -177,10 +177,10 @@ var/accepted_type = /obj/item/energy_katana /obj/item/mod/module/weapon_recall/on_suit_activation() - ADD_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + mod.wearer.add_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), MOD_TRAIT) /obj/item/mod/module/weapon_recall/on_suit_deactivation(deleting = FALSE) - REMOVE_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + mod.wearer.remove_traits(list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD), MOD_TRAIT) /obj/item/mod/module/weapon_recall/on_use() if(!linked_weapon) @@ -418,11 +418,7 @@ if(IS_SPACE_NINJA(mod.wearer)) mod.wearer.say(pick_list_replacements(NINJA_FILE, "lines"), forced = type) to_chat(mod.wearer, span_notice("You have used the adrenaline boost.")) - mod.wearer.SetUnconscious(0) - mod.wearer.SetStun(0) - mod.wearer.SetKnockdown(0) - mod.wearer.SetImmobilized(0) - mod.wearer.SetParalyzed(0) + mod.wearer.SetAllImmobility(0) mod.wearer.adjustStaminaLoss(-200) mod.wearer.remove_status_effect(/datum/status_effect/speech/stutter) mod.wearer.reagents.add_reagent(/datum/reagent/medicine/stimulants, 5) @@ -430,24 +426,18 @@ addtimer(CALLBACK(src, PROC_REF(boost_aftereffects), mod.wearer), 7 SECONDS) /obj/item/mod/module/adrenaline_boost/on_install() - RegisterSignal(mod, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(mod, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(try_boost)) /obj/item/mod/module/adrenaline_boost/on_uninstall(deleting = FALSE) - UnregisterSignal(mod, COMSIG_ATOM_ATTACKBY) + UnregisterSignal(mod, COMSIG_ATOM_ITEM_INTERACTION) -/obj/item/mod/module/adrenaline_boost/attackby(obj/item/attacking_item, mob/user, params) - if(charge_boost(attacking_item, user)) - return TRUE - return ..() - -/obj/item/mod/module/adrenaline_boost/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) +/obj/item/mod/module/adrenaline_boost/proc/try_boost(source, mob/user, obj/item/attacking_item) SIGNAL_HANDLER - - if(charge_boost(attacking_item, user)) + if(charge_boost(attacking_item)) return COMPONENT_NO_AFTERATTACK return NONE -/obj/item/mod/module/adrenaline_boost/proc/charge_boost(obj/item/attacking_item, mob/user) +/obj/item/mod/module/adrenaline_boost/proc/charge_boost(obj/item/attacking_item) if(!attacking_item.is_open_container()) return FALSE if(reagents.has_reagent(reagent_required, reagent_required_amount)) diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm index 2a317becf18e6..19150b8a4cd67 100644 --- a/code/modules/mod/modules/modules_security.dm +++ b/code/modules/mod/modules/modules_security.dm @@ -308,6 +308,8 @@ var/field_radius = 2 /// Damage multiplier on projectiles. var/damage_multiplier = 0.75 + /// Debuff multiplier on projectiles. + var/debuff_multiplier = 0.66 /// Speed multiplier on projectiles, higher means slower. var/speed_multiplier = 2.5 /// List of all tracked projectiles. @@ -338,6 +340,9 @@ SIGNAL_HANDLER projectile.damage *= damage_multiplier + projectile.stamina *= damage_multiplier + projectile.stun *= debuff_multiplier + projectile.knockdown *= debuff_multiplier projectile.speed *= speed_multiplier projectile.add_overlay(projectile_effect) @@ -346,6 +351,9 @@ projectile.damage /= damage_multiplier projectile.speed /= speed_multiplier + projectile.stamina /= damage_multiplier + projectile.stun /= debuff_multiplier + projectile.knockdown /= debuff_multiplier projectile.cut_overlay(projectile_effect) ///Active Sonar - Displays a hud circle on the turf of any living creatures in the given radius diff --git a/code/modules/mod/modules/modules_service.dm b/code/modules/mod/modules/modules_service.dm index 044137f0f2d07..4d2650585b1c0 100644 --- a/code/modules/mod/modules/modules_service.dm +++ b/code/modules/mod/modules/modules_service.dm @@ -35,7 +35,7 @@ module_type = MODULE_ACTIVE complexity = 1 use_energy_cost = DEFAULT_CHARGE_DRAIN * 5 - incompatible_modules = list(/obj/item/mod/module/microwave_beam, /obj/item/mod/module/organ_thrower) + incompatible_modules = list(/obj/item/mod/module/microwave_beam, /obj/item/mod/module/organizer) cooldown_time = 10 SECONDS required_slots = list(ITEM_SLOT_GLOVES) diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index c86cb182c6b84..0e2bffd0aa6a7 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -559,7 +559,7 @@ light_range = 1 light_power = 1 light_color = COLOR_LIGHT_ORANGE - embedding = null + embed_type = null /obj/projectile/bullet/mining_bomb/Initialize(mapload) . = ..() diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm index 44392c8c62de9..7e4c7402c770b 100644 --- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -5,6 +5,7 @@ /obj/item/modular_computer/pda/heads greyscale_config = /datum/greyscale_config/tablet/head greyscale_colors = "#67A364#a92323" + max_capacity = parent_type::max_capacity * 2 starting_programs = list( /datum/computer_file/program/crew_manifest, /datum/computer_file/program/status, diff --git a/code/modules/modular_computers/file_system/programs/statusdisplay.dm b/code/modules/modular_computers/file_system/programs/statusdisplay.dm index 6136ab9355b59..fa844215b93b9 100644 --- a/code/modules/modular_computers/file_system/programs/statusdisplay.dm +++ b/code/modules/modular_computers/file_system/programs/statusdisplay.dm @@ -59,15 +59,7 @@ post_status(picture) else if(picture == "currentalert") // You cannot set Code Blue display during Code Red and similiar - switch(SSsecurity_level.get_current_level_as_number()) - if(SEC_LEVEL_DELTA) - post_status("alert", "deltaalert") - if(SEC_LEVEL_RED) - post_status("alert", "redalert") - if(SEC_LEVEL_BLUE) - post_status("alert", "bluealert") - if(SEC_LEVEL_GREEN) - post_status("alert", "greenalert") + post_status("alert", SSsecurity_level?.current_security_level?.status_display_icon_state || "greenalert") else post_status("alert", picture) diff --git a/code/modules/modular_computers/file_system/programs/techweb.dm b/code/modules/modular_computers/file_system/programs/techweb.dm index 014e6a56727a3..4e181370fe2ad 100644 --- a/code/modules/modular_computers/file_system/programs/techweb.dm +++ b/code/modules/modular_computers/file_system/programs/techweb.dm @@ -50,6 +50,7 @@ return data data += list( "nodes" = list(), + "queue_nodes" = stored_research.research_queue_nodes, "experiments" = list(), "researched_designs" = stored_research.researched_designs, "points" = stored_research.research_points, @@ -64,6 +65,10 @@ // Serialize all nodes to display for(var/tier in stored_research.tiers) var/datum/techweb_node/node = SSresearch.techweb_node_by_id(tier) + var/enqueued_by_user = FALSE + + if((tier in stored_research.research_queue_nodes) && stored_research.research_queue_nodes[tier] == user) + enqueued_by_user = TRUE // Ensure node is supposed to be visible if (stored_research.hidden_nodes[tier]) @@ -71,8 +76,11 @@ data["nodes"] += list(list( "id" = node.id, + "is_free" = node.is_free(stored_research), "can_unlock" = stored_research.can_unlock_node(node), - "tier" = stored_research.tiers[node.id] + "have_experiments_done" = stored_research.have_experiments_for_node(node), + "tier" = stored_research.tiers[node.id], + "enqueued_by_user" = enqueued_by_user )) // Get experiments and serialize them @@ -111,6 +119,12 @@ if ("researchNode") research_node(params["node_id"], usr) return TRUE + if ("enqueueNode") + enqueue_node(params["node_id"], usr) + return TRUE + if ("dequeueNode") + dequeue_node(params["node_id"], usr) + return TRUE /datum/computer_file/program/science/ui_static_data(mob/user) . = list( @@ -188,6 +202,20 @@ id_cache_seq += 1 return id_cache[id] +/datum/computer_file/program/science/proc/enqueue_node(id, mob/user) + if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) + computer.say("Node enqueue failed: Either no techweb is found, node is already researched or is not available!") + return FALSE + stored_research.enqueue_node(id, user) + return TRUE + +/datum/computer_file/program/science/proc/dequeue_node(id, mob/user) + if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) + computer.say("Node dequeue failed: Either no techweb is found, node is already researched or is not available!") + return FALSE + stored_research.dequeue_node(id, user) + return TRUE + /datum/computer_file/program/science/proc/research_node(id, mob/user) if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) computer.say("Node unlock failed: Either no techweb is found, node is already researched or is not available!") diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index 6bdf2f31760d5..601ecc2289261 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -5,9 +5,6 @@ /datum/movespeed_modifier/jetpack/cybernetic multiplicative_slowdown = -0.5 -/datum/movespeed_modifier/jetpack/fullspeed - multiplicative_slowdown = -0.5 - /datum/movespeed_modifier/die_of_fate multiplicative_slowdown = 1 diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 36949b65c7cdd..d37d97c167792 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -29,7 +29,7 @@ var/degrees = 0 var/font = PEN_FONT var/requires_gravity = TRUE // can you use this to write in zero-g - embedding = list(embed_chance = 50) + embed_type = /datum/embed_data/pen sharpness = SHARP_POINTY var/dart_insert_icon = 'icons/obj/weapons/guns/toy.dmi' var/dart_insert_casing_icon_state = "overlay_pen" @@ -37,6 +37,9 @@ /// If this pen can be clicked in order to retract it var/can_click = TRUE +/datum/embed_data/pen + embed_chance = 50 + /obj/item/pen/Initialize(mapload) . = ..() AddComponent(/datum/component/dart_insert, \ @@ -73,7 +76,7 @@ if(user) balloon_alert(user, "clicked") - playsound(src, 'sound/machines/click.ogg', 30, TRUE, -3) + playsound(src, 'sound/items/pen_click.ogg', 30, TRUE, -3) icon_state = initial(icon_state) + (active ? "_retracted" : "") update_appearance(UPDATE_ICON) @@ -86,7 +89,7 @@ return list( "damage" = max(5, throwforce), "speed" = max(0, throw_speed - 3), - "embedding" = embedding, + "embedding" = get_embed(), "armour_penetration" = armour_penetration, "wound_bonus" = wound_bonus, "bare_wound_bonus" = bare_wound_bonus, @@ -191,7 +194,7 @@ "Black and Silver" = "pen-fountain-b", "Command Blue" = "pen-fountain-cb" ) - embedding = list("embed_chance" = 75) + embed_type = /datum/embed_data/pen/captain dart_insert_casing_icon_state = "overlay_fountainpen_gold" dart_insert_projectile_icon_state = "overlay_fountainpen_gold_proj" var/list/overlay_reskin = list( @@ -202,6 +205,9 @@ "Command Blue" = "overlay_fountainpen_gold" ) +/datum/embed_data/pen/captain + embed_chance = 50 + /obj/item/pen/fountain/captain/Initialize(mapload) . = ..() AddComponent(/datum/component/butchering, \ @@ -414,7 +420,7 @@ inhand_icon_state = hidden_icon lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - embedding = list(embed_chance = 100) // Rule of cool + set_embed(/datum/embed_data/edagger_active) else name = initial(name) desc = initial(desc) @@ -422,15 +428,17 @@ inhand_icon_state = initial(inhand_icon_state) lefthand_file = initial(lefthand_file) righthand_file = initial(righthand_file) - embedding = list(embed_chance = EMBED_CHANCE) + set_embed(embed_type) - updateEmbedding() if(user) balloon_alert(user, "[hidden_name] [active ? "active" : "concealed"]") playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 5, TRUE) set_light_on(active) return COMPONENT_NO_DEFAULT_MESSAGE +/datum/embed_data/edagger_active + embed_chance = 100 + /obj/item/pen/edagger/proc/on_scan(datum/source, mob/user, list/extra_data) SIGNAL_HANDLER LAZYADD(extra_data[DETSCAN_CATEGORY_ILLEGAL], "Hard-light generator detected.") diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm index d928164ff014d..64eeb192a2286 100644 --- a/code/modules/photography/camera/camera_image_capturing.dm +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -10,11 +10,18 @@ step_y = AM.step_y . = ..() +#define PHYSICAL_POSITION(atom) ((atom.y * world.icon_size) + (atom.pixel_y)) + /obj/item/camera/proc/camera_get_icon(list/turfs, turf/center, psize_x = 96, psize_y = 96, datum/turf_reservation/clone_area, size_x, size_y, total_x, total_y) var/list/atoms = list() + var/list/lighting = list() var/skip_normal = FALSE var/wipe_atoms = FALSE + var/mutable_appearance/backdrop = mutable_appearance('icons/hud/screen_gen.dmi', "flash") + backdrop.blend_mode = BLEND_OVERLAY + backdrop.color = "#292319" + if(istype(clone_area) && total_x == clone_area.width && total_y == clone_area.height && size_x >= 0 && size_y > 0) var/turf/bottom_left = clone_area.bottom_left_turfs[1] var/cloned_center_x = round(bottom_left.x + ((total_x - 1) / 2)) @@ -29,6 +36,12 @@ atoms += new /obj/effect/appearance_clone(newT, T) if(T.loc.icon_state) atoms += new /obj/effect/appearance_clone(newT, T.loc) + if(T.lighting_object) + var/obj/effect/appearance_clone/lighting_overlay = new(newT) + lighting_overlay.appearance = T.lighting_object.current_underlay + lighting_overlay.underlays += backdrop + lighting_overlay.blend_mode = BLEND_MULTIPLY + lighting += lighting_overlay for(var/i in T.contents) var/atom/A = i if(!A.invisibility || (see_ghosts && isobserver(A))) @@ -41,6 +54,12 @@ for(var/i in turfs) var/turf/T = i atoms += T + if(T.lighting_object) + var/obj/effect/appearance_clone/lighting_overlay = new(T) + lighting_overlay.appearance = T.lighting_object.current_underlay + lighting_overlay.underlays += backdrop + lighting_overlay.blend_mode = BLEND_MULTIPLY + lighting += lighting_overlay for(var/atom/movable/A in T) if(A.invisibility) if(!(see_ghosts && isobserver(A))) @@ -50,6 +69,7 @@ var/icon/res = icon('icons/blanks/96x96.dmi', "nothing") res.Scale(psize_x, psize_y) + atoms += lighting var/list/sorted = list() var/j @@ -57,7 +77,19 @@ var/atom/c = atoms[i] for(j = sorted.len, j > 0, --j) var/atom/c2 = sorted[j] - if((c2.plane <= c.plane) && (c2.layer <= c.layer)) + if(c2.plane > c.plane) + continue + if(c2.plane < c.plane) + break + var/c_position = PHYSICAL_POSITION(c) + var/c2_position = PHYSICAL_POSITION(c2) + // If you are above me, I layer above you + if(c2_position - 32 >= c_position) + break + // If I am above you you will always layer above me + if(c2_position <= c_position - 32) + continue + if(c2.layer < c.layer) break sorted.Insert(j+1, c) CHECK_TICK @@ -80,32 +112,34 @@ for(var/X in sorted) //these are clones var/obj/effect/appearance_clone/clone = X var/icon/img = getFlatIcon(clone, no_anim = TRUE) - if(img) - // Center of the image in X - var/xo = (clone.x - center.x) * world.icon_size + clone.pixel_x + xcomp + clone.step_x - // Center of the image in Y - var/yo = (clone.y - center.y) * world.icon_size + clone.pixel_y + ycomp + clone.step_y - - if(clone.transform) // getFlatIcon doesn't give a snot about transforms. - var/datum/decompose_matrix/decompose = clone.transform.decompose() - // Scale in X, Y - if(decompose.scale_x != 1 || decompose.scale_y != 1) - var/base_w = img.Width() - var/base_h = img.Height() - // scale_x can be negative - img.Scale(base_w * abs(decompose.scale_x), base_h * decompose.scale_y) - if(decompose.scale_x < 0) - img.Flip(EAST) - xo -= base_w * (decompose.scale_x - SIGN(decompose.scale_x)) / 2 * SIGN(decompose.scale_x) - yo -= base_h * (decompose.scale_y - 1) / 2 - // Rotation - if(decompose.rotation != 0) - img.Turn(decompose.rotation) - // Shift - xo += decompose.shift_x - yo += decompose.shift_y - - res.Blend(img, blendMode2iconMode(clone.blend_mode), xo, yo) + if(!img) + CHECK_TICK + continue + // Center of the image in X + var/xo = (clone.x - center.x) * world.icon_size + clone.pixel_x + xcomp + clone.step_x + // Center of the image in Y + var/yo = (clone.y - center.y) * world.icon_size + clone.pixel_y + ycomp + clone.step_y + + if(clone.transform) // getFlatIcon doesn't give a snot about transforms. + var/datum/decompose_matrix/decompose = clone.transform.decompose() + // Scale in X, Y + if(decompose.scale_x != 1 || decompose.scale_y != 1) + var/base_w = img.Width() + var/base_h = img.Height() + // scale_x can be negative + img.Scale(base_w * abs(decompose.scale_x), base_h * decompose.scale_y) + if(decompose.scale_x < 0) + img.Flip(EAST) + xo -= base_w * (decompose.scale_x - SIGN(decompose.scale_x)) / 2 * SIGN(decompose.scale_x) + yo -= base_h * (decompose.scale_y - 1) / 2 + // Rotation + if(decompose.rotation != 0) + img.Turn(decompose.rotation) + // Shift + xo += decompose.shift_x + yo += decompose.shift_y + + res.Blend(img, blendMode2iconMode(clone.blend_mode), xo, yo) CHECK_TICK if(!silent) @@ -116,5 +150,9 @@ if(wipe_atoms) QDEL_LIST(atoms) + else + QDEL_LIST(lighting) return res + +#undef PHYSICAL_POSITION diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 1f60a4eefb4cb..c8564b15f1215 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -109,6 +109,17 @@ */ /datum/reagents/plumbing +/** + * Same as the parent trans_to except only a few arguments have impact here & the rest of the arguments are discarded. + * Arguments + * + * * atom/target - the target we are transfering to + * * amount - amount to transfer + * * datum/reagent/target_id - the reagent id we want to transfer. if null everything gets transfered + * * methods - this is key for deciding between round-robin or proportional transfer. It does not mean the same as the + * parent proc. LINEAR for round robin(in this technique reagents are missing/lost/not preserved when there isn't enough space to hold them) + * NONE means everything is transfered regardless of how much space is available in the receiver in proportions + */ /datum/reagents/plumbing/trans_to( atom/target, amount = 1, @@ -118,7 +129,7 @@ no_react = FALSE, //unused for plumbing we always want reactions mob/transferred_by, //unused for plumbing logging is not important inside plumbing machines remove_blacklisted = FALSE, //unused for plumbing, we don't care what reagents are inside us - methods = NONE, //unused for plumbing + methods = LINEAR, //default round robin technique for transferring reagents show_message = TRUE, //unused for plumbing, used for logging only ignore_stomach = FALSE //unused for plumbing, reagents flow only between machines & is not injected to mobs at any point in time ) @@ -139,8 +150,6 @@ else target_holder = target.reagents - var/cached_amount = amount - // Prevents small amount problems, as well as zero and below zero amounts. amount = round(min(amount, total_volume, target_holder.maximum_volume - target_holder.total_volume), CHEMICAL_QUANTISATION_LEVEL) if(amount <= 0) @@ -153,32 +162,43 @@ var/list/reagents_to_remove = list() var/transfer_amount var/transfered_amount - var/to_transfer = amount var/total_transfered_amount = 0 + var/round_robin = methods & LINEAR + var/part + var/to_transfer + if(round_robin) + to_transfer = amount + else + part = amount / total_volume + //first add reagents to target for(var/datum/reagent/reagent as anything in cached_reagents) - if(!to_transfer) + if(round_robin && !to_transfer) break if(!isnull(target_id)) if(reagent.type == target_id) force_stop_reagent_reacting(reagent) - transfer_amount = min(to_transfer, reagent.volume) + transfer_amount = min(amount, reagent.volume) else continue else - transfer_amount = min(to_transfer, reagent.volume) + if(round_robin) + transfer_amount = min(to_transfer, reagent.volume) + else + transfer_amount = reagent.volume * part - if(reagent.intercept_reagents_transfer(target_holder, cached_amount)) + if(reagent.intercept_reagents_transfer(target_holder, amount)) continue - transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount * multiplier, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. + transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) continue reagents_to_remove += list(list("R" = reagent, "T" = transfer_amount)) total_transfered_amount += transfered_amount - to_transfer -= transfered_amount + if(round_robin) + to_transfer -= transfered_amount if(!isnull(target_id)) break diff --git a/code/modules/plumbing/plumbers/bottler.dm b/code/modules/plumbing/plumbers/bottler.dm index 5f63a3070bd2a..b3421e9ffc362 100644 --- a/code/modules/plumbing/plumbers/bottler.dm +++ b/code/modules/plumbing/plumbers/bottler.dm @@ -2,6 +2,7 @@ name = "chemical bottler" desc = "Puts reagents into containers, like bottles and beakers in the tile facing the green light spot, they will exit on the red light spot if successfully filled." icon_state = "bottler" + reagents = /datum/reagents layer = ABOVE_ALL_MOB_LAYER plane = ABOVE_GAME_PLANE reagent_flags = TRANSPARENT | DRAINABLE diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index 3781944ad0099..013140e399099 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -722,7 +722,7 @@ icon_state = "floor" brightness = 4 light_angle = 360 - layer = LOW_OBJ_LAYER + layer = ABOVE_OPEN_TURF_LAYER plane = FLOOR_PLANE light_type = /obj/item/light/bulb fitting = "bulb" @@ -739,4 +739,6 @@ /obj/machinery/light/floor/transport name = "transport light" break_if_moved = FALSE + // has to render above tram things (trams are stupid) layer = BELOW_OPEN_DOOR_LAYER + plane = GAME_PLANE diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm index 7f1ef8fc2e3a8..4514c89b862e2 100644 --- a/code/modules/power/pipecleaners.dm +++ b/code/modules/power/pipecleaners.dm @@ -29,6 +29,7 @@ By design, d1 is the smallest direction and d2 is the highest icon = 'icons/obj/pipes_n_cables/pipe_cleaner.dmi' icon_state = "0-1" layer = WIRE_LAYER //Above hidden pipes, GAS_PIPE_HIDDEN_LAYER + plane = FLOOR_PLANE anchored = TRUE obj_flags = CAN_BE_HIT color = CABLE_HEX_COLOR_RED diff --git a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm index 2e4d0671a9d11..862cdb02435ae 100644 --- a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm +++ b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm @@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(sm_delam_list, list( if (sm.is_main_engine) SSpersistence.delam_highscore = SSpersistence.rounds_since_engine_exploded SSpersistence.rounds_since_engine_exploded = ROUNDCOUNT_ENGINE_JUST_EXPLODED - for (var/obj/machinery/incident_display/sign as anything in GLOB.map_delamination_counters) + for (var/obj/machinery/incident_display/sign as anything in GLOB.map_incident_displays) sign.update_delam_count(ROUNDCOUNT_ENGINE_JUST_EXPLODED) qdel(sm) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 7d8fab5dd774d..14eb6c88864b0 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -127,6 +127,8 @@ density = TRUE wants_powernet = FALSE + circuit = /obj/item/circuitboard/machine/grounding_rod + can_buckle = TRUE buckle_lying = 0 buckle_requires_restraints = TRUE diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 3a7c3fcb59d36..4c5c24a3eec89 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -20,6 +20,10 @@ /obj/item/ammo_casing/strilka310/enchanted projectile_type = /obj/projectile/bullet/strilka310/enchanted +/obj/item/ammo_casing/strilka310/phasic + name = ".310 Strilka phasic bullet casing" + desc = "A phasic .310 Strika bullet casing. " + projectile_type = /obj/projectile/bullet/strilka310/phasic // .223 (M-90gl Carbine) /obj/item/ammo_casing/a223 diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index b545500420bc1..7964296b465e3 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -140,8 +140,8 @@ var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/meteorslug, /datum/crafting_recipe/pulseslug, /datum/crafting_recipe/dragonsbreath, /datum/crafting_recipe/ionslug) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -159,7 +159,13 @@ /obj/item/ammo_casing/shotgun/dart/attackby() return +/obj/item/ammo_casing/shotgun/dart/large + name = "XL shotgun dart" + desc = "A dart for use in shotguns. Can be injected with up to 25 units of any chemical." + reagent_amount = 25 + /obj/item/ammo_casing/shotgun/dart/bioterror + name = "bioterror dart" desc = "An improved shotgun dart filled with deadly toxins. Can be injected with up to 30 units of any chemical." reagent_amount = 30 diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index f9d5ca5d61250..c42bcdc746e45 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -85,3 +85,10 @@ harmful = FALSE e_cost = LASER_SHOTS(2, STANDARD_CELL_CHARGE * 0.5) fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' // fwip fwip fwip fwip + +// Used by /obj/item/gun/energy/photon +/obj/item/ammo_casing/energy/photon + fire_sound = 'sound/weapons/lasercannonfire.ogg' + e_cost = LASER_SHOTS(4, STANDARD_CELL_CHARGE) + select_name = "flare" + projectile_type = /obj/projectile/energy/photon diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 430ef11b7dd5d..bbd89389eb809 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -130,6 +130,12 @@ name = "stripper clip (.310 Surplus)" ammo_type = /obj/item/ammo_casing/strilka310/surplus +/obj/item/ammo_box/strilka310/phasic + name = "stripper clip (.310 Phasic)" + desc = "A stripper clip filled with phasic bullets, hastily developed after an incident where a misfire resulted in the destruction of Atrakor Silverscale's priceless Vigoxian Fabergé egg. \ + These fancy bullets pass right though valuables until they end up in a far less expensive human skull." + ammo_type = /obj/item/ammo_casing/strilka310/phasic + /obj/item/ammo_box/n762 name = "ammo box (7.62x38mmR)" icon_state = "10mmbox" diff --git a/code/modules/projectiles/boxes_magazines/internal/rifle.dm b/code/modules/projectiles/boxes_magazines/internal/rifle.dm index 8c6abaa0e7798..863f29508dac0 100644 --- a/code/modules/projectiles/boxes_magazines/internal/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/internal/rifle.dm @@ -9,6 +9,9 @@ /obj/item/ammo_box/magazine/internal/boltaction/surplus ammo_type = /obj/item/ammo_casing/strilka310/surplus +/obj/item/ammo_box/magazine/internal/boltaction/phasic + ammo_type = /obj/item/ammo_casing/strilka310/phasic + /obj/item/ammo_box/magazine/internal/boltaction/pipegun name = "pipegun internal magazine" caliber = CALIBER_JUNK diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f1df323609dd9..1452d879799fa 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -126,6 +126,21 @@ suppressed = null update_appearance() +/obj/item/gun/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(isliving(hit_atom)) + var/mob/living/thrower = throwingdatum?.get_thrower() + toss_gun_hard(thrower, hit_atom) + +/obj/item/gun/proc/toss_gun_hard(mob/living/thrower, mob/living/target) //throw a gun at them. They don't expect it. + if(isnull(thrower)) + return FALSE + if(!HAS_TRAIT(thrower, TRAIT_TOSS_GUN_HARD)) + return FALSE + target.Knockdown(0.5 SECONDS) + target.apply_damage(damage = max(w_class * 5 - throwforce, 10), damagetype = BRUTE, def_zone = thrower.zone_selected, wound_bonus = CANT_WOUND, attacking_item = src) + return TRUE + /obj/item/gun/examine(mob/user) . = ..() if(!pinless) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 361d68123f5c4..d009cabd1a9a3 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -735,6 +735,24 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( chamber_round() update_appearance() +/obj/item/gun/ballistic/toss_gun_hard(mob/living/carbon/thrower, mob/living/target) + . = ..() + if(!.) + return + switch(bolt_type) + if(BOLT_TYPE_NO_BOLT) //emptying the revolver cylinder + attack_self() + return + if(BOLT_TYPE_OPEN) //emptying the chamber of an automatic weapon, because rack() doesn't do this to it + handle_chamber(chamber_next_round = FALSE) + if(!internal_magazine && magazine) //if a magazine is attached to the weapon, we remove it and throw it aside + magazine.forceMove(drop_location()) + magazine.throw_at(get_edge_target_turf(src, pick(GLOB.alldirs)), 1, 1) + magazine = null + update_icon() //updating the sprite of weapons without a magazine + if(!isnull(chambered)) //if there is a cartridge in the chamber, we remove it + rack() + /obj/item/suppressor name = "suppressor" desc = "A syndicate small-arms suppressor for maximum espionage." diff --git a/code/modules/projectiles/guns/ballistic/bows/_bow.dm b/code/modules/projectiles/guns/ballistic/bows/_bow.dm index 15c89ddb8553d..c0ce0b1ef2c9d 100644 --- a/code/modules/projectiles/guns/ballistic/bows/_bow.dm +++ b/code/modules/projectiles/guns/ballistic/bows/_bow.dm @@ -27,7 +27,12 @@ /obj/item/gun/ballistic/bow/update_icon_state() . = ..() - icon_state = chambered ? "[base_icon_state]_[drawn ? "drawn" : "nocked"]" : "[base_icon_state]" + icon_state = "[base_icon_state][drawn ? "_drawn" : ""]" + +/obj/item/gun/ballistic/bow/update_overlays() + . = ..() + if(chambered) + . += "[chambered.base_icon_state][drawn ? "_drawn" : ""]" /obj/item/gun/ballistic/bow/click_alt(mob/user) if(isnull(chambered)) @@ -72,6 +77,11 @@ return FALSE return ..() //fires, removing the arrow +/obj/item/gun/ballistic/bow/postfire_empty_checks(last_shot_succeeded) + if(!chambered && !get_ammo()) + drawn = FALSE + update_appearance() + /obj/item/gun/ballistic/bow/equipped(mob/user, slot, initial) . = ..() if(slot != ITEM_SLOT_HANDS && chambered) diff --git a/code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm b/code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm index 22e441cd56b17..92c4f19e9b333 100644 --- a/code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm +++ b/code/modules/projectiles/guns/ballistic/bows/bow_arrows.dm @@ -33,16 +33,17 @@ speed = 1 range = 25 shrapnel_type = null - embedding = list( - embed_chance = 90, - fall_chance = 2, - jostle_chance = 2, - ignore_throwspeed_threshold = TRUE, - pain_stam_pct = 0.5, - pain_mult = 3, - jostle_pain_mult = 3, - rip_time = 1 SECONDS - ) + embed_type = /datum/embed_data/arrow + +/datum/embed_data/arrow + embed_chance = 90 + fall_chance = 2 + jostle_chance = 2 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.5 + pain_mult = 3 + jostle_pain_mult = 3 + rip_time = 1 SECONDS /// holy arrows /obj/item/ammo_casing/arrow/holy @@ -58,22 +59,34 @@ name = "holy arrow" desc = "Here it comes, cultist scum!" icon_state = "holy_arrow_projectile" - damage = 20 //still a lot but this is roundstart gear so far less - embedding = list( - embed_chance = 50, - fall_chance = 2, - jostle_chance = 0, - ignore_throwspeed_threshold = TRUE, - pain_stam_pct = 0.5, - pain_mult = 3, - rip_time = 1 SECONDS - ) /obj/projectile/bullet/arrow/holy/Initialize(mapload) . = ..() //50 damage to revenants AddElement(/datum/element/bane, target_type = /mob/living/basic/revenant, damage_multiplier = 0, added_damage = 30) +/// plastic arrows +// completely dogshit quality and they break when they hit something. +/obj/item/ammo_casing/arrow/plastic + name = "plastic arrow" + desc = "The earliest mining teams within the Spinward Sector were the somewhat stout ancestors of the modern settlers. These teams \ + found themselves often unable to access the quality materials they were digging up for equipment maintenance, all being sent off-site. \ + Left with few options, and in need of a way to protect themselves in the hostile work enviroments of the Spinward, they turned \ + to the one material they had in abundance." + icon_state = "plastic_arrow" + base_icon_state = "plastic_arrow" + projectile_type = /obj/projectile/bullet/arrow/plastic + reusable = FALSE //cheap shit + +/// plastic arrow projectile +/obj/projectile/bullet/arrow/plastic + name = "plastic arrow" + desc = "If this is about to kill you, you should feel genuine shame." + damage = 5 + stamina = 50 + weak_against_armour = TRUE + icon_state = "plastic_arrow_projectile" + /// special pyre sect arrow /// in the future, this needs a special sprite, but bows don't support non-hardcoded arrow sprites /obj/item/ammo_casing/arrow/holy/blazing @@ -87,7 +100,7 @@ desc = "THE UNMATCHED POWER OF THE SUN" icon_state = "holy_arrow_projectile" damage = 20 - embedding = null + embed_type = null /obj/projectile/bullet/arrow/blazing/on_hit(atom/target, blocked, pierce_hit) . = ..() @@ -99,5 +112,5 @@ human_target.adjust_fire_stacks(2) human_target.ignite_mob() return - to_chat(human_target, span_danger("[src] reacts with the flames on y-")) + to_chat(human_target, span_danger("[src] reacts with the flames enveloping you! Oh shit!")) explosion(src, light_impact_range = 1, flame_range = 2) //ow diff --git a/code/modules/projectiles/guns/ballistic/bows/bow_quivers.dm b/code/modules/projectiles/guns/ballistic/bows/bow_quivers.dm index 07d7cc93ce16e..2492f0d4276f5 100644 --- a/code/modules/projectiles/guns/ballistic/bows/bow_quivers.dm +++ b/code/modules/projectiles/guns/ballistic/bows/bow_quivers.dm @@ -8,6 +8,7 @@ worn_icon_state = "harpoon_quiver" /// type of arrow the quivel should hold var/arrow_path = /obj/item/ammo_casing/arrow + var/max_slots = 40 /obj/item/storage/bag/quiver/Initialize(mapload) . = ..() @@ -17,7 +18,10 @@ atom_storage.max_total_storage = 100 atom_storage.set_holdable(/obj/item/ammo_casing/arrow) -/obj/item/storage/bag/quiver/PopulateContents() +/obj/item/storage/bag/quiver/lesser + max_slots = 10 + +/obj/item/storage/bag/quiver/full/PopulateContents() . = ..() for(var/i in 1 to 10) new arrow_path(src) @@ -29,3 +33,8 @@ inhand_icon_state = "holyquiver" worn_icon_state = "holyquiver" arrow_path = /obj/item/ammo_casing/arrow/holy + +/obj/item/storage/bag/quiver/holy/PopulateContents() + . = ..() + for(var/i in 1 to 10) + new arrow_path(src) diff --git a/code/modules/projectiles/guns/ballistic/bows/bow_types.dm b/code/modules/projectiles/guns/ballistic/bows/bow_types.dm index b9ac1af0cca12..83b3bc43dd174 100644 --- a/code/modules/projectiles/guns/ballistic/bows/bow_types.dm +++ b/code/modules/projectiles/guns/ballistic/bows/bow_types.dm @@ -4,6 +4,12 @@ name = "longbow" desc = "While pretty finely crafted, surely you can find something better to use in the current year." +/// Shortbow, made via the crafting recipe +/obj/item/gun/ballistic/bow/shortbow + name = "shortbow" + desc = "A simple homemade shortbow. Great for LARPing. Or poking out someones eye." + projectile_damage_multiplier = 0.36 + ///chaplain's divine archer bow /obj/item/gun/ballistic/bow/divine name = "divine bow" @@ -15,6 +21,7 @@ slot_flags = ITEM_SLOT_BACK obj_flags = UNIQUE_RENAME accepted_magazine_type = /obj/item/ammo_box/magazine/internal/bow/holy + projectile_damage_multiplier = 0.4 /obj/item/ammo_box/magazine/internal/bow/holy name = "divine bowstring" diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 21ddb63211e63..f5f27274b07f0 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -159,6 +159,7 @@ You are now probably one of the few people in the universe to ever hold an \"Obrez Moderna\". \ All you had to do was take an allen wrench to the stock to take it off. But no, you just had to \ go for the saw." + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/phasic /obj/item/gun/ballistic/rifle/boltaction/prime/Initialize(mapload) . = ..() @@ -272,13 +273,14 @@ obj_flags = UNIQUE_RENAME can_be_sawn_off = FALSE trigger_guard = TRIGGER_GUARD_ALLOW_ALL + pb_knockback = 3 SET_BASE_PIXEL(-8, 0) /obj/item/gun/ballistic/rifle/boltaction/pipegun/add_bayonet_point() AddComponent(/datum/component/bayonet_attachable, offset_x = 35, offset_y = 10) -/obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber() +/obj/item/gun/ballistic/rifle/boltaction/pipegun/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) . = ..() do_sparks(1, TRUE, src) @@ -302,13 +304,16 @@ accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol projectile_damage_multiplier = 0.50 spread = 15 //kinda inaccurate + burst_size = 3 //but it empties the entire magazine when it fires + fire_delay = 0.3 // and by empties, I mean it does it all at once slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM + semi_auto = TRUE SET_BASE_PIXEL(0, 0) -/obj/item/gun/ballistic/rifle/boltaction/pipegun/pipepistol/add_bayonet_point() +/obj/item/gun/ballistic/rifle/boltaction/pipegun/pistol/add_bayonet_point() return /obj/item/gun/ballistic/rifle/boltaction/pipegun/prime @@ -329,6 +334,7 @@ inhand_icon_state = "regal_pipepistol" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/pistol/prime projectile_damage_multiplier = 1 + burst_size = 6 // WHOLE CLIP spread = 0 /// MAGICAL BOLT ACTIONS /// diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 792edbeaa16aa..4b2ae93b1a257 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -202,7 +202,7 @@ else . += "[icon_state]_no_secondary_mag" -/obj/item/gun/ballistic/shotgun/bulldog/handle_chamber() +/obj/item/gun/ballistic/shotgun/bulldog/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) if(!secondary_magazine) return ..() var/secondary_shells_left = LAZYLEN(secondary_magazine.stored_ammo) diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 237d7cbbb1005..cb90438f56b4f 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -47,7 +47,7 @@ pb_knockback = 0 gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN -/obj/item/gun/ballistic/shotgun/toy/handle_chamber() +/obj/item/gun/ballistic/shotgun/toy/handle_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) . = ..() if(chambered && !chambered.loaded_projectile) qdel(chambered) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 3ce3338bf8749..e826e1392bf28 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -16,8 +16,8 @@ return var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/advancedegun, /datum/crafting_recipe/tempgun, /datum/crafting_recipe/beam_rifle) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1cfa73ddc6451..ab023d38b55ef 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -27,8 +27,8 @@ return var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/ebow) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 95baca98db80f..1878e814b3268 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -16,8 +16,8 @@ return var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/xraylaser, /datum/crafting_recipe/hellgun, /datum/crafting_recipe/ioncarbine) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) @@ -139,12 +139,14 @@ icon_state = "scatterlaser" range = 255 damage = 6 + var/size_per_tile = 0.1 + var/max_scale = 4 /obj/projectile/beam/laser/accelerator/Range() ..() damage += 7 transform = 0 - transform *= 1 + (((damage - 6)/7) * 0.2)//20% larger per tile + transform *= min(1 + (decayedRange - range) * size_per_tile, max_scale) ///X-ray gun diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 653cffcbeec7d..961d32c96ee8b 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -428,3 +428,21 @@ new_coin.preparePixelProjectile(target_turf, user) new_coin.fire() return ITEM_INTERACT_SUCCESS + +/obj/item/gun/energy/photon + name = "photon cannon" + desc = "A competitive design to the tesla cannon, that instead of charging latent electrons, releases energy into photons. Eye protection is recommended." + icon_state = "photon" + inhand_icon_state = "tesla" + fire_sound = 'sound/weapons/lasercannonfire.ogg' + ammo_type = list(/obj/item/ammo_casing/energy/photon) + shaded_charge = TRUE + weapon_weight = WEAPON_HEAVY + light_color = LIGHT_COLOR_DEFAULT + light_system = OVERLAY_LIGHT + light_power = 2 + light_range = 1 + +/obj/item/gun/energy/photon/Initialize(mapload) + . = ..() + set_light_on(TRUE) // The gun quite literally shoots mini-suns. diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 013cc6e4b294c..7870c10e9ef4a 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -191,7 +191,9 @@ ///If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets var/shrapnel_type ///If we have a shrapnel_type defined, these embedding stats will be passed to the spawned shrapnel type, which will roll for embedding on the target - var/list/embedding + var/embed_type + ///Saves embedding data + var/datum/embed_data/embed_data ///If TRUE, hit mobs, even if they are lying on the floor and are not our target within MAX_RANGE_HIT_PRONE_TARGETS tiles var/hit_prone_targets = FALSE ///if TRUE, ignores the range of MAX_RANGE_HIT_PRONE_TARGETS tiles of hit_prone_targets @@ -218,8 +220,8 @@ /obj/projectile/Initialize(mapload) . = ..() decayedRange = range - if(embedding) - updateEmbedding() + if(get_embed()) + AddElement(/datum/element/embed) AddElement(/datum/element/connect_loc, projectile_connections) /obj/projectile/proc/Range() @@ -227,8 +229,8 @@ if(wound_bonus != CANT_WOUND) wound_bonus += wound_falloff_tile bare_wound_bonus = max(0, bare_wound_bonus + wound_falloff_tile) - if(embedding) - embedding["embed_chance"] += embed_falloff_tile + if(get_embed()) + set_embed(embed_data.generate_with_values(embed_data.embed_chance + embed_falloff_tile)) // Should be rewritten in projecitle refactor if(damage_falloff_tile && damage >= 0) damage += damage_falloff_tile if(stamina_falloff_tile && stamina >= 0) @@ -1130,26 +1132,6 @@ /obj/projectile/experience_pressure_difference() return -///Like [/obj/item/proc/updateEmbedding] but for projectiles instead, call this when you want to add embedding or update the stats on the embedding element -/obj/projectile/proc/updateEmbedding() - if(!shrapnel_type || !LAZYLEN(embedding)) - return - - AddElement(/datum/element/embed,\ - embed_chance = (!isnull(embedding["embed_chance"]) ? embedding["embed_chance"] : EMBED_CHANCE),\ - fall_chance = (!isnull(embedding["fall_chance"]) ? embedding["fall_chance"] : EMBEDDED_ITEM_FALLOUT),\ - pain_chance = (!isnull(embedding["pain_chance"]) ? embedding["pain_chance"] : EMBEDDED_PAIN_CHANCE),\ - pain_mult = (!isnull(embedding["pain_mult"]) ? embedding["pain_mult"] : EMBEDDED_PAIN_MULTIPLIER),\ - remove_pain_mult = (!isnull(embedding["remove_pain_mult"]) ? embedding["remove_pain_mult"] : EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER),\ - rip_time = (!isnull(embedding["rip_time"]) ? embedding["rip_time"] : EMBEDDED_UNSAFE_REMOVAL_TIME),\ - ignore_throwspeed_threshold = (!isnull(embedding["ignore_throwspeed_threshold"]) ? embedding["ignore_throwspeed_threshold"] : FALSE),\ - impact_pain_mult = (!isnull(embedding["impact_pain_mult"]) ? embedding["impact_pain_mult"] : EMBEDDED_IMPACT_PAIN_MULTIPLIER),\ - jostle_chance = (!isnull(embedding["jostle_chance"]) ? embedding["jostle_chance"] : EMBEDDED_JOSTLE_CHANCE),\ - jostle_pain_mult = (!isnull(embedding["jostle_pain_mult"]) ? embedding["jostle_pain_mult"] : EMBEDDED_JOSTLE_PAIN_MULTIPLIER),\ - pain_stam_pct = (!isnull(embedding["pain_stam_pct"]) ? embedding["pain_stam_pct"] : EMBEDDED_PAIN_STAM_PCT),\ - projectile_payload = shrapnel_type) - return TRUE - /** * Is this projectile considered "hostile"? * @@ -1169,7 +1151,7 @@ ///Checks if the projectile can embed into someone /obj/projectile/proc/can_embed_into(atom/hit) - return embedding && shrapnel_type && iscarbon(hit) && !HAS_TRAIT(hit, TRAIT_PIERCEIMMUNE) + return get_embed() && shrapnel_type && iscarbon(hit) && !HAS_TRAIT(hit, TRAIT_PIERCEIMMUNE) /// Reflects the projectile off of something /obj/projectile/proc/reflect(atom/hit_atom) @@ -1212,3 +1194,17 @@ bullet.preparePixelProjectile(target, src) bullet.fire() return bullet + +/// Fetches embedding data +/obj/projectile/proc/get_embed() + RETURN_TYPE(/datum/embed_data) + return embed_type ? (embed_data ||= get_embed_by_type(embed_type)) : embed_data + +/obj/projectile/proc/set_embed(datum/embed_data/embed) + if(embed_data == embed) + return + // GLOB.embed_by_type stores shared "default" embedding values of datums + // Dynamically generated embeds use the base class and thus are not present in there, and should be qdeleted upon being discarded + if(!isnull(embed_data) && !GLOB.embed_by_type[embed_data.type]) + qdel(embed_data) + embed_data = ispath(embed) ? get_embed_by_type(armor) : embed diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 5e938c4995390..1d1313d9e5551 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -8,7 +8,7 @@ sharpness = SHARP_POINTY impact_effect_type = /obj/effect/temp_visual/impact_effect shrapnel_type = /obj/item/shrapnel/bullet - embedding = list(embed_chance=20, fall_chance=2, jostle_chance=0, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.5, pain_mult=3, rip_time=10) + embed_type = /datum/embed_data/bullet wound_bonus = 0 wound_falloff_tile = -5 embed_falloff_tile = -3 @@ -16,3 +16,12 @@ /obj/projectile/bullet/smite name = "divine retribution" damage = 10 + +/datum/embed_data/bullet + embed_chance=20 + fall_chance=2 + jostle_chance=0 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.5 + pain_mult=3 + rip_time=10 diff --git a/code/modules/projectiles/projectile/bullets/_incendiary.dm b/code/modules/projectiles/projectile/bullets/_incendiary.dm index 85c2dce80c51a..e151afa294d50 100644 --- a/code/modules/projectiles/projectile/bullets/_incendiary.dm +++ b/code/modules/projectiles/projectile/bullets/_incendiary.dm @@ -30,7 +30,7 @@ pass_flags = PASSTABLE | PASSMOB sharpness = NONE shrapnel_type = null - embedding = null + embed_type = null impact_effect_type = null suppressed = SUPPRESSED_VERY damage_type = BURN diff --git a/code/modules/projectiles/projectile/bullets/cannonball.dm b/code/modules/projectiles/projectile/bullets/cannonball.dm index 1d6108ed33fd2..358a23eb63c90 100644 --- a/code/modules/projectiles/projectile/bullets/cannonball.dm +++ b/code/modules/projectiles/projectile/bullets/cannonball.dm @@ -8,7 +8,7 @@ dismemberment = 0 paralyze = 5 SECONDS stutter = 20 SECONDS - embedding = null + embed_type = null hitsound = 'sound/effects/meteorimpact.ogg' hitsound_wall = 'sound/weapons/sonic_jackhammer.ogg' /// If our cannonball hits something, it reduces the damage by this value. diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 405552a8909c2..1bd88d75fdea0 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -2,7 +2,7 @@ name = "dart" icon_state = "cbbolt" damage = 6 - embedding = null + embed_type = null shrapnel_type = null var/inject_flags = null diff --git a/code/modules/projectiles/projectile/bullets/dnainjector.dm b/code/modules/projectiles/projectile/bullets/dnainjector.dm index fdb051e7f8006..b4029b07f2da6 100644 --- a/code/modules/projectiles/projectile/bullets/dnainjector.dm +++ b/code/modules/projectiles/projectile/bullets/dnainjector.dm @@ -4,7 +4,7 @@ var/obj/item/dnainjector/injector damage = 5 hitsound_wall = SFX_SHATTER - embedding = null + embed_type = null shrapnel_type = null /obj/projectile/bullet/dnainjector/on_hit(atom/target, blocked = 0, pierce_hit) diff --git a/code/modules/projectiles/projectile/bullets/foam_dart.dm b/code/modules/projectiles/projectile/bullets/foam_dart.dm index 3f086166e6a88..7eaa1ce6c8ee4 100644 --- a/code/modules/projectiles/projectile/bullets/foam_dart.dm +++ b/code/modules/projectiles/projectile/bullets/foam_dart.dm @@ -8,7 +8,7 @@ base_icon_state = "foamdart" range = 10 shrapnel_type = null - embedding = null + embed_type = null var/modified = FALSE var/obj/item/pen/pen = null diff --git a/code/modules/projectiles/projectile/bullets/grenade.dm b/code/modules/projectiles/projectile/bullets/grenade.dm index a99a7b57ff3ec..0814a844be4a7 100644 --- a/code/modules/projectiles/projectile/bullets/grenade.dm +++ b/code/modules/projectiles/projectile/bullets/grenade.dm @@ -5,7 +5,7 @@ desc = "USE A WEEL GUN" icon_state= "bolter" damage = 60 - embedding = null + embed_type = null shrapnel_type = null /obj/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0, pierce_hit) diff --git a/code/modules/projectiles/projectile/bullets/junk.dm b/code/modules/projectiles/projectile/bullets/junk.dm index 344a732911347..1c6ea89962e14 100644 --- a/code/modules/projectiles/projectile/bullets/junk.dm +++ b/code/modules/projectiles/projectile/bullets/junk.dm @@ -4,14 +4,39 @@ name = "junk bullet" icon_state = "trashball" damage = 30 - embedding = list(embed_chance=15, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) - var/bane_mob_biotypes = MOB_ROBOTIC - var/bane_multiplier = 1.5 - var/bane_added_damage = 0 + embed_type = /datum/embed_data/bullet_junk + /// What biotype does our junk projectile especially harm? + var/extra_damage_mob_biotypes = MOB_ROBOTIC + /// How much do we multiply our total base damage? + var/extra_damage_multiplier = 1.5 + /// How much extra damage do we do on top of this total damage? Separate from the multiplier and unaffected by it. + var/extra_damage_added_damage = 0 + /// What damage type is our extra damage? + var/extra_damage_type = BRUTE -/obj/projectile/bullet/junk/Initialize(mapload) +/obj/projectile/bullet/junk/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() - AddElement(/datum/element/bane, mob_biotypes = bane_mob_biotypes, target_type = /mob/living, damage_multiplier = bane_multiplier, added_damage = bane_added_damage, requires_combat_mode = FALSE) + + if(!isliving(target)) + return + var/mob/living/living_target = target + + var/is_correct_biotype = living_target.mob_biotypes & extra_damage_mob_biotypes + if(extra_damage_mob_biotypes && is_correct_biotype) + var/multiplied_damage = extra_damage_multiplier ? ((damage * extra_damage_multiplier) - damage) : 0 + var/finalized_damage = multiplied_damage + extra_damage_added_damage + if(finalized_damage) + living_target.apply_damage(finalized_damage, damagetype = extra_damage_type, def_zone = BODY_ZONE_CHEST, wound_bonus = wound_bonus) + +/datum/embed_data/bullet_junk + embed_chance=15 + fall_chance=3 + jostle_chance=4 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=5 + jostle_pain_mult=6 + rip_time=10 /obj/projectile/bullet/incendiary/fire/junk name = "burning oil" @@ -28,9 +53,10 @@ name = "bundle of live electrical parts" icon_state = "tesla_projectile" damage = 15 - embedding = null + embed_type = null shrapnel_type = null - bane_multiplier = 3 + extra_damage_added_damage = 30 + extra_damage_type = BURN /obj/projectile/bullet/junk/shock/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() @@ -41,18 +67,28 @@ /obj/projectile/bullet/junk/hunter name = "junk hunter bullet" icon_state = "gauss" - bane_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL - bane_multiplier = 0 - bane_added_damage = 50 + extra_damage_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL + extra_damage_multiplier = 0 + extra_damage_added_damage = 50 /obj/projectile/bullet/junk/ripper name = "junk ripper bullet" icon_state = "redtrac" damage = 10 - embedding = list(embed_chance=100, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) + embed_type = /datum/embed_data/bullet_junk_ripper wound_bonus = 10 bare_wound_bonus = 30 +/datum/embed_data/bullet_junk_ripper + embed_chance=100 + fall_chance=3 + jostle_chance=4 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=5 + jostle_pain_mult=6 + rip_time=10 + /obj/projectile/bullet/junk/reaper name = "junk reaper bullet" tracer_type = /obj/effect/projectile/tracer/sniper diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index 8fccc510ff8fd..6bd355219f950 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -3,13 +3,23 @@ /obj/projectile/bullet/c9mm name = "9mm bullet" damage = 30 - embedding = list(embed_chance=15, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) + embed_type = /datum/embed_data/bullet_c9mm + +/datum/embed_data/bullet_c9mm + embed_chance=15 + fall_chance=3 + jostle_chance=4 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=5 + jostle_pain_mult=6 + rip_time=10 /obj/projectile/bullet/c9mm/ap name = "9mm armor-piercing bullet" damage = 27 armour_penetration = 40 - embedding = null + embed_type = null shrapnel_type = null /obj/projectile/bullet/c9mm/hp diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index 417f61534bcb7..e9d6389c89d0d 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -21,9 +21,19 @@ ricochet_auto_aim_range = 3 wound_bonus = -20 bare_wound_bonus = 10 - embedding = list(embed_chance=25, fall_chance=2, jostle_chance=2, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=3, jostle_pain_mult=5, rip_time=1 SECONDS) + embed_type = /datum/embed_data/bullet_c38 embed_falloff_tile = -4 +/datum/embed_data/bullet_c38 + embed_chance=25 + fall_chance=2 + jostle_chance=2 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=3 + jostle_pain_mult=5 + rip_time=1 SECONDS + /obj/projectile/bullet/c38/match name = ".38 Match bullet" ricochets_max = 4 @@ -45,7 +55,7 @@ ricochet_decay_damage = 0.8 shrapnel_type = null sharpness = NONE - embedding = null + embed_type = null // premium .38 ammo from cargo, weak against armor, lower base damage, but excellent at embedding and causing slice wounds at close range /obj/projectile/bullet/c38/dumdum @@ -56,10 +66,20 @@ sharpness = SHARP_EDGED wound_bonus = 20 bare_wound_bonus = 20 - embedding = list(embed_chance=75, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=1 SECONDS) + embed_type = /datum/embed_data/bullet_c38_dumdum wound_falloff_tile = -5 embed_falloff_tile = -15 +/datum/embed_data/bullet_c38_dumdum + embed_chance=75 + fall_chance=3 + jostle_chance=4 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=5 + jostle_pain_mult=6 + rip_time=1 SECONDS + /obj/projectile/bullet/c38/trac name = ".38 TRAC bullet" damage = 10 diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 3cbb894b8fb9e..6f14df2f4c8bd 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -35,6 +35,10 @@ damage = 20 stamina = 80 +/obj/projectile/bullet/strilka310/phasic + name = "phasic .310 bullet" + projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS + // Harpoons (Harpoon Gun) /obj/projectile/bullet/harpoon @@ -44,10 +48,20 @@ armour_penetration = 50 wound_bonus = -20 bare_wound_bonus = 80 - embedding = list(embed_chance=100, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) + embed_type = /datum/embed_data/harpoon wound_falloff_tile = -5 shrapnel_type = null +/datum/embed_data/harpoon + embed_chance=100 + fall_chance=3 + jostle_chance=4 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=5 + jostle_pain_mult=6 + rip_time=10 + // Rebar (Rebar Crossbow) /obj/projectile/bullet/rebar name = "rebar" @@ -58,11 +72,21 @@ armour_penetration = 10 wound_bonus = -20 bare_wound_bonus = 20 - embedding = list("embed_chance" = 60, "fall_chance" = 2, "jostle_chance" = 2, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.4, "pain_mult" = 4, "jostle_pain_mult" = 2, "rip_time" = 10) + embed_type = /datum/embed_data/rebar embed_falloff_tile = -5 wound_falloff_tile = -2 shrapnel_type = /obj/item/ammo_casing/rebar +/datum/embed_data/rebar + embed_chance = 60 + fall_chance = 2 + jostle_chance = 2 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.4 + pain_mult = 4 + jostle_pain_mult = 2 + rip_time = 10 + /obj/projectile/bullet/rebar/proc/handle_drop(datum/source, obj/item/ammo_casing/rebar/newcasing) /obj/projectile/bullet/rebar/syndie @@ -74,10 +98,20 @@ armour_penetration = 20 //A bit better versus armor. Gets past anti laser armor or a vest, but doesnt wound proc on sec armor. wound_bonus = 10 bare_wound_bonus = 20 - embedding = list("embed_chance" = 80, "fall_chance" = 1, "jostle_chance" = 3, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.4, "pain_mult" = 3, "jostle_pain_mult" = 2, "rip_time" = 14) embed_falloff_tile = -3 + embed_type = /datum/embed_data/rebar_syndie shrapnel_type = /obj/item/ammo_casing/rebar/syndie +/datum/embed_data/rebar_syndie + embed_chance = 80 + fall_chance = 1 + jostle_chance = 3 + ignore_throwspeed_threshold + pain_stam_pct = 0.4 + pain_mult = 3 + jostle_pain_mult = 2 + rip_time = 14 + /obj/projectile/bullet/rebar/zaukerite name = "zaukerite shard" icon_state = "rebar_zaukerite" @@ -89,10 +123,20 @@ armour_penetration = 20 // not nearly as good, as its not as sharp. wound_bonus = 10 bare_wound_bonus = 40 - embedding = list("embed_chance" =100, "fall_chance" = 0, "jostle_chance" = 5, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.8, "pain_mult" = 6, "jostle_pain_mult" = 2, "rip_time" = 30) + embed_type = /datum/embed_data/rebar_zaukerite embed_falloff_tile = 0 // very spiky. shrapnel_type = /obj/item/ammo_casing/rebar/zaukerite +/datum/embed_data/rebar_zaukerite + embed_chance = 100 + fall_chance = 0 + jostle_chance = 5 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.8 + pain_mult = 6 + jostle_pain_mult = 2 + rip_time = 30 + /obj/projectile/bullet/rebar/hydrogen name = "metallic hydrogen bolt" icon_state = "rebar_hydrogen" @@ -104,10 +148,20 @@ projectile_piercing = PASSMOB //felt this might have been a nice compromise for the lower damage for the difficulty of getting it wound_bonus = -15 bare_wound_bonus = 10 - embedding = list("embed_chance" = 50, "fall_chance" = 2, "jostle_chance" = 3, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.6, "pain_mult" = 4, "jostle_pain_mult" = 2, "rip_time" =18) + embed_type = /datum/embed_data/rebar_hydrogen embed_falloff_tile = -3 shrapnel_type = /obj/item/ammo_casing/rebar/hydrogen +/datum/embed_data/rebar_hydrogen + embed_chance = 50 + fall_chance = 2 + jostle_chance = 3 + ignore_throwspeed_threshold = TRUE + pain_stam_pct = 0.6 + pain_mult = 4 + jostle_pain_mult = 2 + rip_time =18 + /obj/projectile/bullet/rebar/healium name = "healium bolt" icon_state = "rebar_healium" @@ -118,7 +172,7 @@ armour_penetration = 100 wound_bonus = -100 bare_wound_bonus = -100 - embedding = list(embed_chance = 0) + embed_type = null embed_falloff_tile = -3 shrapnel_type = /obj/item/ammo_casing/rebar/healium @@ -135,7 +189,6 @@ return BULLET_ACT_HIT - /obj/projectile/bullet/rebar/supermatter name = "supermatter bolt" icon_state = "rebar_supermatter" @@ -143,6 +196,7 @@ speed = 0.4 dismemberment = 0 damage_type = TOX + embed_type = null armour_penetration = 100 shrapnel_type = /obj/item/ammo_casing/rebar/supermatter @@ -160,7 +214,6 @@ return BULLET_ACT_HIT - /obj/projectile/bullet/rebar/supermatter/proc/dust_feedback(atom/target) playsound(get_turf(src), 'sound/effects/supermatter.ogg', 10, TRUE) visible_message(span_danger("[target] is hit by [src], turning [target.p_them()] to dust in a brilliant flash of light!")) @@ -170,7 +223,7 @@ damage = 1 // It's a damn toy. range = 10 shrapnel_type = null - embedding = null + embed_type = null name = "paper ball" desc = "doink!" damage_type = BRUTE diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index b3ddaf9bc9013..a013aaba691d7 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -22,7 +22,7 @@ stamina = 55 wound_bonus = 20 sharpness = NONE - embedding = null + embed_type = null /obj/projectile/bullet/shotgun_beanbag/a40mm name = "rubber slug" @@ -55,7 +55,7 @@ range = 7 icon_state = "spark" color = COLOR_YELLOW - embedding = null + embed_type = null /obj/projectile/bullet/shotgun_frag12 name ="frag12 slug" @@ -84,7 +84,7 @@ damage = 3 stamina = 11 sharpness = NONE - embedding = null + embed_type = null speed = 1.2 stamina_falloff_tile = -0.25 ricochets_max = 4 @@ -106,7 +106,7 @@ name = "incapacitating pellet" damage = 1 stamina = 6 - embedding = null + embed_type = null // Mech Scattershot diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 8befcb690ecfa..ce78abf0662b4 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -33,7 +33,7 @@ name = "4.6x30mm armor-piercing bullet" damage = 15 armour_penetration = 40 - embedding = null + embed_type = null /obj/projectile/bullet/incendiary/c46x30mm name = "4.6x30mm incendiary bullet" diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm index f595c3e116510..2af0fe7b9cb9d 100644 --- a/code/modules/projectiles/projectile/bullets/special.dm +++ b/code/modules/projectiles/projectile/bullets/special.dm @@ -9,7 +9,7 @@ icon = 'icons/obj/service/hydroponics/harvest.dmi' icon_state = "banana" range = 200 - embedding = null + embed_type = null shrapnel_type = null /obj/projectile/bullet/honker/Initialize(mapload) diff --git a/code/modules/projectiles/projectile/energy/photon.dm b/code/modules/projectiles/projectile/energy/photon.dm new file mode 100644 index 0000000000000..7caac3e062e01 --- /dev/null +++ b/code/modules/projectiles/projectile/energy/photon.dm @@ -0,0 +1,58 @@ +#define MULTIPLY_PIXELSPEED 0.8 + +/obj/projectile/energy/photon + name = "photon bolt" + icon_state = "solarflare" + damage_type = STAMINA + armor_flag = ENERGY + impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser + damage = 5 //It's literally a weaker tesla bolt, which is already weak. Don't worry, we'll fix that. + range = 20 + speed = 1 + pixel_speed_multiplier = 1 + projectile_piercing = PASSMOB + light_color = LIGHT_COLOR_DEFAULT + light_system = OVERLAY_LIGHT + light_power = 5 + light_range = 6 + + +/obj/projectile/energy/photon/Initialize(mapload) + . = ..() + RegisterSignals(src, list(COMSIG_MOVABLE_CROSS, COMSIG_MOVABLE_CROSS_OVER), PROC_REF(blast_touched)) + RegisterSignal(src, COMSIG_ATOM_ENTERED, PROC_REF(scorch_earth)) + set_light_on(TRUE) + +/** + * Handle side effects for the phonon bolt. + * behaves like a higher power direct flash if hit, and sparks silicons like they're getting microwaved. + */ +/obj/projectile/energy/photon/proc/blast_touched(datum/source, atom/flashed) + SIGNAL_HANDLER + if(isliving(flashed)) + var/mob/living/flashed_creature = flashed + flashed_creature.flash_act(intensity = 3, affect_silicon = TRUE, length = 6) + flashed_creature.adjust_confusion(1.5 SECONDS) + if(issilicon(flashed)) + do_sparks(rand(1, 4), FALSE, src) + +/** + * When traveling to a new turf, throws a probability to generate a hotspot across it's path. + */ +/obj/projectile/energy/photon/proc/scorch_earth(turf/open/floor/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + if(prob(40)) + new /obj/effect/hotspot(arrived) + +/obj/projectile/energy/photon/Range() + . = ..() + pixel_speed_multiplier *= MULTIPLY_PIXELSPEED + +/obj/projectile/energy/photon/on_range() + do_sparks(rand(4, 9), FALSE, src) + playsound(loc, 'sound/weapons/solarflare.ogg', 100, FALSE, 8, 0.9) + for(var/mob/living/flashed_mob in viewers(5, loc)) + flashed_mob.flash_act() + return ..() + +#undef MULTIPLY_PIXELSPEED diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index db452385c987c..fe04fc7d9865e 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -2,7 +2,7 @@ name ="explosive bolt" icon_state= "bolter" damage = 50 - embedding = null + embed_type = null shrapnel_type = null /obj/projectile/bullet/gyro/on_hit(atom/target, blocked = 0, pierce_hit) @@ -17,7 +17,7 @@ icon_state= "missile" damage = 50 sharpness = NONE - embedding = null + embed_type = null shrapnel_type = null ricochets_max = 0 /// Whether we do extra damage when hitting a mech or silicon diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm index 182bb715466d3..43d7968b9ae72 100644 --- a/code/modules/projectiles/projectile/special/temperature.dm +++ b/code/modules/projectiles/projectile/special/temperature.dm @@ -24,6 +24,13 @@ // the new body temperature is adjusted by the bullet's effect temperature L.adjust_bodytemperature((1 - blocked) * temperature) + if(isobj(target)) + var/obj/objectification = target + + if(objectification.reagents) + var/datum/reagents/reagents = objectification.reagents + reagents?.expose_temperature(temperature) + /obj/projectile/temp/hot name = "heat beam" icon_state = "lava" @@ -32,7 +39,14 @@ /obj/projectile/temp/cryo name = "cryo beam" range = 9 - temperature = -240 // Single slow shot reduces temp greatly + temperature = -350 // Single slow shot reduces temp greatly + +/obj/projectile/temp/cryo/on_hit(atom/target, blocked = 0, pierce_hit) + . = ..() + + if(isliving(target)) + var/mob/living/living_target = target + living_target.apply_status_effect(/datum/status_effect/freezing_blast) /obj/projectile/temp/cryo/on_range() var/turf/T = get_turf(src) @@ -45,17 +59,27 @@ name = "hot beam" icon_state = "firebeam" // sets on fire, diff sprite! range = 9 - temperature = 240 + temperature = 350 /obj/projectile/temp/pyro/on_hit(atom/target, blocked, pierce_hit) . = ..() if(!.) return - var/mob/living/living_target = target - if(!istype(living_target)) + + if(isobj(target)) + var/obj/objectification = target + + if(objectification.resistance_flags & ON_FIRE) //Don't burn something already on fire + return + + objectification.fire_act(temperature) + return - living_target.adjust_fire_stacks(2) - living_target.ignite_mob() + + if(isliving(target)) + var/mob/living/living_target = target + living_target.adjust_fire_stacks(2) + living_target.ignite_mob() /obj/projectile/temp/pyro/on_range() var/turf/location = get_turf(src) diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 0c300c3896b0e..46d00e765a343 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -440,8 +440,6 @@ target_holder = target.reagents target_atom = target - var/cached_amount = amount - // Prevents small amount problems, as well as zero and below zero amounts. amount = round(min(amount, total_volume, target_holder.maximum_volume - target_holder.total_volume), CHEMICAL_QUANTISATION_LEVEL) if(amount <= 0) @@ -477,7 +475,7 @@ if(preserve_data) trans_data = copy_data(reagent) - if(reagent.intercept_reagents_transfer(target_holder, cached_amount)) + if(reagent.intercept_reagents_transfer(target_holder, amount)) continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount * multiplier, trans_data, chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index cbd6449269ccc..22e569af66021 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -278,6 +278,9 @@ var/datum/reagents/holder = beaker.reagents var/to_dispense = max(0, min(amount, holder.maximum_volume - holder.total_volume)) + if(!to_dispense) + say("The container is full!") + return if(!cell.use(to_dispense * power_cost)) say("Not enough energy to complete operation!") return diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 2e45ecf641bc1..4f7377d407fec 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -6,14 +6,13 @@ // Part of the food code. Also is where all the food // condiments, additives, and such go. - /datum/reagent/consumable name = "Consumable" taste_description = "generic food" taste_mult = 4 inverse_chem_val = 0.1 inverse_chem = null - creation_purity = 0.5 // 50% pure by default. Below - synthetic food. Above - natural food. + creation_purity = CONSUMABLE_STANDARD_PURITY /// How much nutrition this reagent supplies var/nutriment_factor = 1 /// affects mood, typically higher for mixed drinks with more complex recipes' @@ -140,6 +139,7 @@ brute_heal = 0.8 //Rewards the player for eating a balanced diet. nutriment_factor = 9 //45% as calorie dense as oil. chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/condiment/protein /datum/reagent/consumable/nutriment/fat name = "Fat" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 505647fe332aa..df7f222a496fe 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1379,7 +1379,7 @@ . = ..() affected_mob.add_traits(list(TRAIT_SLEEPIMMUNE, TRAIT_BATON_RESISTANCE), type) affected_mob.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) - RegisterSignal(affected_mob, COMSIG_CARBON_ENTER_STAMCRIT, PROC_REF(on_stamcrit)) + RegisterSignal(affected_mob, COMSIG_LIVING_ENTER_STAMCRIT, PROC_REF(on_stamcrit)) /datum/reagent/medicine/changelingadrenaline/on_mob_end_metabolize(mob/living/affected_mob) . = ..() @@ -1387,7 +1387,7 @@ affected_mob.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) affected_mob.remove_status_effect(/datum/status_effect/dizziness) affected_mob.remove_status_effect(/datum/status_effect/jitter) - UnregisterSignal(affected_mob, COMSIG_CARBON_ENTER_STAMCRIT) + UnregisterSignal(affected_mob, COMSIG_LIVING_ENTER_STAMCRIT) /datum/reagent/medicine/changelingadrenaline/proc/on_stamcrit(mob/living/affected_mob) SIGNAL_HANDLER diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 6695b0b9db15d..5e553fce962c5 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -1275,14 +1275,14 @@ /datum/reagent/toxin/tetrodotoxin name = "Tetrodotoxin" - description = "A colorless, oderless, tasteless neurotoxin usually carried by livers of animals of the Tetraodontiformes order." + description = "A colorless, odorless, tasteless neurotoxin usually carried by livers of animals of the Tetraodontiformes order." silent_toxin = TRUE reagent_state = SOLID color = COLOR_VERY_LIGHT_GRAY metabolization_rate = 0.1 * REAGENTS_METABOLISM toxpwr = 0 taste_mult = 0 - chemical_flags = REAGENT_NO_RANDOM_RECIPE + chemical_flags = REAGENT_NO_RANDOM_RECIPE|REAGENT_CAN_BE_SYNTHESIZED var/list/traits_not_applied = list( TRAIT_PARALYSIS_L_ARM = BODY_ZONE_L_ARM, TRAIT_PARALYSIS_R_ARM = BODY_ZONE_R_ARM, @@ -1302,7 +1302,7 @@ if(SPT_PROB(5, seconds_per_tick)) var/obj/item/organ/internal/tongue/tongue = affected_mob.get_organ_slot(ORGAN_SLOT_TONGUE) if(tongue) - to_chat(affected_mob, span_warning("your [tongue.name] feels numb...")) + to_chat(affected_mob, span_warning("Your [tongue.name] feels numb...")) affected_mob.set_slurring_if_lower(5 SECONDS * REM * seconds_per_tick) affected_mob.adjust_disgust(3.5 * REM * seconds_per_tick) if(13 to 21) @@ -1331,7 +1331,7 @@ affected_mob.adjust_disgust(3 * REM * seconds_per_tick) affected_mob.set_slurring_if_lower(3 SECONDS * REM * seconds_per_tick) if(SPT_PROB(5, seconds_per_tick)) - to_chat(affected_mob, span_danger("you feel horribly weak.")) + to_chat(affected_mob, span_danger("You feel horribly weak.")) need_mob_update += affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick, updating_stamina = FALSE) if(SPT_PROB(8, seconds_per_tick)) paralyze_limb(affected_mob) @@ -1352,7 +1352,7 @@ if(current_cycle > 38 && !length(traits_not_applied) && SPT_PROB(5, seconds_per_tick) && !affected_mob.undergoing_cardiac_arrest()) affected_mob.set_heartattack(TRUE) - to_chat(affected_mob, span_danger("you feel a burning pain spread throughout your chest, oh no...")) + to_chat(affected_mob, span_bolddanger("You feel a burning pain spread throughout your chest!")) if(need_mob_update) return UPDATE_MOB_HEALTH @@ -1360,9 +1360,8 @@ /datum/reagent/toxin/tetrodotoxin/proc/paralyze_limb(mob/living/affected_mob) if(!length(traits_not_applied)) return - var/added_trait = pick(traits_not_applied) + var/added_trait = pick_n_take(traits_not_applied) ADD_TRAIT(affected_mob, added_trait, REF(src)) - traits_not_applied -= added_trait /datum/reagent/toxin/tetrodotoxin/on_mob_metabolize(mob/living/affected_mob) . = ..() diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index e1d78353bca28..e95b5eea82089 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -266,9 +266,6 @@ reagents.expose_temperature(1000) return ..() | COMPONENT_MICROWAVE_SUCCESS -/obj/item/reagent_containers/fire_act(temperature, volume) - reagents.expose_temperature(temperature) - /// Updates the icon of the container when the reagents change. Eats signal args /obj/item/reagent_containers/proc/on_reagent_change(datum/reagents/holder, ...) SIGNAL_HANDLER diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index ccabc2c410646..c8652afda8f0e 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -368,6 +368,13 @@ list_reagents = list(/datum/reagent/consumable/grounding_solution = 50) fill_icon_thresholds = null +/obj/item/reagent_containers/condiment/protein + name = "protein powder" + desc = "Fuel for your inner Hulk - because you can't spell 'swole' without 'whey'!" + icon_state = "protein" + list_reagents = list(/datum/reagent/consumable/nutriment/protein = 40) + fill_icon_thresholds = null + //technically condiment packs but they are non transparent /obj/item/reagent_containers/condiment/creamer diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 97906b26240e5..fda39ed4877ba 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -431,7 +431,7 @@ /obj/item/reagent_containers/cup/bottle/thermite name = "thermite bottle" - list_reagents = list(/datum/reagent/thermite = 30) + list_reagents = list(/datum/reagent/thermite = 50) // Bottles for mail goodies. diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index a293aac7aa1b1..b246cc01e07e9 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -42,9 +42,8 @@ /obj/item/reagent_containers/cup/glass/bottle/Initialize(mapload, vol) . = ..() - AddComponent(/datum/component/slapcrafting,\ - slapcraft_recipes = list(/datum/crafting_recipe/molotov)\ - ) + var/static/list/recipes = list(/datum/crafting_recipe/molotov) + AddElement(/datum/element/slapcrafting, recipes) /obj/item/reagent_containers/cup/glass/bottle/small name = "small glass bottle" diff --git a/code/modules/reagents/reagent_containers/cups/soda.dm b/code/modules/reagents/reagent_containers/cups/soda.dm index 5bf0eb782c54d..2e85b2273f45e 100644 --- a/code/modules/reagents/reagent_containers/cups/soda.dm +++ b/code/modules/reagents/reagent_containers/cups/soda.dm @@ -23,9 +23,7 @@ /obj/item/reagent_containers/cup/soda_cans/Initialize(mapload, vol) . = ..() - AddComponent(/datum/component/slapcrafting,\ - slapcraft_recipes = list(/datum/crafting_recipe/improv_explosive)\ - ) + AddElement(/datum/element/slapcrafting, string_list(list(/datum/crafting_recipe/improv_explosive))) /obj/item/reagent_containers/cup/soda_cans/random/Initialize(mapload) ..() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index d561d0db48792..629e0e96937db 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -140,7 +140,7 @@ name = "mannitol pill" desc = "Used to treat brain damage." icon_state = "pill17" - list_reagents = list(/datum/reagent/medicine/mannitol = 14) + list_reagents = list(/datum/reagent/medicine/mannitol = 15) rename_with_volume = TRUE /obj/item/reagent_containers/pill/sansufentanyl diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 9fffd5ccc7c10..06537e591c976 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -316,6 +316,10 @@ name = "unlabeled syringe" desc = "A syringe containing some sort of unknown chemical cocktail." +/obj/item/reagent_containers/syringe/contraband/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/reagent_containers/syringe/contraband/space_drugs list_reagents = list(/datum/reagent/drug/space_drugs = 15) diff --git a/code/modules/religion/burdened/psyker.dm b/code/modules/religion/burdened/psyker.dm index c370424fa7d2c..b256b4f9d4ac3 100644 --- a/code/modules/religion/burdened/psyker.dm +++ b/code/modules/religion/burdened/psyker.dm @@ -252,7 +252,7 @@ ricochet_auto_aim_angle = 10 ricochet_auto_aim_range = 3 wound_bonus = -10 - embedding = null + embed_type = null /obj/projectile/bullet/c38/holy/on_hit(atom/target, blocked, pierce_hit) . = ..() diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 74a40304f7aed..99a9bba1cc84f 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -243,12 +243,10 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) return TRUE /datum/request_manager/ui_data(mob/user) - . = list( - "requests" = list() - ) + var/list/data = list() for (var/ckey in requests) for (var/datum/request/request as anything in requests[ckey]) - var/list/data = list( + data["requests"] += list(list( "id" = request.id, "req_type" = request.req_type, "owner" = request.owner ? "[REF(request.owner)]" : null, @@ -258,8 +256,8 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) "additional_info" = request.additional_information, "timestamp" = request.timestamp, "timestamp_str" = gameTimestamp(wtime = request.timestamp) - ) - .["requests"] += list(data) + )) + return data #undef REQUEST_PRAYER #undef REQUEST_CENTCOM diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 8f857f77e8286..7572a73529200 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -582,6 +582,16 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE +/datum/design/board/vatgrower + name = "Growing Vat Board" + desc = "The circuit board for a growing vat." + id = "vatgrower" + build_path = /obj/item/circuitboard/machine/vatgrower + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/board/monkey_recycler name = "Monkey Recycler Board" desc = "The circuit board for a monkey recycler." @@ -650,7 +660,7 @@ category = list( RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/holopad name = "AI Holopad Board" @@ -1178,6 +1188,36 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING +/datum/design/board/scrubber + name = "Portable Air Scrubber Board" + desc = "The circuit board for a portable air scrubber." + id = "scrubber" + build_path = /obj/item/circuitboard/machine/scrubber + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/board/pump + name = "Portable Air Pump Board" + desc = "The circuit board for a portable air pump." + id = "pump" + build_path = /obj/item/circuitboard/machine/pump + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/board/pipe_scrubber + name = "Portable Pipe Scrubber Board" + desc = "The circuit board for a portable pipe scrubber." + id = "pipe_scrubber" + build_path = /obj/item/circuitboard/machine/pipe_scrubber + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + /datum/design/board/bookbinder name = "Book Binder" desc = "The circuit board for a book binder" diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 0583269f1c6be..19b3403908f81 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -907,6 +907,104 @@ RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS ) +//Justice (emaged only) +/datum/design/justice_chassis + name = "Exosuit Chassis (\"Justice\")" + id = "justice_chassis" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/chassis/justice + materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*20) + construction_time = 10 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_torso + name = "Exosuit Torso (\"Justice\")" + id = "justice_torso" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_torso + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 50, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 5, + ) + construction_time = 30 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_left_arm + name = "Exosuit Left Arm (\"Justice\")" + id = "justice_left_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_left_arm + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2, + ) + construction_time = 10 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_right_arm + name = "Exosuit Right Arm (\"Justice\")" + id = "justice_right_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_right_arm + materials = list( + /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, + /datum/material/silver=SHEET_MATERIAL_AMOUNT*2, + ) + construction_time = 10 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_left_leg + name = "Exosuit Left Leg (\"Justice\")" + id = "justice_left_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_left_leg + materials = list( + /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, + /datum/material/titanium=SHEET_MATERIAL_AMOUNT*2, + ) + construction_time = 10 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_right_leg + name = "Exosuit Right Leg (\"Justice\")" + id = "justice_right_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_right_leg + materials = list( + /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, + /datum/material/titanium=SHEET_MATERIAL_AMOUNT*2, + ) + construction_time = 10 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + +/datum/design/justice_armor + name = "Exosuit Armor (\"Justice\")" + id = "justice_armor" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/justice_armor + materials = list( + /datum/material/silver=SHEET_MATERIAL_AMOUNT*10, + /datum/material/titanium=SHEET_MATERIAL_AMOUNT*10, + /datum/material/plastic=SHEET_MATERIAL_AMOUNT*5, + /datum/material/diamond=SHEET_MATERIAL_AMOUNT*1, + ) + construction_time = 20 SECONDS + category = list( + RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) + //Clarke /datum/design/clarke_chassis name = "Exosuit Chassis (\"Clarke\")" @@ -2338,14 +2436,14 @@ RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY ) -/datum/design/module/mod_organ_thrower - name = "Organ Thrower Module" - id = "mod_organ_thrower" +/datum/design/module/mod_organizer + name = "Organizer Module" + id = "mod_organizer" materials = list( /datum/material/iron =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT, ) - build_path = /obj/item/mod/module/organ_thrower + build_path = /obj/item/mod/module/organizer category = list( RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL ) @@ -2512,6 +2610,18 @@ RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY ) +/datum/design/module/mirage + name = "Mirage Grenade Dispenser Module" + id = "mod_mirage_grenade" + materials = list( + /datum/material/iron =HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/bluespace =HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/mod/module/dispenser/mirage + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) + //MODsuit bepis modules /datum/design/module/disposal name = "Disposal Connector Module" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index cbd05593a3c11..27dbbca1d179c 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -566,6 +566,24 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/cyberimp_herculean + name = "Herculean Gravitronic Spinal Implant" + desc = "This gravitronic spinal interface allows the user to reduce the impact of gravity on their body, effectively improving athletic performance." + id = "ci-herculean" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + construction_time = 4 SECONDS + materials = list( + /datum/material/iron =SMALL_MATERIAL_AMOUNT*5, + /datum/material/titanium=SMALL_MATERIAL_AMOUNT*3, + /datum/material/gold=SMALL_MATERIAL_AMOUNT*3, + /datum/material/diamond =SMALL_MATERIAL_AMOUNT*5, + ) + build_path = /obj/item/organ/internal/cyberimp/chest/spine + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_HEALTH + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are starving." diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 0ea6c41e16448..d9feba5179e08 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -166,18 +166,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE -/datum/design/air_horn - name = "Air Horn" - desc = "Damn son, where'd you find this?" - id = "air_horn" - build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2, /datum/material/bananium =HALF_SHEET_MATERIAL_AMOUNT) - build_path = /obj/item/bikehorn/airhorn - category = list( - RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE - ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE - /datum/design/clown_firing_pin name = "Hilarious Firing Pin" id = "clown_firing_pin" diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index 649d0c5c09dfc..901bc304dc1d7 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -226,17 +226,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE -/datum/design/plumbing_rcd_sci - name = "Research Plumbing Constructor" - id = "plumbing_rcd_sci" - build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT*37.5, /datum/material/glass =SHEET_MATERIAL_AMOUNT*18.75, /datum/material/plastic =HALF_SHEET_MATERIAL_AMOUNT) - build_path = /obj/item/construction/plumbing/research - category = list( - RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING - ) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE - /datum/design/plumbing_rcd_service name = "Service Plumbing Constructor" id = "plumbing_rcd_service" diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 35d95d82d3047..f0e0978a6074a 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -449,3 +449,15 @@ RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/photon_cannon + name = "Photon Cannon Part Kit (Nonlethal)" + desc = "A kit to reverse-engineer a photon cannon, a weapon that generates a shortly-lived miniature sun. Technically brightens up the room, effectively blinds everyone in it. Requires a flux anomaly core to finish." + id = "photon_cannon" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 7, /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5) + build_path = /obj/item/weaponcrafting/gunkit/photon + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 4a08ae44df16c..9268dd90b8049 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -96,7 +96,6 @@ /obj/item/construction/rcd, /obj/item/grenade, /obj/item/aicard, - /obj/item/storage/backpack/holding, /obj/item/slime_extract, /obj/item/transfer_valve)) @@ -254,16 +253,16 @@ visible_message(span_notice("[exp_on] is gripped in just the right way, enhancing its focus.")) malfunction_probability_coeff_modifier++ RefreshParts() //recalculate malfunction_probability_coeff - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] malfunctions and destroys [exp_on], lashing its arms out at nearby people!")) for(var/mob/living/m in oview(1, src)) m.apply_damage(15, BRUTE, pick(BODY_ZONE_HEAD,BODY_ZONE_CHEST,BODY_ZONE_CHEST)) investigate_log("Experimentor dealt minor brute to [m].", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions!")) exp = SCANTYPE_OBLITERATE - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] malfunctions, throwing the [exp_on]!")) var/mob/living/target = locate(/mob/living) in oview(7,src) if(target) @@ -275,23 +274,23 @@ //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_IRRADIATE) visible_message(span_danger("[src] reflects radioactive rays at [exp_on]!")) - if(prob(EFFECT_PROB_LOW) && criticalReaction) + if(prob(EFFECT_PROB_VERYLOW) && criticalReaction) visible_message(span_notice("[exp_on] has activated an unknown subroutine!")) cloneMode = TRUE investigate_log("Experimentor has made a clone of [exp_on]", INVESTIGATE_EXPERIMENTOR) ejectItem() - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] malfunctions, melting [exp_on] and leaking radiation!")) radiation_pulse(src, max_range = 6, threshold = 0.3) ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, spewing toxic waste!")) for(var/turf/T in oview(1, src)) if(!T.density) if(prob(EFFECT_PROB_VERYHIGH) && !(locate(/obj/effect/decal/cleanable/greenglow) in T)) var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T) reagentdecal.reagents.add_reagent(/datum/reagent/uranium/radium, 7) - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) var/savedName = "[exp_on]" ejectItem(TRUE) var/newPath = text2path(pick_weight(valid_items())) @@ -308,7 +307,7 @@ if(prob(EFFECT_PROB_LOW) && criticalReaction) visible_message(span_notice("[exp_on] achieves the perfect mix!")) new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src)))) - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] destroys [exp_on], leaking dangerous gas!")) chosenchem = pick(/datum/reagent/carbon,/datum/reagent/uranium/radium,/datum/reagent/toxin,/datum/reagent/consumable/condensedcapsaicin,/datum/reagent/drug/mushroomhallucinogen,/datum/reagent/drug/space_drugs,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/ethanol/beepsky_smash) var/datum/reagents/tmp_holder = new/datum/reagents(50) @@ -321,7 +320,7 @@ smoke.start() qdel(tmp_holder) ejectItem(TRUE) - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src]'s chemical chamber has sprung a leak!")) chosenchem = pick(/datum/reagent/mutationtoxin/classic,/datum/reagent/cyborg_mutation_nanomachines,/datum/reagent/toxin/acid) var/datum/reagents/tmp_holder = new/datum/reagents(50) @@ -335,10 +334,10 @@ ejectItem(TRUE) warn_admins(usr, "[chosenchem] smoke") investigate_log("Experimentor has released [chosenchem] smoke!", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, spewing harmless gas.")) throwSmoke(loc) - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] melts [exp_on], ionizing the air around it!")) empulse(loc, 4, 6) investigate_log("Experimentor has generated an Electromagnetic Pulse.", INVESTIGATE_EXPERIMENTOR) @@ -356,7 +355,7 @@ C.name = "Cup of Suspicious Liquid" C.desc = "It has a large hazard symbol printed on the side in fading ink." investigate_log("Experimentor has made a cup of [chosenchem] coffee.", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) var/turf/start = get_turf(src) var/mob/M = locate(/mob/living) in view(src, 3) var/turf/MT = get_turf(M) @@ -366,12 +365,12 @@ var/obj/projectile/magic/fireball/FB = new /obj/projectile/magic/fireball(start) FB.preparePixelProjectile(MT, start) FB.fire() - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] malfunctions, melting [exp_on] and releasing a burst of flame!")) explosion(src, devastation_range = -1, flame_range = 2, adminlog = FALSE) investigate_log("Experimentor started a fire.", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, melting [exp_on] and leaking hot air!")) var/datum/gas_mixture/env = loc.return_air() if(env) @@ -380,7 +379,7 @@ air_update_turf(FALSE, FALSE) investigate_log("Experimentor has released hot air.", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, activating its emergency coolant systems!")) throwSmoke(loc) for(var/mob/living/m in oview(1, src)) @@ -400,7 +399,7 @@ C.name = "Cup of Suspicious Liquid" C.desc = "It has a large hazard symbol printed on the side in fading ink." investigate_log("Experimentor has made a cup of [chosenchem] coffee.", INVESTIGATE_EXPERIMENTOR) - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!")) var/datum/reagents/tmp_holder = new/datum/reagents(50) tmp_holder.my_atom = src @@ -412,7 +411,7 @@ smoke.start() qdel(tmp_holder) ejectItem(TRUE) - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, shattering [exp_on] and leaking cold air!")) var/datum/gas_mixture/env = loc.return_air() if(env) @@ -421,7 +420,7 @@ air_update_turf(FALSE, FALSE) investigate_log("Experimentor has released cold air.", INVESTIGATE_EXPERIMENTOR) ejectItem(TRUE) - else if(prob(EFFECT_PROB_MEDIUM-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_MEDIUM * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_warning("[src] malfunctions, releasing a flurry of chilly air as [exp_on] pops out!")) var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(0, holder = src, location = loc) @@ -433,14 +432,14 @@ if(prob(EFFECT_PROB_LOW) && criticalReaction) visible_message(span_warning("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!")) new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src)))) - else if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src]'s crusher goes way too many levels too high, crushing right through space-time!")) playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE, -3) investigate_log("Experimentor has triggered the 'throw things' reaction.", INVESTIGATE_EXPERIMENTOR) for(var/atom/movable/AM in oview(7,src)) if(!AM.anchored) AM.throw_at(src,10,1) - else if(prob(EFFECT_PROB_LOW-malfunction_probability_coeff)) + else if(prob(EFFECT_PROB_LOW * (100 - malfunction_probability_coeff) * 0.01)) visible_message(span_danger("[src]'s crusher goes one level too high, crushing right into space-time!")) playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE, -3) investigate_log("Experimentor has triggered the 'minor throw things' reaction.", INVESTIGATE_EXPERIMENTOR) @@ -461,13 +460,13 @@ if(exp == SCANTYPE_DISCOVER) visible_message(span_notice("[src] scans the [exp_on], revealing its true nature!")) playsound(src, 'sound/effects/supermatter.ogg', 50, 3, -1) - var/obj/item/relic/R = loaded_item - R.reveal() - investigate_log("Experimentor has revealed a relic with [span_danger("[R.realProc]")] effect.", INVESTIGATE_EXPERIMENTOR) + var/obj/item/relic/loaded_artifact = loaded_item + loaded_artifact.reveal() + investigate_log("Experimentor has revealed a relic with [span_danger("[loaded_artifact.hidden_power]")] effect.", INVESTIGATE_EXPERIMENTOR) ejectItem() //Global reactions - if(prob(EFFECT_PROB_VERYLOW-malfunction_probability_coeff) && loaded_item) + if(prob(EFFECT_PROB_VERYLOW * (100 - malfunction_probability_coeff) * 0.01) && loaded_item) var/globalMalf = rand(1,100) if(globalMalf < 15) visible_message(span_warning("[src]'s onboard detection system has malfunctioned!")) @@ -553,34 +552,80 @@ #undef FAIL -//////////////////////////////////SPECIAL ITEMS//////////////////////////////////////// +// Relic \\ /obj/item/relic name = "strange object" desc = "What mysteries could this hold? Maybe Research & Development could find out." - icon = 'icons/obj/devices/artifacts.dmi' - var/realName = "defined object" - var/revealed = FALSE - var/realProc - var/reset_timer = 60 + icon = 'icons/obj/devices/artefacts.dmi' + icon_state = "debug_artefact" + //The name this artefact will have when it's activated. + var/real_name = "artefact" + //Has this artefact been activated? + var/activated = FALSE + //What effect this artefact has when used. Randomly determined when activated. + var/hidden_power + //Minimum possible cooldown. + var/min_cooldown = 6 SECONDS + //Max possible cooldown. + var/max_cooldown = 30 SECONDS + //Cooldown length. Randomly determined at activation if it isn't determined here. + var/cooldown_timer COOLDOWN_DECLARE(cooldown) + //What visual theme this artefact has. Current possible choices: "prototype", "necrotech" + var/artifact_theme = "prototype" /obj/item/relic/Initialize(mapload) . = ..() - icon_state = pick("prototype1","prototype2","prototype3","prototype4","prototype5","prototype6","prototype7","prototype8","prototype9") - realName = "[pick("broken","twisted","spun","improved","silly","regular","badly made")] [pick("device","object","toy","illegal tech","weapon")]" + random_themed_appearance() + +/obj/item/relic/proc/random_themed_appearance() + var/themed_name_prefix + var/themed_name_suffix + if(artifact_theme == "prototype") + icon_state = pick("prototype1", "prototype2", "prototype3", "prototype4", "prototype5", "prototype6", "prototype7", "prototype8","prototype9") + themed_name_prefix = pick("experimental","prototype","artificial","handcrafted","ramshackle","odd") + themed_name_suffix = pick("device","assembly","gadget","gizmo","contraption","machine","widget","object") + real_name = "[pick(themed_name_prefix)] [pick(themed_name_suffix)]" + name = "strange [pick(themed_name_suffix)]" + if(artifact_theme == "necrotech") + icon_state = pick("necrotech1", "necrotech2", "necrotech3", "necrotech4", "necrotech5", "necrotech6") + themed_name_prefix = pick("dark","bloodied","unholy","archeotechnological","dismal","ruined","thrumming") + themed_name_suffix = pick("instrument","shard","fetish","bibelot","trinket","offering","relic") + real_name = "[pick(themed_name_prefix)] [pick(themed_name_suffix)]" + name = "strange relic" + update_appearance() +/obj/item/relic/lavaland + name = "strange relic" + artifact_theme = "necrotech" /obj/item/relic/proc/reveal() - if(revealed) //Re-rolling your relics seems a bit overpowered, yes? + if(activated) //no rerolling return - revealed = TRUE - name = realName - reset_timer = rand(reset_timer, reset_timer * 5) - realProc = pick(PROC_REF(teleport), PROC_REF(explode), PROC_REF(rapidDupe), PROC_REF(petSpray), PROC_REF(flash), PROC_REF(clean), PROC_REF(corgicannon)) + activated = TRUE + name = real_name + if(!cooldown_timer) + cooldown_timer = rand(min_cooldown, max_cooldown) + if(!hidden_power) + hidden_power = pick( + PROC_REF(corgi_cannon), + PROC_REF(cleaning_foam), + PROC_REF(flashbanger), + PROC_REF(summon_animals), + PROC_REF(uncontrolled_teleport), + PROC_REF(heat_and_explode), + PROC_REF(rapid_self_dupe), + PROC_REF(drink_dispenser), + PROC_REF(tummy_ache), + PROC_REF(charger), + PROC_REF(hugger), + PROC_REF(dimensional_shift), + PROC_REF(disguiser), + ) /obj/item/relic/attack_self(mob/user) - if(!revealed) + if(!activated) to_chat(user, span_notice("You aren't quite sure what this is. Maybe R&D knows what to do with it?")) return if(!COOLDOWN_FINISHED(src, cooldown)) @@ -588,40 +633,39 @@ return if(loc != user) return - COOLDOWN_START(src, cooldown, reset_timer) - call(src,realProc)(user) - -//////////////// RELIC PROCS ///////////////////////////// + COOLDOWN_START(src, cooldown, cooldown_timer) + call(src, hidden_power)(user) -/obj/item/relic/proc/throwSmoke(turf/where) +/obj/item/relic/proc/throw_smoke(turf/where) var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(0, holder = src, location = get_turf(where)) smoke.start() -/obj/item/relic/proc/corgicannon(mob/user) +// Artefact Powers \\ + +/obj/item/relic/proc/corgi_cannon(mob/user) playsound(src, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) var/mob/living/basic/pet/dog/corgi/sad_corgi = new(get_turf(user)) - sad_corgi.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, PROC_REF(throwSmoke), sad_corgi)) + sad_corgi.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, PROC_REF(throw_smoke), sad_corgi)) warn_admins(user, "Corgi Cannon", 0) -/obj/item/relic/proc/clean(mob/user) +/obj/item/relic/proc/cleaning_foam(mob/user) playsound(src, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - var/obj/item/grenade/chem_grenade/cleaner/CL = new/obj/item/grenade/chem_grenade/cleaner(get_turf(user)) - CL.detonate() - qdel(CL) + var/obj/item/grenade/chem_grenade/cleaner/spawned_foamer = new/obj/item/grenade/chem_grenade/cleaner(get_turf(user)) + spawned_foamer.detonate() + qdel(spawned_foamer) warn_admins(user, "Foam", 0) -/obj/item/relic/proc/flash(mob/user) +/obj/item/relic/proc/flashbanger(mob/user) playsound(src, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - var/obj/item/grenade/flashbang/CB = new/obj/item/grenade/flashbang(user.loc) - CB.detonate() + var/obj/item/grenade/flashbang/spawned_flashbang = new/obj/item/grenade/flashbang(user.loc) + spawned_flashbang.detonate() warn_admins(user, "Flash") -/obj/item/relic/proc/petSpray(mob/user) +/obj/item/relic/proc/summon_animals(mob/user) var/message = span_danger("[src] begins to shake, and in the distance the sound of rampaging animals arises!") visible_message(message) to_chat(user, message) - var/static/list/valid_animals = list( /mob/living/basic/bear, /mob/living/basic/bee, @@ -637,42 +681,40 @@ /mob/living/basic/pet/fox, ) for(var/counter in 1 to rand(1, 25)) - var/mobType = pick(valid_animals) - new mobType(get_turf(src)) - + var/animal_spawn = pick(valid_animals) + new animal_spawn(get_turf(src)) warn_admins(user, "Mass Mob Spawn") if(prob(60)) to_chat(user, span_warning("[src] falls apart!")) qdel(src) -/obj/item/relic/proc/rapidDupe(mob/user) +/obj/item/relic/proc/rapid_self_dupe(mob/user) audible_message("[src] emits a loud pop!") - var/list/dupes = list() + var/list/dummy_artifacts = list() for(var/counter in 1 to rand(5,10)) - var/obj/item/relic/R = new type(get_turf(src)) - R.name = name - R.desc = desc - R.realName = realName - R.realProc = realProc - R.revealed = TRUE - dupes += R - R.throw_at(pick(oview(7,get_turf(src))),10,1) - - QDEL_LIST_IN(dupes, rand(10, 100)) + var/obj/item/relic/duped = new type(get_turf(src)) + duped.name = name + duped.desc = desc + duped.real_name = real_name + duped.hidden_power = hidden_power + duped.activated = TRUE + dummy_artifacts += duped + duped.throw_at(pick(oview(7,get_turf(src))),10,1) + QDEL_LIST_IN(dummy_artifacts, rand(1 SECONDS, 10 SECONDS)) warn_admins(user, "Rapid duplicator", 0) -/obj/item/relic/proc/explode(mob/user) +/obj/item/relic/proc/heat_and_explode(mob/user) to_chat(user, span_danger("[src] begins to heat up!")) - addtimer(CALLBACK(src, PROC_REF(do_explode), user), rand(3.5 SECONDS, 10 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(blow_up), user), rand(3.5 SECONDS, 10 SECONDS)) -/obj/item/relic/proc/do_explode(mob/user) +/obj/item/relic/proc/blow_up(mob/user) if(loc == user) visible_message(span_notice("\The [src]'s top opens, releasing a powerful blast!")) explosion(src, heavy_impact_range = rand(1,5), light_impact_range = rand(1,5), flame_range = 2, flash_range = rand(1,5), adminlog = TRUE) warn_admins(user, "Explosion") qdel(src) //Comment this line to produce a light grenade (the bomb that keeps on exploding when used)!! -/obj/item/relic/proc/teleport(mob/user) +/obj/item/relic/proc/uncontrolled_teleport(mob/user) to_chat(user, span_notice("[src] begins to vibrate!")) addtimer(CALLBACK(src, PROC_REF(do_the_teleport), user), rand(1 SECONDS, 3 SECONDS)) @@ -680,16 +722,177 @@ var/turf/userturf = get_turf(user) if(loc == user && !is_centcom_level(userturf.z)) //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you! visible_message(span_notice("[src] twists and bends, relocating itself!")) - throwSmoke(userturf) + throw_smoke(userturf) do_teleport(user, userturf, 8, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) - throwSmoke(get_turf(user)) + throw_smoke(get_turf(user)) warn_admins(user, "Teleport", 0) +// Creates a glass and fills it up with a drink. +/obj/item/relic/proc/drink_dispenser(mob/user) + var/obj/item/reagent_containers/cup/glass/drinkingglass/freebie = new(get_step_rand(user)) + playsound(freebie, 'sound/effects/phasein.ogg', rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + addtimer(CALLBACK(src, PROC_REF(dispense_drink), freebie), 0.5 SECONDS) + +/obj/item/relic/proc/dispense_drink(obj/item/reagent_containers/cup/glass/glasser) + glasser.reagents.add_reagent(get_random_drink_id(), rand(glasser.volume * 0.3, glasser.volume)) + playsound(glasser, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + throw_smoke(get_turf(glasser)) + +// Scrambles your organs. 33% chance to delete after use. +/obj/item/relic/proc/tummy_ache(mob/user) + new /obj/effect/temp_visual/circle_wave/bioscrambler/light(get_turf(src)) + to_chat(user, span_notice("Your stomach starts growling...")) + addtimer(CALLBACK(src, PROC_REF(scrambliticus), user), rand(1 SECONDS, 3 SECONDS)) // throw it away! + +/obj/item/relic/proc/scrambliticus(mob/user) + new /obj/effect/temp_visual/circle_wave/bioscrambler/light(get_turf(src)) + playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) + for(var/mob/living/carbon/nearby in hearers(2, src)) + nearby.bioscramble(name) + playsound(nearby, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + throw_smoke(get_turf(nearby)) + to_chat(nearby, span_notice("You feel weird.")) + if(prob(33)) + qdel(src) + +// Charges an item or two in your inventory. Also yourself. +/obj/item/relic/proc/charger(mob/living/user) + to_chat(user, span_danger("You're recharged!")) + var/stunner = 1.25 SECONDS + if(iscarbon(user)) + var/mob/living/carbon/carboner = user + carboner.electrocute_act(15, src, flags = SHOCK_NOGLOVES, stun_duration = stunner) + else + user.electrocute_act(15, src, flags = SHOCK_NOGLOVES) + playsound(user, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + + var/list/chargeable_batteries = list() + for(var/obj/item/stock_parts/power_store/C in user.get_all_contents()) + if(C.charge < (C.maxcharge * 0.95)) // otherwise the PDA always gets recharged + chargeable_batteries |= C + + lightning_fx(user, stunner) + var/recharges = rand(1, 2) + if(!length(chargeable_batteries)) + to_chat(user, span_notice("You have a strange feeling for a moment, but then it passes.")) + return + for(var/obj/item/stock_parts/power_store/to_charge as anything in chargeable_batteries) + if(!recharges) + return + recharges-- + to_charge = pick(chargeable_batteries) + to_charge.charge = to_charge.maxcharge + // The device powered by the cell is assumed to be its location. + var/obj/device = to_charge.loc + // If it's not an object, or the loc's assigned power_store isn't the cell, undo. + if(!istype(device) || (device.get_cell() != to_charge)) + device = to_charge + device.update_appearance(UPDATE_ICON|UPDATE_OVERLAYS) + to_chat(user, span_notice("[device] feels energized!")) + lightning_fx(device, 0.8 SECONDS) + +/obj/item/relic/proc/lightning_fx(atom/shocker, time) + var/lightning = mutable_appearance('icons/effects/effects.dmi', "electricity3", layer = ABOVE_MOB_LAYER) + shocker.add_overlay(lightning) + addtimer(CALLBACK(src, PROC_REF(cut_the_overlay), shocker, lightning), time) + +/obj/item/relic/proc/cut_the_overlay(atom/shocker, lightning) + shocker.cut_overlay(lightning) + +// Hugs/shakes everyone in range! +/obj/item/relic/proc/hugger(mob/user) + var/list/mob/living/carbon/huggeds = oviewers(3, user) + for(var/mob/living/carbon/victim in huggeds) + victim.help_shake_act(user, force_friendly = TRUE) + new /obj/effect/temp_visual/heart(victim.loc) + if(length(huggeds)) + to_chat(user, span_nicegreen("You feel friendly!")) + else + to_chat(user, pick(span_notice("You hug yourself, for some reason."), span_notice("You have a strange feeling for a moment, but then it passes."))) + +// Converts a 3x3 area into a random dimensional theme. +/obj/item/relic/proc/dimensional_shift(mob/user) + var/new_theme_path = pick(subtypesof(/datum/dimension_theme)) + var/datum/dimension_theme/shifter = SSmaterials.dimensional_themes[new_theme_path] + for(var/turf/shiftee in range(1, user)) + shifter.apply_theme(shiftee, show_effect = TRUE) + qdel(shifter) + // prevent *total* spam conversion + min_cooldown += 2 SECONDS + max_cooldown += 2 SECONDS + +// Replaces your clothing with a random costume, and your ID with a cardboard one. +// TODO: make them part of the same kit (lobster hat, lobster suit) +/obj/item/relic/proc/disguiser(mob/user) + if(!iscarbon(user)) + to_chat(user, span_notice("You have a strange feeling for a moment, but then it passes.")) + return + + if(prob(80)) // >:) + ADD_TRAIT(user, TRAIT_NO_JUMPSUIT, REF(src)) // prevent dropping pockets & belt + + // magic trick! + playsound(user, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + throw_smoke(user) + + // carbons always get a hat at least + var/mob/living/carbon/carbonius = user + //hat + var/obj/item/clothing/head/costume/disguise_hat = roll_costume(/obj/item/clothing/head/costume, HIDEMASK) + carbonius.dropItemToGround(carbonius.head) + carbonius.equip_to_slot_or_del(disguise_hat, ITEM_SLOT_HEAD) + if(!ishuman(carbonius)) + to_chat(user, span_notice("You have a peculiar feeling for a moment, but then it passes.")) + return + + var/mob/living/carbon/human/humerus = carbonius + // uniform + var/obj/item/clothing/under/costume/disguise_uniform = roll_costume(/obj/item/clothing/under/costume) + humerus.dropItemToGround(humerus.w_uniform) + humerus.equip_to_slot_or_del(disguise_uniform, ITEM_SLOT_ICLOTHING) + // suit + var/obj/item/clothing/suit/costume/disguise_suit = roll_costume(/obj/item/clothing/suit/costume) + humerus.dropItemToGround(humerus.wear_suit) + humerus.equip_to_slot_or_del(disguise_suit, ITEM_SLOT_OCLOTHING) + // id + var/obj/item/card/cardboard/card_id = new() + humerus.dropItemToGround(humerus.wear_id) + humerus.equip_to_slot_or_del(card_id, ITEM_SLOT_ID) + + // edit the card to a random job & name + if(!card_id) + return + card_id.scribbled_name = "[pick(GLOB.first_names)] [pick(GLOB.last_names)]" + card_id.update_name() + card_id.details_colors = list(ready_random_color(), ready_random_color(), ready_random_color()) + card_id.item_flags |= DROPDEL + + var/datum/id_trim/random_trim = pick(subtypesof(/datum/id_trim)) // this can pick silly things + random_trim = new random_trim() + if(random_trim.trim_state && random_trim.assignment) + card_id.scribbled_trim = replacetext(random_trim.trim_state, "trim_", "cardboard_") + card_id.scribbled_assignment = random_trim.assignment + card_id.update_overlays() + REMOVE_TRAIT(user, TRAIT_NO_JUMPSUIT, REF(src)) + +/obj/item/relic/proc/roll_costume(type, flagcheck) + var/list/candidates = list() + for(var/obj/item/thingy as anything in subtypesof(type)) + if(flagcheck && !(initial(thingy.flags_inv) & flagcheck)) + continue + if(isnull(initial(thingy.icon_state))) + continue + candidates |= thingy + var/obj/item/new_costume = pick(candidates) + new_costume = new new_costume() + new_costume.item_flags |= DROPDEL + return new_costume + //Admin Warning proc for relics -/obj/item/relic/proc/warn_admins(mob/user, RelicType, priority = 1) - var/turf/T = get_turf(src) - var/log_msg = "[RelicType] relic used by [key_name(user)] in [AREACOORD(T)]" +/obj/item/relic/proc/warn_admins(mob/user, relic_type, priority = 1) + var/turf/location = get_turf(src) + var/log_msg = "[relic_type] relic used by [key_name(user)] in [AREACOORD(location)]" if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK! - message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + message_admins("[relic_type] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(location)]") log_game(log_msg) investigate_log(log_msg, "experimentor") diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index cc8e842f18e9a..91cf89582d369 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -96,6 +96,20 @@ Nothing else in the console has ID requirements. stored_research = tool.buffer return TRUE +/obj/machinery/computer/rdconsole/proc/enqueue_node(id, mob/user) + if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) + say("Node enqueue failed: Either no techweb is found, node is already researched or is not available!") + return FALSE + stored_research.enqueue_node(id, user) + return TRUE + +/obj/machinery/computer/rdconsole/proc/dequeue_node(id, mob/user) + if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) + say("Node dequeue failed: Either no techweb is found, node is already researched or is not available!") + return FALSE + stored_research.dequeue_node(id, user) + return TRUE + /obj/machinery/computer/rdconsole/proc/research_node(id, mob/user) if(!stored_research || !stored_research.available_nodes[id] || stored_research.researched_nodes[id]) say("Node unlock failed: Either no techweb is found, node is already researched or is not available!") @@ -171,6 +185,7 @@ Nothing else in the console has ID requirements. return data data += list( "nodes" = list(), + "queue_nodes" = stored_research.research_queue_nodes, "experiments" = list(), "researched_designs" = stored_research.researched_designs, "points" = stored_research.research_points, @@ -194,6 +209,10 @@ Nothing else in the console has ID requirements. // Serialize all nodes to display for(var/v in stored_research.tiers) var/datum/techweb_node/n = SSresearch.techweb_node_by_id(v) + var/enqueued_by_user = FALSE + + if((v in stored_research.research_queue_nodes) && stored_research.research_queue_nodes[v] == user) + enqueued_by_user = TRUE // Ensure node is supposed to be visible if (stored_research.hidden_nodes[v]) @@ -201,8 +220,11 @@ Nothing else in the console has ID requirements. data["nodes"] += list(list( "id" = n.id, + "is_free" = n.is_free(stored_research), "can_unlock" = stored_research.can_unlock_node(n), + "have_experiments_done" = stored_research.have_experiments_for_node(n), "tier" = stored_research.tiers[n.id], + "enqueued_by_user" = enqueued_by_user )) // Get experiments and serialize them @@ -322,6 +344,12 @@ Nothing else in the console has ID requirements. if ("researchNode") research_node(params["node_id"], usr) return TRUE + if ("enqueueNode") + enqueue_node(params["node_id"], usr) + return TRUE + if ("dequeueNode") + dequeue_node(params["node_id"], usr) + return TRUE if ("ejectDisk") eject_disk(params["type"]) return TRUE diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 3c920f6b9a6fe..a85c4b82c1725 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -70,6 +70,12 @@ * Filled with nulls on init, populated only on publication. */ var/list/published_papers + /** + * Assoc list of nodes queued for automatic research when there are enough points available + * research_queue_nodes[node_id] = user_enqueued + */ + var/list/research_queue_nodes = list() + /datum/techweb/New() SSresearch.techwebs += src @@ -325,6 +331,40 @@ /datum/techweb/proc/printout_points() return techweb_point_display_generic(research_points) +/datum/techweb/proc/enqueue_node(id, mob/user) + var/mob/living/carbon/human/human_user = user + var/is_rd = FALSE + if(human_user.wear_id) + var/list/access = human_user.wear_id.GetAccess() + if(ACCESS_RD in access) + is_rd = TRUE + + if(id in research_queue_nodes) + if(is_rd) + research_queue_nodes.Remove(id) + else + return FALSE + + for(var/node_id in research_queue_nodes) + if(research_queue_nodes[node_id] == user) + research_queue_nodes.Remove(node_id) + + if (is_rd) + research_queue_nodes.Insert(1, id) + research_queue_nodes[id] = user + + return TRUE + +/datum/techweb/proc/dequeue_node(id, mob/user) + if(!(id in research_queue_nodes)) + return FALSE + if(research_queue_nodes[id] != user) + return FALSE + + research_queue_nodes.Remove(id) + + return TRUE + /datum/techweb/proc/research_node_id(id, force, auto_update_points, get_that_dosh_id) return research_node(SSresearch.techweb_node_by_id(id), force, auto_update_points, get_that_dosh_id) @@ -377,6 +417,10 @@ if (MC_RUNNING()) log_research(log_message) + // Dequeue + if(node.id in research_queue_nodes) + research_queue_nodes.Remove(node.id) + return TRUE /datum/techweb/proc/unresearch_node_id(id) diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index c36eb88627137..9b26ca860d88d 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -40,6 +40,8 @@ var/list/experiments_to_unlock = list() /// Whether or not this node should show on the wiki var/show_on_wiki = TRUE + /// Hidden Mech nodes unlocked when mech fabricator emaged. + var/illegal_mech_node = FALSE /datum/techweb_node/error_node id = "ERROR" @@ -93,6 +95,17 @@ return actual_costs +/datum/techweb_node/proc/is_free(datum/techweb/host) + var/list/costs = get_price(host) + var/total_points = 0 + + for(var/point_type in costs) + total_points += costs[point_type] + + if(total_points == 0) + return TRUE + return FALSE + /datum/techweb_node/proc/price_display(datum/techweb/TN) return techweb_point_display_generic(get_price(TN)) diff --git a/code/modules/research/techweb/nodes/atmos_nodes.dm b/code/modules/research/techweb/nodes/atmos_nodes.dm index a35c5f4c185ea..ef4fee5ed92a7 100644 --- a/code/modules/research/techweb/nodes/atmos_nodes.dm +++ b/code/modules/research/techweb/nodes/atmos_nodes.dm @@ -8,6 +8,7 @@ "atmosalerts", "thermomachine", "space_heater", + "scrubber", "generic_tank", "oxygen_tank", "plasma_tank", @@ -27,6 +28,7 @@ prereq_ids = list(TECHWEB_NODE_ATMOS) design_ids = list( "tank_compressor", + "pump", "emergency_oxygen", "emergency_oxygen_engi", "power_turbine_console", @@ -47,8 +49,8 @@ description = "Experiments with high-pressure gases and electricity resulting in crystallization and controlled plasma reactions." prereq_ids = list(TECHWEB_NODE_GAS_COMPRESSION, TECHWEB_NODE_ENERGY_MANIPULATION) design_ids = list( - "crystallizer", "electrolyzer", + "pipe_scrubber", "pacman", "mech_generator", "plasmacutter", @@ -72,6 +74,7 @@ "bolter_wrench", "rpd_loaded", "engine_goggles", + "crystallizer", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) required_experiments = list(/datum/experiment/ordnance/gaseous/bz) @@ -89,6 +92,7 @@ "jawsoflife", "rangedanalyzer", "rtd_loaded", + "mech_rcd", "rcd_loaded", "rcd_ammo", "weldingmask", diff --git a/code/modules/research/techweb/nodes/bepis_nodes.dm b/code/modules/research/techweb/nodes/bepis_nodes.dm index ad5bb4c62bb1b..baefd8c11d048 100644 --- a/code/modules/research/techweb/nodes/bepis_nodes.dm +++ b/code/modules/research/techweb/nodes/bepis_nodes.dm @@ -5,6 +5,7 @@ design_ids = list( "bright_helmet", "rld_mini", + "photon_cannon", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) hidden = TRUE diff --git a/code/modules/research/techweb/nodes/biology_nodes.dm b/code/modules/research/techweb/nodes/biology_nodes.dm index f8ee05c042c2e..3599dfb9fc5a1 100644 --- a/code/modules/research/techweb/nodes/biology_nodes.dm +++ b/code/modules/research/techweb/nodes/biology_nodes.dm @@ -23,6 +23,7 @@ design_ids = list( "limbgrower", "pandemic", + "vatgrower", "petri_dish", "swab", "biopsy_tool", @@ -43,7 +44,7 @@ "limbdesign_plasmaman", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) - required_experiments = list(/datum/experiment/scanning/random/cytology) + required_experiments = list(/datum/experiment/scanning/cytology/slime) /datum/techweb_node/gene_engineering id = TECHWEB_NODE_GENE_ENGINEERING @@ -58,7 +59,45 @@ "mod_dna_lock", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) - discount_experiments = list( - /datum/experiment/scanning/random/plants/traits = TECHWEB_TIER_2_POINTS, - /datum/experiment/scanning/points/slime/hard = TECHWEB_TIER_2_POINTS, - ) + discount_experiments = list(/datum/experiment/scanning/people/mutant = TECHWEB_TIER_4_POINTS) + +// Botany root node +/datum/techweb_node/botany_equip + id = TECHWEB_NODE_BOTANY_EQUIP + starting_node = TRUE + display_name = "Botany Equipment" + description = "Essential tools for maintaining onboard gardens, supporting plant growth in the unique environment of the space station." + design_ids = list( + "seed_extractor", + "plant_analyzer", + "watering_can", + "spade", + "cultivator", + "secateurs", + "hatchet", + ) + +/datum/techweb_node/hydroponics + id = TECHWEB_NODE_HYDROPONICS + display_name = "Hydroponics" + description = "Research into advanced hydroponic systems for efficient and sustainable plant cultivation." + prereq_ids = list(TECHWEB_NODE_BOTANY_EQUIP, TECHWEB_NODE_CHEM_SYNTHESIS) + design_ids = list( + "biogenerator", + "hydro_tray", + "portaseeder", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) + +/datum/techweb_node/selection + id = TECHWEB_NODE_SELECTION + display_name = "Artificial Selection" + description = "Advancement in plant cultivation techniques through artificial selection, enabling precise manipulation of plant DNA." + prereq_ids = list(TECHWEB_NODE_HYDROPONICS) + design_ids = list( + "flora_gun", + "gene_shears", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) + required_experiments = list(/datum/experiment/scanning/random/plants/wild) + discount_experiments = list(/datum/experiment/scanning/random/plants/traits = TECHWEB_TIER_3_POINTS) diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm index 447ee2dc7f3b9..0a4fa91429484 100644 --- a/code/modules/research/techweb/nodes/cyborg_nodes.dm +++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm @@ -152,6 +152,7 @@ "ci-breather", "ci-nutriment", "ci-thrusters", + "ci-herculean", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) diff --git a/code/modules/research/techweb/nodes/engi_nodes.dm b/code/modules/research/techweb/nodes/engi_nodes.dm index 626dd6981d0ce..0fe1b7bd75f33 100644 --- a/code/modules/research/techweb/nodes/engi_nodes.dm +++ b/code/modules/research/techweb/nodes/engi_nodes.dm @@ -104,7 +104,6 @@ "s_filter", "s_transmitter", "s_treatment", - "gigabeacon", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) diff --git a/code/modules/research/techweb/nodes/mech_nodes.dm b/code/modules/research/techweb/nodes/mech_nodes.dm index 5f3d302132333..d6b7171d55b37 100644 --- a/code/modules/research/techweb/nodes/mech_nodes.dm +++ b/code/modules/research/techweb/nodes/mech_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/mech_assembly id = TECHWEB_NODE_MECH_ASSEMBLY starting_node = TRUE - display_name = "Mech Assembly" - description = "Development of mech designed to contend with artificial gravity while transporting cargo." + display_name = "Exosuit Assembly" + description = "Development of mechanical exosuits designed to contend with artificial gravity while transporting cargo." prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "mechapower", @@ -21,7 +21,7 @@ /datum/techweb_node/mech_equipment id = TECHWEB_NODE_MECH_EQUIPMENT display_name = "Expedition Equipment" - description = "Specialized mech gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions." + description = "Specialized exosuit gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions." prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY) design_ids = list( "mechacontrol", @@ -63,7 +63,7 @@ /datum/techweb_node/mech_medical id = TECHWEB_NODE_MECH_MEDICAL - display_name = "Medical Mech" + display_name = "Medical Exosuit" description = "Advanced robotic unit equipped with syringe guns and healing beams, revolutionizing medical assistance in hazardous environments." prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( @@ -83,8 +83,8 @@ /datum/techweb_node/mech_mining id = TECHWEB_NODE_MECH_MINING - display_name = "Mining Mech" - description = "Robust mech engineered to withstand lava and storms for continuous off-station mining operations." + display_name = "Mining Exosuit" + description = "Robust exosuit engineered to withstand lava and storms for continuous off-station mining operations." prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT, TECHWEB_NODE_MINING) design_ids = list( "clarke_chassis", @@ -99,8 +99,8 @@ /datum/techweb_node/mech_combat id = TECHWEB_NODE_MECH_COMBAT - display_name = "Combat Mechs" - description = "Modular armor upgrades and specialized equipment for security mechs." + display_name = "Combat Exosuits" + description = "Modular armor upgrades and specialized equipment for security exosuits." prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT) design_ids = list( "mech_ccw_armor", @@ -112,12 +112,11 @@ ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) required_experiments = list(/datum/experiment/scanning/random/mecha_equipped_scan) - discount_experiments = list(/datum/experiment/scanning/random/mecha_damage_scan = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mech_assault id = TECHWEB_NODE_MECH_ASSAULT - display_name = "Assault Mech" - description = "Heavy battle mech boasting robust armor but sacrificing speed for enhanced durability." + display_name = "Assault Exosuits" + description = "Heavy battle exosuits boasting robust armor but sacrificing speed for enhanced durability." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "durand_armor", @@ -136,8 +135,8 @@ /datum/techweb_node/mech_light id = TECHWEB_NODE_MECH_LIGHT - display_name = "Light Combat Mech" - description = "Agile combat mech equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield." + display_name = "Light Combat Exosuits" + description = "Agile combat exosuits equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "gygax_armor", @@ -156,7 +155,7 @@ /datum/techweb_node/mech_heavy id = TECHWEB_NODE_MECH_HEAVY - display_name = "Heavy Mech" + display_name = "Heavy Exosuits" description = "Advanced heavy mechanized unit with dual pilot capability, designed for robust battlefield performance and increased tactical versatility." prereq_ids = list(TECHWEB_NODE_MECH_ASSAULT) design_ids = list( @@ -176,8 +175,8 @@ /datum/techweb_node/mech_infiltrator id = TECHWEB_NODE_MECH_INFILTRATOR - display_name = "Infiltration Mech" - description = "Advanced mech with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations." + display_name = "Infiltration Exosuits" + description = "Advanced exosuit with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations." prereq_ids = list(TECHWEB_NODE_MECH_LIGHT, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "phazon_armor", @@ -194,10 +193,26 @@ ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) +/datum/techweb_node/justice + id = "mecha_justice" + display_name = "EXOSUIT: Justice" + description = "Justice exosuit designs" + design_ids = list( + "justice_armor", + "justice_chassis", + "justice_left_arm", + "justice_left_leg", + "justice_right_arm", + "justice_right_leg", + "justice_torso", + ) + hidden = TRUE + illegal_mech_node = TRUE + /datum/techweb_node/mech_energy_guns id = TECHWEB_NODE_MECH_ENERGY_GUNS - display_name = "Mech Energy Guns" - description = "Scaled-up versions of electric weapons optimized for mech deployment." + display_name = "Exosuit Energy Guns" + description = "Scaled-up versions of electric weapons optimized for exosuit deployment." prereq_ids = list(TECHWEB_NODE_MECH_COMBAT, TECHWEB_NODE_ELECTRIC_WEAPONS) design_ids = list( "mech_laser", @@ -206,10 +221,11 @@ "mech_tesla", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + discount_experiments = list(/datum/experiment/scanning/random/mecha_damage_scan = TECHWEB_TIER_4_POINTS) /datum/techweb_node/mech_firearms id = TECHWEB_NODE_MECH_FIREARMS - display_name = "Mech Firearms" + display_name = "Exosuit Firearms" description = "Mounted ballistic weaponry, enhancing combat capabilities for mechanized units." prereq_ids = list(TECHWEB_NODE_MECH_ENERGY_GUNS, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( @@ -224,7 +240,7 @@ /datum/techweb_node/mech_heavy_arms id = TECHWEB_NODE_MECH_HEAVY_ARMS - display_name = "Heavy Mech Firearms" + display_name = "Heavy Exosuit Firearms" description = "High-impact weaponry integrated into mechs, optimized for maximum firepower." prereq_ids = list(TECHWEB_NODE_MECH_HEAVY, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( @@ -239,13 +255,12 @@ /datum/techweb_node/mech_equip_bluespace id = TECHWEB_NODE_BLUESPACE - display_name = "Bluespace Mech Equipment" + display_name = "Bluespace Exosuit Equipment" description = "An array of equipment empowered by bluespace, providing unmatched mobility and utility." prereq_ids = list(TECHWEB_NODE_MECH_INFILTRATOR, TECHWEB_NODE_BLUESPACE_TRAVEL) design_ids = list( "mech_gravcatapult", "mech_teleporter", "mech_wormhole_gen", - "mech_rcd", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm index 51bc5f1504902..f5b122ccd287d 100644 --- a/code/modules/research/techweb/nodes/medbay_nodes.dm +++ b/code/modules/research/techweb/nodes/medbay_nodes.dm @@ -28,11 +28,14 @@ "syringe", "dropper", "pillbottle", + "xlarge_beaker", ) experiments_to_unlock = list( /datum/experiment/autopsy/human, /datum/experiment/autopsy/nonhuman, /datum/experiment/autopsy/xenomorph, + /datum/experiment/scanning/reagent/haloperidol, + /datum/experiment/scanning/reagent/cryostylane, ) /datum/techweb_node/chem_synthesis @@ -41,7 +44,6 @@ description = "Synthesizing complex chemicals from electricity and thin air... Don't ask how..." prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP) design_ids = list( - "xlarge_beaker", "med_spray_bottle", "medigel", "medipen_refiller", @@ -51,46 +53,21 @@ "portable_chem_mixer", "chem_heater", "w-recycler", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) - -/datum/techweb_node/plumbing - id = TECHWEB_NODE_PLUMBING - display_name = "Plumbing" - description = "Essential infrastructure for building chemical factories. To scale up the production of happy pills to an industrial level." - prereq_ids = list(TECHWEB_NODE_CHEM_SYNTHESIS) - design_ids = list( + "meta_beaker", "plumbing_rcd", "plumbing_rcd_service", - "plumbing_rcd_sci", "plunger", "fluid_ducts", - "meta_beaker", - "piercesyringe", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) - -/datum/techweb_node/cryostasis - id = TECHWEB_NODE_CRYOSTASIS - display_name = "Cryostasis" - description = "The result of clown accidentally drinking a chemical, now repurposed for safely preserving crew members in suspended animation." - prereq_ids = list(TECHWEB_NODE_PLUMBING, TECHWEB_NODE_PLASMA_CONTROL) - design_ids = list( - "cryotube", - "mech_sleeper", - "stasis", - "cryo_grenade", - "splitbeaker", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) - required_experiments = list(/datum/experiment/scanning/reagent/cryostylane) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/medbay_equip_adv id = TECHWEB_NODE_MEDBAY_EQUIP_ADV display_name = "Advanced Medbay Equipment" description = "State-of-the-art medical gear for keeping the crew in one piece — mostly." - prereq_ids = list(TECHWEB_NODE_CRYOSTASIS) + prereq_ids = list(TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( + "smoke_machine", "chem_mass_spec", "healthanalyzer_advanced", "mod_health_analyzer", @@ -98,5 +75,22 @@ "defibrillator_compact", "defibmount", "medicalbed_emergency", + "piercesyringe", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) + required_experiments = list(/datum/experiment/scanning/reagent/haloperidol) + +/datum/techweb_node/cryostasis + id = TECHWEB_NODE_CRYOSTASIS + display_name = "Cryostasis" + description = "The result of clown accidentally drinking a chemical, now repurposed for safely preserving crew members in suspended animation." + prereq_ids = list(TECHWEB_NODE_FUSION) + design_ids = list( + "cryotube", + "mech_sleeper", + "stasis", + "cryo_grenade", + "splitbeaker", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + discount_experiments = list(/datum/experiment/scanning/reagent/cryostylane = TECHWEB_TIER_4_POINTS) diff --git a/code/modules/research/techweb/nodes/modsuit_nodes.dm b/code/modules/research/techweb/nodes/modsuit_nodes.dm index 2e74663eed419..56addbad12723 100644 --- a/code/modules/research/techweb/nodes/modsuit_nodes.dm +++ b/code/modules/research/techweb/nodes/modsuit_nodes.dm @@ -1,7 +1,7 @@ /datum/techweb_node/mod_suit id = TECHWEB_NODE_MOD_SUIT starting_node = TRUE - display_name = "Modular Exosuit" + display_name = "Modular Suit" description = "Specialized back mounted power suits with various different modules." prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( @@ -52,13 +52,13 @@ /datum/techweb_node/mod_medical id = TECHWEB_NODE_MOD_MEDICAL display_name = "Medical Modular Suit" - description = "Medical exosuits for quick rescue purposes." + description = "Medical MODsuits for quick rescue purposes." prereq_ids = list(TECHWEB_NODE_MOD_SUIT, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "mod_plating_medical", "mod_quick_carry", "mod_injector", - "mod_organ_thrower", + "mod_organizer", "mod_patienttransport", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) @@ -83,6 +83,7 @@ description = "Security suits for space crime handling." prereq_ids = list(TECHWEB_NODE_MOD_EQUIP) design_ids = list( + "mod_mirage_grenade", "mod_plating_security", "mod_stealth", "mod_mag_harness", @@ -97,7 +98,7 @@ /datum/techweb_node/mod_medical_adv id = TECHWEB_NODE_MOD_MEDICAL_ADV display_name = "Field Surgery Modules" - description = "Medical exosuit equipment designed for conducting surgical operations in field conditions." + description = "Medical MODsuit equipment designed for conducting surgical operations in field conditions." prereq_ids = list(TECHWEB_NODE_MOD_MEDICAL, TECHWEB_NODE_SURGERY_ADV) design_ids = list( "mod_defib", @@ -129,7 +130,7 @@ /datum/techweb_node/mod_anomaly id = TECHWEB_NODE_MOD_ANOMALY display_name = "Anomalock Modular Suit" - description = "Modules for exosuits that require anomaly cores to function." + description = "Modules for MODsuits that require anomaly cores to function." prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "mod_antigrav", diff --git a/code/modules/research/techweb/nodes/research_nodes.dm b/code/modules/research/techweb/nodes/research_nodes.dm index 0cdbdb6548b4a..b70d9582681ce 100644 --- a/code/modules/research/techweb/nodes/research_nodes.dm +++ b/code/modules/research/techweb/nodes/research_nodes.dm @@ -45,6 +45,7 @@ "blutrash", "light_replacer_blue", "bluespacebodybag", + "gigabeacon", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) required_experiments = list(/datum/experiment/scanning/points/bluespace_crystal) @@ -91,4 +92,5 @@ "gravitygun", "polymorph_belt" ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) + discount_experiments = list(/datum/experiment/scanning/points/anomalies = TECHWEB_TIER_5_POINTS) diff --git a/code/modules/research/techweb/nodes/security_nodes.dm b/code/modules/research/techweb/nodes/security_nodes.dm index c85639b0aecb1..2d3dd63864f25 100644 --- a/code/modules/research/techweb/nodes/security_nodes.dm +++ b/code/modules/research/techweb/nodes/security_nodes.dm @@ -4,6 +4,7 @@ display_name = "Basic Arms" description = "Ballistics can be unpredictable in space." design_ids = list( + "toy_armblade", "toygun", "c38_rubber", "sec_38", @@ -33,7 +34,6 @@ "dragnet_beacon", "inspector", "evidencebag", - "handcuffs_s", "zipties", "seclite", "electropack", @@ -46,10 +46,12 @@ description = "When you are on the opposing side of a revolutionary movement." prereq_ids = list(TECHWEB_NODE_SEC_EQUIP) design_ids = list( + "clown_firing_pin", "pin_testing", "pin_loyalty", "tele_shield", "ballistic_shield", + "handcuffs_s", "bola_energy", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) @@ -66,7 +68,6 @@ ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) required_experiments = list(/datum/experiment/ordnance/explosive/lowyieldbomb) - discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_3_POINTS) /datum/techweb_node/exotic_ammo id = TECHWEB_NODE_EXOTIC_AMMO @@ -79,6 +80,7 @@ "techshotshell", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) + discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_4_POINTS) /datum/techweb_node/electric_weapons id = TECHWEB_NODE_ELECTRIC_WEAPONS diff --git a/code/modules/research/techweb/nodes/service_nodes.dm b/code/modules/research/techweb/nodes/service_nodes.dm index da7c48f0878c7..1553f3a0c20d8 100644 --- a/code/modules/research/techweb/nodes/service_nodes.dm +++ b/code/modules/research/techweb/nodes/service_nodes.dm @@ -52,19 +52,6 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) discount_experiments = list(/datum/experiment/scanning/random/janitor_trash = TECHWEB_TIER_2_POINTS) -/datum/techweb_node/toys - id = TECHWEB_NODE_TOYS - display_name = "New Toys" - description = "For new pranks." - prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP) - design_ids = list( - "smoke_machine", - "toy_armblade", - "air_horn", - "clown_firing_pin", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) - /datum/techweb_node/consoles id = TECHWEB_NODE_CONSOLES display_name = "Civilian Consoles" @@ -96,7 +83,7 @@ id = TECHWEB_NODE_GAMING display_name = "Gaming" description = "For the slackers on the station." - prereq_ids = list(TECHWEB_NODE_TOYS, TECHWEB_NODE_CONSOLES) + prereq_ids = list(TECHWEB_NODE_CONSOLES) design_ids = list( "arcade_battle", "arcade_orion", @@ -195,44 +182,3 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) // only available if you've done the first fishing experiment (thus unlocking fishing tech), but not a strict requirement to get the tech discount_experiments = list(/datum/experiment/scanning/fish/second = TECHWEB_TIER_3_POINTS) - -// Botany root node -/datum/techweb_node/botany_equip - id = TECHWEB_NODE_BOTANY_EQUIP - starting_node = TRUE - display_name = "Botany Equipment" - description = "Essential tools for maintaining onboard gardens, supporting plant growth in the unique environment of the space station." - design_ids = list( - "seed_extractor", - "plant_analyzer", - "watering_can", - "spade", - "cultivator", - "secateurs", - "hatchet", - ) - -/datum/techweb_node/hydroponics - id = TECHWEB_NODE_HYDROPONICS - display_name = "Hydroponics" - description = "Research into advanced hydroponic systems for efficient and sustainable plant cultivation." - prereq_ids = list(TECHWEB_NODE_BOTANY_EQUIP, TECHWEB_NODE_CHEM_SYNTHESIS) - design_ids = list( - "biogenerator", - "hydro_tray", - "portaseeder", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) - -/datum/techweb_node/selection - id = TECHWEB_NODE_SELECTION - display_name = "Artificial Selection" - description = "Advancement in plant cultivation techniques through artificial selection, enabling precise manipulation of plant DNA." - prereq_ids = list(TECHWEB_NODE_HYDROPONICS) - design_ids = list( - "flora_gun", - "gene_shears", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) - required_experiments = list(/datum/experiment/scanning/random/plants/wild) - discount_experiments = list(/datum/experiment/scanning/random/plants/traits = TECHWEB_TIER_3_POINTS) diff --git a/code/modules/research/techweb/nodes/surgery_nodes.dm b/code/modules/research/techweb/nodes/surgery_nodes.dm index 2bd1f6d5df6d0..0b8812191e2a9 100644 --- a/code/modules/research/techweb/nodes/surgery_nodes.dm +++ b/code/modules/research/techweb/nodes/surgery_nodes.dm @@ -56,7 +56,7 @@ "surgery_viral_bond", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) - required_experiments = list(/datum/experiment/autopsy/nonhuman) + discount_experiments = list(/datum/experiment/autopsy/nonhuman = TECHWEB_TIER_3_POINTS) /datum/techweb_node/surgery_tools id = TECHWEB_NODE_SURGERY_TOOLS diff --git a/code/modules/research/techweb/nodes/syndicate_nodes.dm b/code/modules/research/techweb/nodes/syndicate_nodes.dm index 377ac392f938f..7743b9442f829 100644 --- a/code/modules/research/techweb/nodes/syndicate_nodes.dm +++ b/code/modules/research/techweb/nodes/syndicate_nodes.dm @@ -33,7 +33,7 @@ required_items_to_unlock = list() for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path] - if(!item.item || !item.illegal_tech) + if(!item.item || !(item.uplink_item_flags & SYNDIE_ILLEGAL_TECH)) continue required_items_to_unlock |= item.item //allows deconning to unlock. diff --git a/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm index 8b0b007adee40..d04a7f852da3f 100644 --- a/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm +++ b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm @@ -1,7 +1,7 @@ ///Tool capable of taking biological samples from mobs /obj/item/biopsy_tool name = "biopsy tool" - desc = "Don't worry, it won't sting." + desc = "Used to retrieve cell lines from organisms. Don't worry, it won't sting." icon = 'icons/obj/science/vatgrowing.dmi' icon_state = "biopsy" worn_icon_state = "biopsy" diff --git a/code/modules/research/xenobiology/vatgrowing/microscope.dm b/code/modules/research/xenobiology/vatgrowing/microscope.dm index df065698436a4..c3c7369981e19 100644 --- a/code/modules/research/xenobiology/vatgrowing/microscope.dm +++ b/code/modules/research/xenobiology/vatgrowing/microscope.dm @@ -128,7 +128,5 @@ reqs = list( /obj/item/stack/sheet/glass = 1, /obj/item/stack/sheet/plastic = 1, - /obj/item/stock_parts/scanning_module = 1, - /obj/item/flashlight = 1, ) category = CAT_CHEMISTRY diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm index b8af4dd062c41..46d643aa532a7 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm @@ -31,7 +31,7 @@ var/resulting_atom_count = 1 ///Handles growth of the micro_organism. This only runs if the micro organism is in the growing vat. Reagents is the growing vats reagents -/datum/micro_organism/cell_line/proc/handle_growth(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/proc/handle_growth(obj/machinery/vatgrower/vat) if(!try_eat(vat.reagents)) return FALSE growth = max(growth, growth + calculate_growth(vat.reagents, vat.biological_sample)) //Prevent you from having minus growth. @@ -74,7 +74,7 @@ . -= virus_suspectibility ///Called once a cell line reaches 100 growth. Then we check if any cell_line is too far so we can perform an epic fail roll -/datum/micro_organism/cell_line/proc/finish_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/proc/finish_growing(obj/machinery/vatgrower/vat) var/risk = 0 //Penalty for failure, goes up based on how much growth the other cell_lines have for(var/datum/micro_organism/cell_line/cell_line in vat.biological_sample.micro_organisms) @@ -90,7 +90,7 @@ succeed_growing(vat) return TRUE -/datum/micro_organism/cell_line/proc/fuck_up_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/proc/fuck_up_growing(obj/machinery/vatgrower/vat) vat.visible_message(span_warning("The biological sample in [vat] seems to have dissipated!")) if(prob(50)) new /obj/effect/gibspawner/generic(get_turf(vat)) //Spawn some gibs. @@ -98,7 +98,7 @@ return QDEL_NULL(vat.biological_sample) -/datum/micro_organism/cell_line/proc/succeed_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/proc/succeed_growing(obj/machinery/vatgrower/vat) var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(0, holder = vat, location = vat.loc) smoke.start() @@ -112,18 +112,18 @@ ///Overriden to show more info like needs, supplementary and supressive reagents and also growth. /datum/micro_organism/cell_line/get_details(show_details) - . += "[span_notice("[desc] - growth progress: [growth]%")]\n" + . += "[span_notice("[desc] - growth progress: [growth]%")]" if(show_details) - . += return_reagent_text("It requires:", required_reagents) - . += return_reagent_text("It likes:", supplementary_reagents) - . += return_reagent_text("It hates:", suppressive_reagents) + . += "\n- " + return_reagent_text("Requires:", required_reagents) + . += "\n- " + return_reagent_text("Likes:", supplementary_reagents) + . += "\n- " + return_reagent_text("Hates:", suppressive_reagents) ///Return a nice list of all the reagents in a specific category with a specific prefix. This needs to be reworked because the formatting sucks ass. /datum/micro_organism/cell_line/proc/return_reagent_text(prefix_text = "It requires:", list/reagentlist) if(!reagentlist.len) return - var/all_reagents_text + var/list/reagent_names = list() for(var/i in reagentlist) var/datum/reagent/reagent = i - all_reagents_text += " - [initial(reagent.name)]\n" - return span_notice("[prefix_text]\n[all_reagents_text]") + reagent_names += initial(reagent.name) + return span_notice("[prefix_text] [jointext(reagent_names, ", ")]") diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_sample.dm b/code/modules/research/xenobiology/vatgrowing/samples/_sample.dm index eda9d2771ebf0..7838977bd4d48 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/_sample.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/_sample.dm @@ -31,7 +31,7 @@ return TRUE ///Call handle_growth on all our microorganisms. -/datum/biological_sample/proc/handle_growth(obj/machinery/plumbing/growing_vat/vat) +/datum/biological_sample/proc/handle_growth(obj/machinery/vatgrower/vat) for(var/datum/micro_organism/cell_line/organism in micro_organisms) //Types because we don't grow viruses. organism.handle_growth(vat) diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index 8dd4594d47d65..571440f84427f 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -450,7 +450,7 @@ virus_suspectibility = 0.5 resulting_atom = /mob/living/simple_animal/hostile/vatbeast -/datum/micro_organism/cell_line/vat_beast/succeed_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/vat_beast/succeed_growing(obj/machinery/vatgrower/vat) . = ..() qdel(vat) @@ -476,11 +476,11 @@ virus_suspectibility = 0 -/datum/micro_organism/cell_line/netherworld/succeed_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/netherworld/succeed_growing(obj/machinery/vatgrower/vat) resulting_atom = pick(/mob/living/basic/creature, /mob/living/basic/migo, /mob/living/basic/blankbody) //i looked myself, pretty much all of them are reasonably strong and somewhat on the same level. except migo is the jackpot and the blank body is whiff. return ..() -/datum/micro_organism/cell_line/clown/fuck_up_growing(obj/machinery/plumbing/growing_vat/vat) +/datum/micro_organism/cell_line/clown/fuck_up_growing(obj/machinery/vatgrower/vat) vat.visible_message(span_warning("The biological sample in [vat] seems to have created something horrific!")) var/mob/selected_mob = pick(list(/mob/living/basic/clown/mutant/slow, /mob/living/basic/clown/fleshclown)) @@ -656,7 +656,7 @@ virus_suspectibility = 0 resulting_atom = /obj/item/queen_bee/bought -/datum/micro_organism/cell_line/queen_bee/fuck_up_growing(obj/machinery/plumbing/growing_vat/vat) //we love job hazards +/datum/micro_organism/cell_line/queen_bee/fuck_up_growing(obj/machinery/vatgrower/vat) //we love job hazards vat.visible_message(span_warning("You hear angry buzzing coming from the inside of the vat!")) for(var/i in 1 to 5) new /mob/living/basic/bee(get_turf(vat)) diff --git a/code/modules/plumbing/plumbers/vatgrower.dm b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm similarity index 56% rename from code/modules/plumbing/plumbers/vatgrower.dm rename to code/modules/research/xenobiology/vatgrowing/vatgrower.dm index 1dcfb08e0cce0..5b35bd10edf5e 100644 --- a/code/modules/plumbing/plumbers/vatgrower.dm +++ b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm @@ -1,33 +1,52 @@ ///Used to make mobs from microbiological samples. Grow grow grow. -/obj/machinery/plumbing/growing_vat +/obj/machinery/vatgrower name = "growing vat" desc = "Tastes just like the chef's soup." + icon = 'icons/obj/science/vatgrowing.dmi' icon_state = "growing_vat" - buffer = 300 - + density = TRUE + pass_flags_self = PASSMACHINE | LETPASSTHROW + circuit = /obj/item/circuitboard/machine/vatgrower + use_power = NO_POWER_USE + ///Soup container reagents + var/reagent_volume = 300 + var/reagent_flags = OPENCONTAINER | DUNKABLE ///List of all microbiological samples in this soup. var/datum/biological_sample/biological_sample ///If the vat will restart the sample upon completion var/resampler_active = FALSE -///Add that sexy demnand component -/obj/machinery/plumbing/growing_vat/Initialize(mapload, bolt, layer) +/obj/machinery/vatgrower/Initialize(mapload, bolt, layer) . = ..() - AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) - -/obj/machinery/plumbing/growing_vat/create_reagents(max_vol, flags) + create_reagents(reagent_volume, reagent_flags) + + AddComponent(/datum/component/simple_rotation) + AddComponent(/datum/component/plumbing/simple_demand) + + var/static/list/hovering_item_typechecks = list( + /obj/item/petri_dish = list( + SCREENTIP_CONTEXT_LMB = "Add Sample", + ), + /obj/item/reagent_containers = list( + SCREENTIP_CONTEXT_LMB = "Pour Reagents", + ), + ) + AddElement(/datum/element/contextual_screentip_item_typechecks, hovering_item_typechecks) + AddElement(/datum/element/contextual_screentip_bare_hands, lmb_text = "Toggle Resampler", rmb_text = "Flush Soup") + +/obj/machinery/vatgrower/create_reagents(max_vol, flags) . = ..() RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_change)) RegisterSignal(reagents, COMSIG_QDELETING, PROC_REF(on_reagents_del)) /// Handles properly detaching signal hooks. -/obj/machinery/plumbing/growing_vat/proc/on_reagents_del(datum/reagents/reagents) +/obj/machinery/vatgrower/proc/on_reagents_del(datum/reagents/reagents) SIGNAL_HANDLER UnregisterSignal(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT, COMSIG_QDELETING)) return NONE ///When we process, we make use of our reagents to try and feed the samples we have. -/obj/machinery/plumbing/growing_vat/process(seconds_per_tick) +/obj/machinery/vatgrower/process(seconds_per_tick) if(!is_operational) return if(!biological_sample) @@ -39,35 +58,71 @@ audible_message(pick(list(span_notice("[src] grumbles!"), span_notice("[src] makes a splashing noise!"), span_notice("[src] sloshes!")))) use_energy(active_power_usage * seconds_per_tick) -///Handles the petri dish depositing into the vat. -/obj/machinery/plumbing/growing_vat/attacked_by(obj/item/I, mob/living/user) - if(!istype(I, /obj/item/petri_dish)) - return ..() +/obj/machinery/vatgrower/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(istype(tool, /obj/item/petri_dish)) + return deposit_sample(user, tool) - var/obj/item/petri_dish/petri = I +/obj/machinery/vatgrower/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) + return ITEM_INTERACT_SUCCESS - if(!petri.sample) - return ..() +/obj/machinery/vatgrower/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS - if(biological_sample) - to_chat(user, span_warning("There is already a sample in the vat!")) +/obj/machinery/vatgrower/wrench_act(mob/living/user, obj/item/tool) + . = ..() + if(default_unfasten_wrench(user, tool)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/vatgrower/attack_hand(mob/living/user, list/modifiers) + . = ..() + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + if(obj_flags & EMAGGED) return - deposit_sample(user, petri) + resampler_active = !resampler_active + balloon_alert(user, "resampler [resampler_active ? "activated" : "deactivated"]") + update_appearance() + +/obj/machinery/vatgrower/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + if(!anchored) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + var/warning = tgui_alert(user, "Are you sure you want to empty the soup container?","Flush soup container?", list("Flush", "Cancel")) + if(warning == "Flush" && user.can_perform_action(src)) + reagents.clear_reagents() + if(biological_sample) + QDEL_NULL(biological_sample) + balloon_alert(user, "container empty") + update_appearance() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN ///Creates a clone of the supplied sample and puts it in the vat -/obj/machinery/plumbing/growing_vat/proc/deposit_sample(mob/user, obj/item/petri_dish/petri) +/obj/machinery/vatgrower/proc/deposit_sample(mob/user, obj/item/petri_dish/petri) + if(!petri.sample) + balloon_alert(user, "dish empty") + return ITEM_INTERACT_FAILURE + if(biological_sample) + balloon_alert(user, "already has a sample") + return ITEM_INTERACT_FAILURE biological_sample = new for(var/datum/micro_organism/m in petri.sample.micro_organisms) biological_sample.micro_organisms += new m.type() biological_sample.sample_layers = petri.sample.sample_layers biological_sample.sample_color = petri.sample.sample_color - to_chat(user, span_warning("You put some of the sample in the vat!")) + balloon_alert(user, "added sample") playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) update_appearance() RegisterSignal(biological_sample, COMSIG_SAMPLE_GROWTH_COMPLETED, PROC_REF(on_sample_growth_completed)) + return ITEM_INTERACT_SUCCESS ///Adds text for when there is a sample in the vat -/obj/machinery/plumbing/growing_vat/examine_more(mob/user) +/obj/machinery/vatgrower/examine(mob/user) . = ..() if(!biological_sample) return @@ -76,18 +131,14 @@ var/datum/micro_organism/MO = i . += MO.get_details(HAS_TRAIT(user, TRAIT_RESEARCH_SCANNER)) -/obj/machinery/plumbing/growing_vat/plunger_act(obj/item/plunger/P, mob/living/user, reinforced) - . = ..() - QDEL_NULL(biological_sample) - /// Call update icon when reagents change to update the reagent content icons. Eats signal args. -/obj/machinery/plumbing/growing_vat/proc/on_reagent_change(datum/reagents/holder, ...) +/obj/machinery/vatgrower/proc/on_reagent_change(datum/reagents/holder, ...) SIGNAL_HANDLER update_appearance() return NONE ///Adds overlays to show the reagent contents -/obj/machinery/plumbing/growing_vat/update_overlays() +/obj/machinery/vatgrower/update_overlays() . = ..() var/static/image/on_overlay var/static/image/off_overlay @@ -113,16 +164,7 @@ var/mutable_appearance/bubbles_overlay = mutable_appearance(icon, "vat_bubbles") . += bubbles_overlay -/obj/machinery/plumbing/growing_vat/attack_hand(mob/living/user, list/modifiers) - . = ..() - playsound(src, 'sound/machines/click.ogg', 30, TRUE) - if(obj_flags & EMAGGED) - return - resampler_active = !resampler_active - balloon_alert_to_viewers("resampler [resampler_active ? "activated" : "deactivated"]") - update_appearance() - -/obj/machinery/plumbing/growing_vat/emag_act(mob/user, obj/item/card/emag/emag_card) +/obj/machinery/vatgrower/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) return FALSE obj_flags |= EMAGGED @@ -131,7 +173,7 @@ flick("growing_vat_emagged", src) return TRUE -/obj/machinery/plumbing/growing_vat/proc/on_sample_growth_completed() +/obj/machinery/vatgrower/proc/on_sample_growth_completed() SIGNAL_HANDLER if(resampler_active) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(src), 'sound/effects/servostep.ogg', 100, 1), 1.5 SECONDS) diff --git a/code/modules/security_levels/security_level_datums.dm b/code/modules/security_levels/security_level_datums.dm index b3402f643c6bf..d5a2e74e8080e 100644 --- a/code/modules/security_levels/security_level_datums.dm +++ b/code/modules/security_levels/security_level_datums.dm @@ -13,6 +13,10 @@ var/announcement_color = "default" /// The numerical level of this security level, see defines for more information. var/number_level = -1 + /// Icon state that will be displayed on displays during this security level + var/status_display_icon_state + /// The color of the fire alarm light set when changed to this security level + var/fire_alarm_light_color /// The sound that we will play when this security level is set var/sound /// The looping sound that will be played while the security level is set @@ -47,6 +51,8 @@ announcement_color = "green" sound = 'sound/misc/notice2.ogg' // Friendly beep number_level = SEC_LEVEL_GREEN + status_display_icon_state = "greenalert" + fire_alarm_light_color = LIGHT_COLOR_BLUEGREEN lowering_to_configuration_key = /datum/config_entry/string/alert_green shuttle_call_time_mod = ALERT_COEFF_GREEN @@ -60,6 +66,8 @@ announcement_color = "blue" sound = 'sound/misc/notice1.ogg' // Angry alarm number_level = SEC_LEVEL_BLUE + status_display_icon_state = "bluealert" + fire_alarm_light_color = LIGHT_COLOR_ELECTRIC_CYAN lowering_to_configuration_key = /datum/config_entry/string/alert_blue_downto elevating_to_configuration_key = /datum/config_entry/string/alert_blue_upto shuttle_call_time_mod = ALERT_COEFF_BLUE @@ -74,6 +82,8 @@ announcement_color = "red" sound = 'sound/misc/notice3.ogg' // More angry alarm number_level = SEC_LEVEL_RED + status_display_icon_state = "redalert" + fire_alarm_light_color = LIGHT_COLOR_FLARE lowering_to_configuration_key = /datum/config_entry/string/alert_red_downto elevating_to_configuration_key = /datum/config_entry/string/alert_red_upto shuttle_call_time_mod = ALERT_COEFF_RED @@ -88,5 +98,7 @@ announcement_color = "purple" sound = 'sound/misc/airraid.ogg' // Air alarm to signify importance number_level = SEC_LEVEL_DELTA + status_display_icon_state = "deltaalert" + fire_alarm_light_color = LIGHT_COLOR_INTENSE_RED elevating_to_configuration_key = /datum/config_entry/string/alert_delta shuttle_call_time_mod = ALERT_COEFF_DELTA diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index e5b4b0eb02439..484fa32ac8777 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -403,7 +403,6 @@ desc = "Communism powerful force." icon = 'icons/effects/96x96.dmi' icon_state = "communist" - layer = ABOVE_OPEN_TURF_LAYER pixel_x = -32 pixel_y = -32 diff --git a/code/modules/spells/spell_types/jaunt/bloodcrawl.dm b/code/modules/spells/spell_types/jaunt/bloodcrawl.dm index 00327111e8915..f61e48e889672 100644 --- a/code/modules/spells/spell_types/jaunt/bloodcrawl.dm +++ b/code/modules/spells/spell_types/jaunt/bloodcrawl.dm @@ -164,6 +164,10 @@ var/consume_sound = 'sound/magic/demon_consume.ogg' /// consume count (statistics and stuff) var/consume_count = 0 + /// Apply damage every 20 seconds if we bloodcrawling + var/jaunt_damage_timer + /// When demon first appears, it does not take damage while in Jaunt. He also doesn't take damage while he's eating someone. + var/resist_jaunt_damage = TRUE /datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt(obj/effect/decal/cleanable/blood, mob/living/jaunter) // Save this before the actual jaunt @@ -174,12 +178,14 @@ if(!.) return + jaunt_damage_timer = addtimer(CALLBACK(src, PROC_REF(damage_for_lazy_demon), jaunter), 20 SECONDS, TIMER_STOPPABLE) + var/turf/jaunt_turf = get_turf(jaunter) // if we're not pulling anyone, or we can't what we're pulling - if(!isliving(coming_with)) + if(!ishuman(coming_with)) return - var/mob/living/victim = coming_with + var/mob/living/carbon/human/victim = coming_with if(victim.stat == CONSCIOUS) jaunt_turf.visible_message( @@ -204,6 +210,28 @@ return TRUE +/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/on_jaunt_exited(obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter) + deltimer(jaunt_damage_timer) + resist_jaunt_damage = FALSE + return ..() + +/** + * Apply damage to demon when he using bloodcrawl. + * Every 20 SECONDS check if demon still crawling and update timer. + */ +/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/proc/damage_for_lazy_demon(mob/living/lazy_demon) + if(QDELETED(lazy_demon)) + return + if(resist_jaunt_damage) + return + if(isturf(lazy_demon.loc)) + return + if(isnull(jaunt_damage_timer)) + return + lazy_demon.apply_damage(lazy_demon.maxHealth * 0.05, BRUTE) + jaunt_damage_timer = addtimer(CALLBACK(src, PROC_REF(damage_for_lazy_demon), lazy_demon), 20 SECONDS, TIMER_STOPPABLE) + to_chat(lazy_demon, span_warning("You feel your flesh dissolving into the sea of blood. You shouldn't stay in Blood Crawl for too long!")) + /** * Consumes the [victim] from the [jaunter], fully healing them * and calling [proc/on_victim_consumed] if successful.) @@ -236,12 +264,18 @@ * Called when a victim starts to be consumed. */ /datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/proc/on_victim_start_consume(mob/living/victim, mob/living/jaunter) + if(!iscarbon(jaunter)) + resist_jaunt_damage = TRUE + deltimer(jaunt_damage_timer) to_chat(jaunter, span_danger("You begin to feast on [victim]... You can not move while you are doing this.")) /** * Called when a victim is successfully consumed. */ /datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/proc/on_victim_consumed(mob/living/victim, mob/living/jaunter) + if(!iscarbon(jaunter)) + resist_jaunt_damage = FALSE + jaunt_damage_timer = addtimer(CALLBACK(src, PROC_REF(damage_for_lazy_demon), jaunter), 20 SECONDS, TIMER_STOPPABLE) to_chat(jaunter, span_danger("You devour [victim]. Your health is fully restored.")) qdel(victim) diff --git a/code/modules/spells/spell_types/pointed/terrorize.dm b/code/modules/spells/spell_types/pointed/terrorize.dm index 33465b1d35348..699410b9a3c6b 100644 --- a/code/modules/spells/spell_types/pointed/terrorize.dm +++ b/code/modules/spells/spell_types/pointed/terrorize.dm @@ -1,6 +1,6 @@ /datum/action/cooldown/spell/pointed/terrorize name = "Terrorize" - desc = "Project yourself into a victim's mind, inflictng them with terror buildup. \ + desc = "Project yourself into a victim's mind, inflicting them with terror buildup. \ Prey will become increasingly terrified. Swatting terrified prey with an open hand will \ scare and disorient them." button_icon_state = "terrify" diff --git a/code/modules/surgery/blood_filter.dm b/code/modules/surgery/blood_filter.dm index 401a412bc1c9e..577e23cee1cba 100644 --- a/code/modules/surgery/blood_filter.dm +++ b/code/modules/surgery/blood_filter.dm @@ -68,7 +68,7 @@ if(target.reagents?.total_volume) for(var/datum/reagent/chem as anything in target.reagents.reagent_list) if(!length(bloodfilter.whitelist) || (chem.type in bloodfilter.whitelist)) - target.reagents.remove_reagent(chem.type, min(round(chem.volume * 0.22, 0.2), 10)) + target.reagents.remove_reagent(chem.type, clamp(round(chem.volume * 0.22, 0.2), 0.4, 10)) display_results( user, target, diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index c03a930395ab9..5d6228d07725c 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -115,6 +115,8 @@ ///the type of damage overlay (if any) to use when this bodypart is bruised/burned. var/dmg_overlay_type = "human" + ///a color (optionally matrix) for the damage overlays to give the limb + var/damage_overlay_color /// If we're bleeding, which icon are we displaying on this part var/bleed_overlay_icon @@ -199,6 +201,8 @@ var/any_existing_wound_can_mangle_our_interior /// get_damage() / total_damage must surpass this to allow our limb to be disabled, even temporarily, by an EMP. var/robotic_emp_paralyze_damage_percent_threshold = 0.3 + /// A potential texturing overlay to put on the limb + var/datum/bodypart_overlay/texture/texture_bodypart_overlay /obj/item/bodypart/apply_fantasy_bonuses(bonus) . = ..() @@ -224,6 +228,10 @@ RegisterSignal(src, COMSIG_ATOM_RESTYLE, PROC_REF(on_attempt_feature_restyle)) + if(texture_bodypart_overlay) + texture_bodypart_overlay = new texture_bodypart_overlay() + add_bodypart_overlay(texture_bodypart_overlay) + if(!IS_ORGANIC_LIMB(src)) grind_results = null @@ -351,7 +359,7 @@ check_list += "\t [span_boldwarning("Your [name] is suffering [wound.a_or_from] [LOWER_TEXT(wound.name)]!!!")]" for(var/obj/item/embedded_thing in embedded_objects) - var/stuck_word = embedded_thing.isEmbedHarmless() ? "stuck" : "embedded" + var/stuck_word = embedded_thing.is_embed_harmless() ? "stuck" : "embedded" check_list += "\t There is \a [embedded_thing] [stuck_word] in your [name]!" /obj/item/bodypart/blob_act() @@ -1059,7 +1067,8 @@ for(var/external_layer in overlay.all_layers) if(overlay.layers & external_layer) . += overlay.get_overlay(external_layer, src) - + for(var/datum/layer in .) + overlay.modify_bodypart_appearance(layer) return . /obj/item/bodypart/proc/huskify_image(image/thing_to_husk, draw_blood = TRUE) @@ -1096,15 +1105,15 @@ if(embed in embedded_objects) // go away return // We don't need to do anything with projectile embedding, because it will never reach this point - RegisterSignal(embed, COMSIG_ITEM_EMBEDDING_UPDATE, PROC_REF(embedded_object_changed)) embedded_objects += embed + RegisterSignal(embed, COMSIG_ITEM_EMBEDDING_UPDATE, PROC_REF(embedded_object_changed)) refresh_bleed_rate() /// INTERNAL PROC, DO NOT USE /// Cleans up any attachment we have to the embedded object, removes it from our list /obj/item/bodypart/proc/_unembed_object(obj/item/unembed) - UnregisterSignal(unembed, COMSIG_ITEM_EMBEDDING_UPDATE) embedded_objects -= unembed + UnregisterSignal(unembed, COMSIG_ITEM_EMBEDDING_UPDATE) refresh_bleed_rate() /obj/item/bodypart/proc/embedded_object_changed(obj/item/embedded_source) @@ -1157,7 +1166,7 @@ cached_bleed_rate += 0.5 for(var/obj/item/embeddies in embedded_objects) - if(!embeddies.isEmbedHarmless()) + if(!embeddies.is_embed_harmless()) cached_bleed_rate += 0.25 for(var/datum/wound/iter_wound as anything in wounds) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 863cdd9cb61c2..a0955af4e46c8 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -139,7 +139,7 @@ /mob/living/carbon/proc/has_embedded_objects(include_harmless=FALSE) for(var/obj/item/bodypart/bodypart as anything in bodyparts) for(var/obj/item/embedded in bodypart.embedded_objects) - if(!include_harmless && embedded.isEmbedHarmless()) + if(!include_harmless && embedded.is_embed_harmless()) continue return TRUE diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 6e3b5ca921bc4..992d60142bdcf 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -182,7 +182,7 @@ return var/atom/movable/screen/inventory/hand/hand = new_owner.hud_used.hand_slots["[held_index]"] - hand.update_appearance() + hand?.update_appearance() /obj/item/bodypart/arm/left name = "left arm" @@ -210,12 +210,12 @@ ..() /obj/item/bodypart/arm/left/clear_ownership(mob/living/carbon/old_owner) + . = ..() if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_L_ARM)) UnregisterSignal(old_owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM)) REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) else UnregisterSignal(old_owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM)) - ..() ///Proc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait. /obj/item/bodypart/arm/left/proc/on_owner_paralysis_gain(mob/living/carbon/source) @@ -308,12 +308,12 @@ ..() /obj/item/bodypart/arm/right/clear_ownership(mob/living/carbon/old_owner) + . = ..() if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_R_ARM)) UnregisterSignal(old_owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM)) REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) else UnregisterSignal(old_owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM)) - ..() ///Proc to react to the owner gaining the TRAIT_PARALYSIS_R_ARM trait. /obj/item/bodypart/arm/right/proc/on_owner_paralysis_gain(mob/living/carbon/source) @@ -429,12 +429,12 @@ ..() /obj/item/bodypart/leg/left/clear_ownership(mob/living/carbon/old_owner) + . = ..() if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_L_LEG)) UnregisterSignal(old_owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG)) REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) else UnregisterSignal(old_owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG)) - ..() ///Proc to react to the owner gaining the TRAIT_PARALYSIS_L_ARM trait. /obj/item/bodypart/leg/left/proc/on_owner_paralysis_gain(mob/living/carbon/source) @@ -518,12 +518,12 @@ ..() /obj/item/bodypart/leg/right/clear_ownership(mob/living/carbon/old_owner) + . = ..() if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_R_LEG)) UnregisterSignal(old_owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG)) REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) else UnregisterSignal(old_owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG)) - ..() ///Proc to react to the owner gaining the TRAIT_PARALYSIS_R_LEG trait. /obj/item/bodypart/leg/right/proc/on_owner_paralysis_gain(mob/living/carbon/source) diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm index deda90bdd6e9a..4c7382f3daee4 100644 --- a/code/modules/surgery/core_removal.dm +++ b/code/modules/surgery/core_removal.dm @@ -37,23 +37,15 @@ /datum/surgery_step/extract_core/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/mob/living/basic/slime/target_slime = target - if(target_slime.cores > 0) - target_slime.cores-- + var/core_count = target_slime.cores + if(core_count && target_slime.try_extract_cores(count = core_count)) display_results( user, target, - span_notice("You successfully extract a core from [target]. [target_slime.cores] core\s remaining."), - span_notice("[user] successfully extracts a core from [target]!"), - span_notice("[user] successfully extracts a core from [target]!"), + span_notice("You successfully extract [core_count] core\s from [target]."), + span_notice("[user] successfully extracts [core_count] core\s from [target]!"), + span_notice("[user] successfully extracts [core_count] core\s from [target]!"), ) - - new target_slime.slime_type.core_type(target_slime.loc) - - if(target_slime.cores <= 0) - target_slime.icon_state = "[target_slime.slime_type.colour] baby slime dead-nocore" - return ..() - else - return FALSE - else - to_chat(user, span_warning("There aren't any cores left in [target]!")) - return ..() + return TRUE + to_chat(user, span_warning("There aren't any cores left in [target]!")) + return ..() diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 6e3d9a0ee7ccb..0bb8afc6ced52 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -149,6 +149,10 @@ surgery_speed = 0.75 loaded_overlay = "autosurgeon_syndicate_loaded_overlay" +/obj/item/autosurgeon/syndicate/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/item/autosurgeon/syndicate/laser_arm desc = "A single use autosurgeon that contains a combat arms-up laser augment. A screwdriver can be used to remove it, but implants can't be placed back in." uses = 1 diff --git a/code/modules/surgery/organs/external/wings/functional_wings.dm b/code/modules/surgery/organs/external/wings/functional_wings.dm index 23f897bce95a2..f4a5a23bf69ef 100644 --- a/code/modules/surgery/organs/external/wings/functional_wings.dm +++ b/code/modules/surgery/organs/external/wings/functional_wings.dm @@ -25,6 +25,8 @@ ///Are our wings open or closed? var/wings_open = FALSE + ///We cant hide this wings in suit + var/cant_hide = FALSE // grind_results = list(/datum/reagent/flightpotion = 5) food_reagents = list(/datum/reagent/flightpotion = 5) @@ -66,7 +68,7 @@ if(human.stat || human.body_position == LYING_DOWN) return FALSE //Jumpsuits have tail holes, so it makes sense they have wing holes too - if(human.wear_suit && ((human.wear_suit.flags_inv & HIDEJUMPSUIT) && (!human.wear_suit.species_exception || !is_type_in_list(src, human.wear_suit.species_exception)))) + if(!cant_hide && human.wear_suit && ((human.wear_suit.flags_inv & HIDEJUMPSUIT) && (!human.wear_suit.species_exception || !is_type_in_list(src, human.wear_suit.species_exception)))) to_chat(human, span_warning("Your suit blocks your wings from extending!")) return FALSE var/turf/location = get_turf(human) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index a2eeb4eac32ca..324b2c538b840 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -137,6 +137,7 @@ /obj/item/organ/internal/cyberimp/arm/proc/Retract() if(!active_item || (active_item in src)) return FALSE + active_item.resistance_flags = active_item::resistance_flags if(owner) owner.visible_message( span_notice("[owner] retracts [active_item] back into [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."), diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm b/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm index 24aadfeca14f6..046c84200d1eb 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm @@ -260,3 +260,60 @@ deactivate(silent = TRUE) return FALSE + +/obj/item/organ/internal/cyberimp/chest/spine + name = "\improper Herculean gravitronic spinal implant" + desc = "This gravitronic spinal interface is able to improve the athletics of a user, allowing them greater physical ability. \ + Contains a slot which can be upgraded with a gravity anomaly core, improving its performance." + implant_color = "#15704c" + slot = ORGAN_SLOT_SPINE + /// How much faster does the spinal implant improve our lifting speed, workout ability, reducing falling damage and improving climbing and standing speed + var/athletics_boost_multiplier = 0.8 + /// How much additional throwing range does our spinal implant grant us. + var/added_throw_range = 2 + /// How much additional boxing damage and tackling power do we add? + var/strength_bonus = 4 + /// Whether or not a gravity anomaly core has been installed, improving the effectiveness of the spinal implant. + var/core_applied = FALSE + /// The overlay for our implant to indicate that, yes, this person has an implant inserted. + var/mutable_appearance/stone_overlay + +/obj/item/organ/internal/cyberimp/chest/spine/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + to_chat(owner, span_warning("You feel sheering pain as your body is crushed like a soda can!")) + owner.apply_damage(20/severity, BRUTE, def_zone = BODY_ZONE_CHEST) + +/obj/item/organ/internal/cyberimp/chest/spine/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags) + . = ..() + stone_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "stone") + organ_owner.add_overlay(stone_overlay) + if(core_applied) + organ_owner.AddElement(/datum/element/forced_gravity, 1) + +/obj/item/organ/internal/cyberimp/chest/spine/on_mob_remove(mob/living/carbon/organ_owner, special) + . = ..() + if(stone_overlay) + organ_owner.cut_overlay(stone_overlay) + stone_overlay = null + if(core_applied) + organ_owner.RemoveElement(/datum/element/forced_gravity, 1) + +/obj/item/organ/internal/cyberimp/chest/spine/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(core_applied) + user.balloon_alert(user, "core already installed!") + return ITEM_INTERACT_BLOCKING + + if(istype(tool, /obj/item/assembly/signaler/anomaly/grav)) + user.balloon_alert(user, "core installed.") + athletics_boost_multiplier = 0.25 + added_throw_range += 2 + strength_bonus += 4 + core_applied = TRUE + name = "\improper Atlas gravitonic spinal implant" + desc = "This gravitronic spinal interface is able to improve the athletics of a user, allowing them greater physical ability. \ + This one has been improved through the installation of a gravity anomaly core, allowing for personal gravity manipulation." + qdel(tool) + return ITEM_INTERACT_SUCCESS diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index 89c6f9c96a411..a50912416ef87 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -119,12 +119,12 @@ /obj/item/organ/internal/cyberimp/brain/anti_stun/on_mob_remove(mob/living/carbon/implant_owner) . = ..() UnregisterSignal(implant_owner, signalCache) - UnregisterSignal(implant_owner, COMSIG_CARBON_ENTER_STAMCRIT) + UnregisterSignal(implant_owner, COMSIG_LIVING_ENTER_STAMCRIT) /obj/item/organ/internal/cyberimp/brain/anti_stun/on_mob_insert(mob/living/carbon/receiver) . = ..() RegisterSignals(receiver, signalCache, PROC_REF(on_signal)) - RegisterSignal(receiver, COMSIG_CARBON_ENTER_STAMCRIT, PROC_REF(on_stamcrit)) + RegisterSignal(receiver, COMSIG_LIVING_ENTER_STAMCRIT, PROC_REF(on_stamcrit)) /obj/item/organ/internal/cyberimp/brain/anti_stun/proc/on_signal(datum/source, amount) SIGNAL_HANDLER @@ -139,23 +139,23 @@ /obj/item/organ/internal/cyberimp/brain/anti_stun/proc/clear_stuns() if(isnull(owner) || (organ_flags & ORGAN_FAILING) || !COOLDOWN_FINISHED(src, implant_cooldown)) return - + owner.SetStun(0) owner.SetKnockdown(0) owner.SetImmobilized(0) owner.SetParalyzed(0) owner.setStaminaLoss(0) addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living, setStaminaLoss), 0), stun_resistance_time) - + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread sparks.set_up(5, 1, src) sparks.start() owner.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_BATON_RESISTANCE, TRAIT_STUNIMMUNE), REF(src)) - addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_IGNOREDAMAGESLOWDOWN, REF(src)), stun_resistance_time) + addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_IGNOREDAMAGESLOWDOWN, REF(src)), stun_resistance_time) addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_BATON_RESISTANCE, REF(src)), stun_resistance_time) addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_STUNIMMUNE, REF(src)), stun_resistance_time) - + COOLDOWN_START(src, implant_cooldown, 60 SECONDS) addtimer(CALLBACK(src, PROC_REF(implant_ready)),60 SECONDS) @@ -171,7 +171,7 @@ addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) /obj/item/organ/internal/cyberimp/brain/anti_stun/proc/reboot() - organ_flags &= ~ORGAN_FAILING + organ_flags &= ~ORGAN_FAILING implant_ready() //[[[[MOUTH]]]] diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm index 2773f588b24da..f3899cb994648 100644 --- a/code/modules/surgery/organs/internal/heart/_heart.dm +++ b/code/modules/surgery/organs/internal/heart/_heart.dm @@ -18,6 +18,9 @@ attack_verb_continuous = list("beats", "thumps") attack_verb_simple = list("beat", "thump") + // Love is stored in the heart. + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/love = 2.5) + // Heart attack code is in code/modules/mob/living/carbon/human/life.dm /// Whether the heart is currently beating. diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 87dfb124a61a4..7904c4bea91cc 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -94,11 +94,15 @@ /obj/item/organ/internal/tongue/proc/handle_speech(datum/source, list/speech_args) SIGNAL_HANDLER + if(should_modify_speech(source, speech_args)) + modify_speech(source, speech_args) + +/obj/item/organ/internal/tongue/proc/should_modify_speech(datum/source, list/speech_args) if(speech_args[SPEECH_LANGUAGE] in languages_native) // Speaking a native language? return FALSE // Don't modify speech if(HAS_TRAIT(source, TRAIT_SIGN_LANG)) // No modifiers for signers - I hate this but I simply cannot get these to combine into one statement return FALSE // Don't modify speech - modify_speech(source, speech_args) + return TRUE /obj/item/organ/internal/tongue/proc/modify_speech(datum/source, list/speech_args) return speech_args[SPEECH_MESSAGE] @@ -184,23 +188,18 @@ liked_foodtypes = GORE | MEAT | SEAFOOD | NUTS | BUGS disliked_foodtypes = GRAIN | DAIRY | CLOTH | GROSS voice_filter = @{"[0:a] asplit [out0][out2]; [out0] asetrate=%SAMPLE_RATE%*0.9,aresample=%SAMPLE_RATE%,atempo=1/0.9,aformat=channel_layouts=mono,volume=0.2 [p0]; [out2] asetrate=%SAMPLE_RATE%*1.1,aresample=%SAMPLE_RATE%,atempo=1/1.1,aformat=channel_layouts=mono,volume=0.2[p2]; [p0][0][p2] amix=inputs=3"} + var/static/list/speech_replacements = list( + new /regex("s+", "g") = "sss", + new /regex("S+", "g") = "SSS", + new /regex(@"(\w)x", "g") = "$1kss", + new /regex(@"(\w)X", "g") = "$1KSSS", + new /regex(@"\bx([\-|r|R]|\b)", "g") = "ecks$1", + new /regex(@"\bX([\-|r|R]|\b)", "g") = "ECKS$1", + ) -/obj/item/organ/internal/tongue/lizard/modify_speech(datum/source, list/speech_args) - var/static/regex/lizard_hiss = new("s+", "g") - var/static/regex/lizard_hiSS = new("S+", "g") - var/static/regex/lizard_kss = new(@"(\w)x", "g") - var/static/regex/lizard_kSS = new(@"(\w)X", "g") - var/static/regex/lizard_ecks = new(@"\bx([\-|r|R]|\b)", "g") - var/static/regex/lizard_eckS = new(@"\bX([\-|r|R]|\b)", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = lizard_hiss.Replace(message, "sss") - message = lizard_hiSS.Replace(message, "SSS") - message = lizard_kss.Replace(message, "$1kss") - message = lizard_kSS.Replace(message, "$1KSS") - message = lizard_ecks.Replace(message, "ecks$1") - message = lizard_eckS.Replace(message, "ECKS$1") - speech_args[SPEECH_MESSAGE] = message +/obj/item/organ/internal/tongue/lizard/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) /obj/item/organ/internal/tongue/lizard/silver name = "silver tongue" diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index c739745969e8e..350bd60fbd176 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -177,7 +177,7 @@ return if(target.stat >= UNCONSCIOUS) var/datum/mood_event/surgery/target_mood_event = target.mob_mood.mood_events[SURGERY_MOOD_CATEGORY] - if(target_mood_event?.surgery_completed) //don't give sleeping mobs trauma. that said, if they fell asleep mid-surgery after already getting the bad mood, lets make sure they wake up to a (hopefully) happy memory. + if(!target_mood_event || target_mood_event.surgery_completed) //don't give sleeping mobs trauma. that said, if they fell asleep mid-surgery after already getting the bad mood, lets make sure they wake up to a (hopefully) happy memory. return switch(surgery_state) if(SURGERY_STATE_STARTED) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index eba496e0b8c5f..2bd8f485887f8 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -286,8 +286,8 @@ //saws are very accurate and fast at butchering var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/chainsaw) - AddComponent( - /datum/component/slapcrafting,\ + AddElement( + /datum/element/slapcrafting,\ slapcraft_recipes = slapcraft_recipe_list,\ ) diff --git a/code/modules/transport/tram/tram_floors.dm b/code/modules/transport/tram/tram_floors.dm index 9f0b6907fe9c1..f267ccf5cdc84 100644 --- a/code/modules/transport/tram/tram_floors.dm +++ b/code/modules/transport/tram/tram_floors.dm @@ -183,7 +183,7 @@ integrity_failure = 0.75 armor_type = /datum/armor/tram_floor layer = TRAM_FLOOR_LAYER - plane = FLOOR_PLANE + plane = GAME_PLANE obj_flags = BLOCK_Z_OUT_DOWN | BLOCK_Z_OUT_UP appearance_flags = PIXEL_SCALE|KEEP_TOGETHER var/secured = TRUE diff --git a/code/modules/transport/tram/tram_signals.dm b/code/modules/transport/tram/tram_signals.dm index db8aa17ddcb3e..faf4a46e11e28 100644 --- a/code/modules/transport/tram/tram_signals.dm +++ b/code/modules/transport/tram/tram_signals.dm @@ -473,6 +473,7 @@ icon_state = "sensor-base" desc = "Uses an infrared beam to detect passing trams. Works when paired with a sensor on the other side of the track." layer = TRAM_RAIL_LAYER + plane = FLOOR_PLANE use_power = NO_POWER_USE circuit = /obj/item/circuitboard/machine/guideway_sensor /// Sensors work in a married pair diff --git a/code/modules/transport/transport_module.dm b/code/modules/transport/transport_module.dm index 268452743e7b2..104601f2f6ca3 100644 --- a/code/modules/transport/transport_module.dm +++ b/code/modules/transport/transport_module.dm @@ -14,7 +14,7 @@ armor_type = /datum/armor/transport_module max_integrity = 50 layer = TRAM_FLOOR_LAYER - plane = FLOOR_PLANE + plane = GAME_PLANE smoothing_flags = SMOOTH_BITMASK smoothing_groups = SMOOTH_GROUP_INDUSTRIAL_LIFT canSmoothWith = SMOOTH_GROUP_INDUSTRIAL_LIFT diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index d164bca069dab..8a869071c7c48 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -96,6 +96,7 @@ #include "armor_verification.dm" #include "atmospherics_sanity.dm" #include "autowiki.dm" +#include "bake_a_cake.dm" #include "barsigns.dm" #include "baseturfs.dm" #include "bespoke_id.dm" @@ -214,6 +215,7 @@ #include "pills.dm" #include "plane_double_transform.dm" #include "plane_dupe_detector.dm" +#include "plane_sanity.dm" #include "plantgrowth_tests.dm" #include "preference_species.dm" #include "preferences.dm" diff --git a/code/modules/unit_tests/bake_a_cake.dm b/code/modules/unit_tests/bake_a_cake.dm new file mode 100644 index 0000000000000..a4013d1c13794 --- /dev/null +++ b/code/modules/unit_tests/bake_a_cake.dm @@ -0,0 +1,77 @@ +/** + * Confirm that it is possible to bake a cake, get the food buff from a hand-made food and confirm that the reagents are consistent throughout the process + */ +/datum/unit_test/bake_a_cake/Run() + var/turf/table_loc = run_loc_floor_bottom_left + var/turf/oven_loc = get_step(run_loc_floor_bottom_left, EAST) + var/turf/human_loc = get_step(run_loc_floor_bottom_left, NORTHEAST) + var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human/consistent, human_loc) + var/obj/machinery/oven/the_oven = allocate(/obj/machinery/oven, oven_loc) + var/obj/structure/table/the_table = allocate(/obj/structure/table, table_loc) + var/obj/item/knife/kitchen/a_knife = allocate(/obj/item/knife/kitchen, table_loc) + var/obj/item/reagent_containers/cup/beaker/beaker = allocate(/obj/item/reagent_containers/cup/beaker, table_loc) + var/obj/item/reagent_containers/condiment/flour/flour_bag = allocate(/obj/item/reagent_containers/condiment/flour, table_loc) + var/obj/item/reagent_containers/condiment/sugar/sugar_bag = allocate(/obj/item/reagent_containers/condiment/sugar, table_loc) + var/obj/item/storage/fancy/egg_box/egg_box = allocate(/obj/item/storage/fancy/egg_box, table_loc) + var/obj/item/food/egg/sample_egg = egg_box.contents[1] + + var/datum/chemical_reaction/recipe = GLOB.chemical_reactions_list[/datum/chemical_reaction/food/cakebatter] + var/sugar_required = recipe.required_reagents[/datum/reagent/consumable/sugar] + var/flour_required = recipe.required_reagents[/datum/reagent/consumable/flour] + var/eggyolk_required = recipe.required_reagents[/datum/reagent/consumable/eggyolk] + var/eggwhite_required = recipe.required_reagents[/datum/reagent/consumable/eggwhite] + var/total_volume = sugar_required + flour_required + eggyolk_required + eggwhite_required + + var/sugar_purity = sugar_bag.reagents.get_average_purity() + TEST_ASSERT_EQUAL(sugar_purity, 1, "Incorrect sugar purity!") + var/flour_purity = flour_bag.reagents.get_average_purity() + TEST_ASSERT_EQUAL(flour_purity, CONSUMABLE_STANDARD_PURITY, "Incorrect flour purity!") + var/egg_purity = sample_egg.reagents.get_average_purity() + TEST_ASSERT_EQUAL(egg_purity, CONSUMABLE_STANDARD_PURITY, "Incorrect egg reagents purity!") + + human.mind = new /datum/mind(null) // Add brain for the food buff + + // It's a piece of cake to bake a pretty cake + while(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/sugar) < sugar_required && beaker.reagents.total_volume < total_volume) + sugar_bag.melee_attack_chain(human, beaker) + while(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/flour) < flour_required && beaker.reagents.total_volume < total_volume) + flour_bag.melee_attack_chain(human, beaker) + while((beaker.reagents.get_reagent_amount(/datum/reagent/consumable/eggyolk) < eggyolk_required \ + || beaker.reagents.get_reagent_amount(/datum/reagent/consumable/eggwhite) < eggwhite_required) \ + && beaker.reagents.total_volume < total_volume \ + && beaker.reagents.total_volume >= (sugar_required + flour_required)) // Make sure that we won't miss the reaction + var/obj/item/egg = egg_box.contents[1] + egg.melee_attack_chain(human, beaker, RIGHT_CLICK) + var/obj/item/food/cake_batter = locate(/obj/item/food/cakebatter) in table_loc + TEST_ASSERT_NOTNULL(cake_batter, "Failed making cake batter!") + TEST_ASSERT_EQUAL(beaker.reagents.total_volume, 0, "Cake batter did not consume all beaker reagents!") + + var/batter_purity = cake_batter.reagents.get_average_purity() + var/batter_purity_expected = (sugar_required * sugar_purity + flour_required * flour_purity + (eggyolk_required + eggwhite_required) * egg_purity) / total_volume + TEST_ASSERT_EQUAL(batter_purity, batter_purity_expected, "Incorrect average purity of the cake batter reagents!") + + the_oven.add_tray_to_oven(new /obj/item/plate/oven_tray(the_oven)) // Doesn't have one unless maploaded + the_oven.attack_hand(human) + var/obj/item/plate/oven_tray/oven_tray = locate(/obj/item/plate/oven_tray) in the_oven.contents + TEST_ASSERT_NOTNULL(oven_tray, "The oven doesn't have a tray!") + cake_batter.melee_attack_chain(human, oven_tray, list2params(list(ICON_X = 0, ICON_Y = 0))) + the_oven.attack_hand(human) + the_oven.process(90 SECONDS) // Bake it + the_oven.attack_hand(human) + var/obj/item/food/cake/plain/cake = locate(/obj/item/food/cake/plain) in oven_tray.contents + TEST_ASSERT_NOTNULL(cake, "Didn't manage to bake a cake!") + + cake.melee_attack_chain(human, the_table, list2params(list(ICON_X = 0, ICON_Y = 0))) + a_knife.melee_attack_chain(human, cake) + var/obj/item/food/cakeslice/plain/cake_slice = locate(/obj/item/food/cakeslice/plain) in table_loc + TEST_ASSERT_NOTNULL(cake_slice, "Didn't manage to cut the cake!") + + var/cake_slice_purity = cake_slice.reagents.get_average_purity() + TEST_ASSERT_EQUAL(cake_slice_purity, batter_purity_expected, "Incorrect average purity of the cake slice reagents!") + + cake_slice.attack_hand(human) // Pick it up + var/datum/component/edible/edible_comp = cake_slice.GetComponent(/datum/component/edible) + edible_comp.eat_time = 0 + cake_slice.attack(human, human) // Eat it + var/datum/status_effect/food/effect = locate(/datum/status_effect/food) in human.status_effects + TEST_ASSERT_NOTNULL(effect, "Eating the cake had no effect!") diff --git a/code/modules/unit_tests/focus_only_tests.dm b/code/modules/unit_tests/focus_only_tests.dm index 15d04ee885233..31f34d9f2fb94 100644 --- a/code/modules/unit_tests/focus_only_tests.dm +++ b/code/modules/unit_tests/focus_only_tests.dm @@ -47,3 +47,6 @@ /// Checks that maploaded mobs with either the `atmos_requirements` or `body_temp_sensitive` /datum/unit_test/focus_only/atmos_and_temp_requirements + +/// Ensures only whitelisted planes can have TOPDOWN_LAYERing, and vis versa +/datum/unit_test/focus_only/topdown_filtering diff --git a/code/modules/unit_tests/lootpanel.dm b/code/modules/unit_tests/lootpanel.dm index 1903c22d54652..41374a1950c02 100644 --- a/code/modules/unit_tests/lootpanel.dm +++ b/code/modules/unit_tests/lootpanel.dm @@ -2,8 +2,8 @@ abstract_type = /datum/unit_test/lootpanel /datum/unit_test/lootpanel/contents/Run() - var/datum/client_interface/mock_client = new() - var/datum/lootpanel/panel = new(mock_client) + var/datum/client_interface/mock_client = allocate(/datum/client_interface) + var/datum/lootpanel/panel = allocate(/datum/lootpanel, mock_client) var/mob/living/carbon/human/labrat = allocate(/mob/living/carbon/human/consistent) mock_client.mob = labrat var/turf/one_over = locate(run_loc_floor_bottom_left.x + 1, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z) @@ -32,4 +32,3 @@ TEST_ASSERT_EQUAL(length(panel.contents), 2, "Panel shouldnt dupe searchables if reopened") mock_client.mob = null - diff --git a/code/modules/unit_tests/plane_sanity.dm b/code/modules/unit_tests/plane_sanity.dm new file mode 100644 index 0000000000000..890a0531908a4 --- /dev/null +++ b/code/modules/unit_tests/plane_sanity.dm @@ -0,0 +1,10 @@ +/// Ensures we have no invalid plane/layer combos post init +/datum/unit_test/plane_layer_sanity + priority = TEST_LONGER + +/datum/unit_test/plane_layer_sanity/Run() + // This fucker's gonna be slow, I'm sorry + for(var/mutable_appearance/appearance) + check_topdown_validity(appearance) + for(var/atom/thing) + check_topdown_validity(thing) diff --git a/code/modules/unit_tests/say.dm b/code/modules/unit_tests/say.dm index ec58dcedc8831..7536392e70cd4 100644 --- a/code/modules/unit_tests/say.dm +++ b/code/modules/unit_tests/say.dm @@ -22,6 +22,46 @@ TEST_ASSERT(!expected_mods.len, "Some message mods were expected, but were not returned by get_message_mods: [json_encode(expected_mods)]. Message: [message]") +/// Test to ensure native tongue languages properly impact speech +/datum/unit_test/speech_modifiers + var/mob/living/carbon/human/talking_lizard + var/list/handle_speech_result = null + +/datum/unit_test/speech_modifiers/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + TEST_ASSERT(speech_args[SPEECH_MESSAGE], "Handle speech signal does not have a message arg") + TEST_ASSERT(speech_args[SPEECH_LANGUAGE], "Handle speech signal does not have a language arg") + + // saving hearing_args directly via handle_speech_result = speech_args won't work since the arg list + // is a temporary variable that gets garbage collected after it's done being used by procs + // therefore we need to create a new list and transfer the args + handle_speech_result = list() + handle_speech_result += speech_args + +/datum/unit_test/speech_modifiers/Run() + talking_lizard = allocate(/mob/living/carbon/human/consistent) + talking_lizard.set_species(/datum/species/lizard) + var/hissed_quote = "SSShe isss ssso sssasssy" + var/unhissed_quote = "She is so sassy" + + RegisterSignal(talking_lizard, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + + // lizard's forked tongue causes hissing when speaking common + talking_lizard.set_active_language(/datum/language/common) + talking_lizard.say(unhissed_quote) + TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired") + TEST_ASSERT_EQUAL(hissed_quote, handle_speech_result[SPEECH_MESSAGE], "Speech modifier test failed: [handle_speech_result[SPEECH_LANGUAGE]] did not equal [hissed_quote] when spoken by a lizard in language [handle_speech_result[SPEECH_LANGUAGE]]") + + handle_speech_result = null + + // lizard's forked tongue does not cause hissing when speaking native draconic + talking_lizard.set_active_language(/datum/language/draconic) + talking_lizard.say(unhissed_quote) + TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired") + TEST_ASSERT_EQUAL(unhissed_quote, handle_speech_result[SPEECH_MESSAGE], "Speech modifier test failed: [handle_speech_result[SPEECH_LANGUAGE]] did not equal [unhissed_quote] when spoken by a lizard in language [handle_speech_result[SPEECH_LANGUAGE]]") + + /// Test to verify COMSIG_MOB_SAY is sent the exact same list as the message args, as they're operated on /datum/unit_test/say_signal @@ -76,7 +116,7 @@ TEST_ASSERT(speech_args[SPEECH_LANGUAGE], "Handle speech signal does not have a language arg") TEST_ASSERT(speech_args[SPEECH_RANGE], "Handle speech signal does not have a range arg") - // saving hearing_args directly via handle_speech_result = speech_args won't work since the arg list + // saving speech_args directly via handle_speech_result = speech_args won't work since the arg list // is a temporary variable that gets garbage collected after it's done being used by procs // therefore we need to create a new list and transfer the args handle_speech_result = list() @@ -126,7 +166,7 @@ var/datum/client_interface/mock_client = new() listener.mock_client = mock_client - RegisterSignal(speaker, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(speaker, COMSIG_MOB_SAY, PROC_REF(handle_speech)) // RegisterSignal(speaker_radio, COMSIG_RADIO_NEW_MESSAGE, PROC_REF(handle_radio_hearing)) RegisterSignal(listener, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png new file mode 100644 index 0000000000000..08ff8c889d2fe Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_voidwalker.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png b/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png index c29a1e742f1f4..adc462ace50d1 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png and b/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png new file mode 100644 index 0000000000000..78962671d1192 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_voidwalker.png differ diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index afce8392d5828..ed2510b829434 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -286,6 +286,10 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests()) returnable_list += typesof(/obj/effect/anomaly/grav/high) //See above returnable_list += typesof(/obj/effect/timestop) + //Sparks can ignite a number of things, causing a fire to burn the floor away. Only you can prevent CI fires + returnable_list += typesof(/obj/effect/particle_effect/sparks) + //See above - These are one of those things. + returnable_list += typesof(/obj/effect/decal/cleanable/fuel_pool) //Invoke async in init, skippppp returnable_list += typesof(/mob/living/silicon/robot/model) //This lad also sleeps diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 4d539be433de2..596ea9e1ffad4 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -48,11 +48,11 @@ hidden_uplink.uplink_handler.debug_mode = TRUE /obj/item/uplink/nuclear - uplink_flag = UPLINK_NUKE_OPS + uplink_flag = UPLINK_ALL_SYNDIE_OPS /obj/item/uplink/nuclear/debug name = "debug nuclear uplink" - uplink_flag = UPLINK_NUKE_OPS + uplink_flag = UPLINK_ALL_SYNDIE_OPS /obj/item/uplink/nuclear/debug/Initialize(mapload, owner, tc_amount = 9000, datum/uplink_handler/uplink_handler_override = null) . = ..() @@ -68,6 +68,10 @@ var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) hidden_uplink.allow_restricted = FALSE +///A subtype used for lone ops, with some of the stuff they shouldn't/can't access removed from purchase. +/obj/item/uplink/loneop + uplink_flag = UPLINK_LONE_OP + /obj/item/uplink/clownop uplink_flag = UPLINK_CLOWN_OPS diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index e17488bc96a6d..bf963587ae1cc 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -78,8 +78,8 @@ var/purchase_log_vis = TRUE // Visible in the purchase log? /// Whether this purchase is restricted or not (VR/Events related) var/restricted = FALSE - /// Can this item be deconstructed to unlock certain techweb research nodes? - var/illegal_tech = TRUE + /// Flags related to if an item will provide illegal tech, or trips contraband detectors once spawned in as an item. + var/uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /// String to be shown instead of the price, e.g for the Random item. var/cost_override_string = "" /// Whether this item locks all other items from being purchased. Used by syndicate balloon and a few other purchases. @@ -142,6 +142,12 @@ spawned_item = spawn_path if(refundable) spawned_item.AddElement(/datum/element/uplink_reimburse, (refund_amount ? refund_amount : cost)) + + + if(uplink_item_flags & SYNDIE_TRIPS_CONTRABAND) // Ignore things that shouldn't be detectable as contraband on the station. + ADD_TRAIT(spawned_item, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in spawned_item.get_all_contents()) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) var/mob/living/carbon/human/human_user = user if(istype(human_user) && isitem(spawned_item) && human_user.put_in_hands(spawned_item)) to_chat(human_user, span_boldnotice("[spawned_item] materializes into your hands!")) @@ -154,8 +160,10 @@ /// Can be used to "de-restrict" some items, such as Nukie guns spawning with Syndicate pins /datum/uplink_item/proc/spawn_item_for_generic_use(mob/user) var/atom/movable/created = new item(user.loc) - - if(isgun(created)) + if(uplink_item_flags & SYNDIE_TRIPS_CONTRABAND) // Things that shouldn't be detectable as contraband on the station. + ADD_TRAIT(created, TRAIT_CONTRABAND, INNATE_TRAIT) + for(var/obj/contained as anything in created.get_all_contents()) + ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT) replace_pin(created) else if(istype(created, /obj/item/storage/toolbox/guncase)) for(var/obj/item/gun/gun in created) @@ -205,7 +213,7 @@ name = "Objective-Specific Equipment" desc = "Equipment necessary for accomplishing specific objectives. If you are seeing this, something has gone wrong." limited_stock = 1 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY // Ditto /datum/uplink_item/special_equipment/purchase(mob/user, datum/component/uplink/U) diff --git a/code/modules/uplink/uplink_items/ammunition.dm b/code/modules/uplink/uplink_items/ammunition.dm index 5326880d31be6..2276485a2b7b5 100644 --- a/code/modules/uplink/uplink_items/ammunition.dm +++ b/code/modules/uplink/uplink_items/ammunition.dm @@ -12,16 +12,16 @@ item = /obj/item/ammo_box/foambox/riot cost = 2 surplus = 0 - illegal_tech = FALSE - purchasable_from = ~UPLINK_NUKE_OPS + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND + purchasable_from = ~UPLINK_SERIOUS_OPS /datum/uplink_item/ammo/pistol name = "9mm Handgun Magazine" desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol." item = /obj/item/ammo_box/magazine/m9mm cost = 1 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - illegal_tech = FALSE + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/ammo/pistolap name = "9mm Armour Piercing Magazine" @@ -29,7 +29,7 @@ These rounds are less effective at injuring the target but penetrate protective gear." item = /obj/item/ammo_box/magazine/m9mm/ap cost = 2 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/ammo/pistolhp name = "9mm Hollow Point Magazine" @@ -37,7 +37,7 @@ These rounds are more damaging but ineffective against armour." item = /obj/item/ammo_box/magazine/m9mm/hp cost = 3 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/ammo/pistolfire name = "9mm Incendiary Magazine" @@ -45,7 +45,7 @@ Loaded with incendiary rounds which inflict little damage, but ignite the target." item = /obj/item/ammo_box/magazine/m9mm/fire cost = 2 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/ammo/revolver name = ".357 Speed Loader" @@ -53,5 +53,5 @@ For when you really need a lot of things dead." item = /obj/item/ammo_box/a357 cost = 4 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) //nukies get their own version - illegal_tech = FALSE + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) //nukies get their own version + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm index da7212ee8fc5b..08cf3affe0741 100644 --- a/code/modules/uplink/uplink_items/badass.dm +++ b/code/modules/uplink/uplink_items/badass.dm @@ -14,7 +14,7 @@ cost = 20 lock_other_purchases = TRUE cant_discount = TRUE - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/balloon/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) . = ..() @@ -36,14 +36,14 @@ item = /obj/item/toy/cards/deck/syndicate cost = 1 surplus = 40 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/syndiecigs name = "Syndicate Smokes" desc = "Strong flavor, dense smoke, infused with omnizine." item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate cost = 2 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/syndiecash name = "Syndicate Briefcase Full of Cash" @@ -53,7 +53,7 @@ item = /obj/item/storage/briefcase/secure/syndie cost = 3 restricted = TRUE - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/badass/costumes/clown name = "Clown Costume" diff --git a/code/modules/uplink/uplink_items/bundle.dm b/code/modules/uplink/uplink_items/bundle.dm index b708af62b69c9..f92435f379532 100644 --- a/code/modules/uplink/uplink_items/bundle.dm +++ b/code/modules/uplink/uplink_items/bundle.dm @@ -62,7 +62,7 @@ item = /obj/item/storage/box/syndicate/bundle_a cost = 20 stock_key = UPLINK_SHARED_STOCK_KITS - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/bundles_tc/bundle_b name = "Syndi-kit Special" @@ -73,7 +73,7 @@ item = /obj/item/storage/box/syndicate/bundle_b cost = 20 stock_key = UPLINK_SHARED_STOCK_KITS - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/bundles_tc/surplus name = "Syndicate Surplus Crate" @@ -82,7 +82,7 @@ Contents are sorted to always be worth 30 TC. The Syndicate will only provide one surplus item per agent." item = /obj/structure/closet/crate // will be replaced in purchase() cost = 20 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) stock_key = UPLINK_SHARED_STOCK_SURPLUS /// Value of items inside the crate in TC var/crate_tc_value = 30 @@ -171,5 +171,5 @@ The Syndicate will only provide one surplus item per agent." cost = 20 item = /obj/item/syndicrate_key - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) stock_key = UPLINK_SHARED_STOCK_SURPLUS diff --git a/code/modules/uplink/uplink_items/clownops.dm b/code/modules/uplink/uplink_items/clownops.dm index 56c11fedc0cb8..6dce44aeef8ef 100644 --- a/code/modules/uplink/uplink_items/clownops.dm +++ b/code/modules/uplink/uplink_items/clownops.dm @@ -35,7 +35,7 @@ cost = 1 //much cheaper for clown ops than for clowns item = /obj/item/firing_pin/clown/ultra purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/weapon_kits/clownopsuperpin name = "Super Ultra Hilarious Firing Pin" @@ -43,7 +43,7 @@ cost = 4 //much cheaper for clown ops than for clowns item = /obj/item/firing_pin/clown/ultra/selfdestruct purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/weapon_kits/foamsmg name = "Toy Submachine Gun" @@ -157,4 +157,4 @@ item = /obj/item/dnainjector/clumsymut cost = 1 purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/dangerous.dm b/code/modules/uplink/uplink_items/dangerous.dm index 970741876bb7a..691f4f2c8f37f 100644 --- a/code/modules/uplink/uplink_items/dangerous.dm +++ b/code/modules/uplink/uplink_items/dangerous.dm @@ -13,7 +13,7 @@ item = /obj/item/gun/ballistic/automatic/pistol/toy/riot cost = 2 surplus = 10 - purchasable_from = ~UPLINK_NUKE_OPS + purchasable_from = ~UPLINK_SERIOUS_OPS /datum/uplink_item/dangerous/pistol name = "Makarov Pistol" @@ -21,7 +21,7 @@ with suppressors." item = /obj/item/gun/ballistic/automatic/pistol cost = 7 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/dangerous/throwingweapons name = "Box of Throwing Weapons" @@ -29,7 +29,7 @@ throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." item = /obj/item/storage/box/syndie_kit/throwing_weapons cost = 3 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/dangerous/sword name = "Energy Sword" @@ -49,7 +49,7 @@ progression_minimum = 20 MINUTES item = /obj/item/melee/powerfist cost = 6 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/dangerous/rapid name = "Gloves of the North Star" @@ -66,7 +66,7 @@ item = /obj/item/dualsaber cost = 13 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS //nukies get their own version /datum/uplink_item/dangerous/doublesword/get_discount_value(discount_type) switch(discount_type) @@ -85,7 +85,7 @@ item = /obj/item/guardian_creator/tech cost = 18 surplus = 0 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS restricted = TRUE refundable = TRUE @@ -95,7 +95,7 @@ item = /obj/item/gun/ballistic/revolver/syndicate cost = 13 surplus = 50 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS //nukies get their own version /datum/uplink_item/dangerous/cat name = "Feral cat grenade" diff --git a/code/modules/uplink/uplink_items/device_tools.dm b/code/modules/uplink/uplink_items/device_tools.dm index 7f87d93464e48..714c3133482c4 100644 --- a/code/modules/uplink/uplink_items/device_tools.dm +++ b/code/modules/uplink/uplink_items/device_tools.dm @@ -12,7 +12,7 @@ item = /obj/item/soap/syndie cost = 1 surplus = 50 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/device_tools/surgerybag name = "Syndicate Surgery Duffel Bag" @@ -89,7 +89,7 @@ item = /obj/item/computer_disk/syndicate/camera_app cost = 1 surplus = 90 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/military_belt name = "Chest Rig" @@ -111,7 +111,7 @@ item = /obj/item/disk/nuclear/fake cost = 1 surplus = 1 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/device_tools/frame name = "F.R.A.M.E. disk" @@ -122,7 +122,7 @@ item = /obj/item/computer_disk/virus/frame cost = 4 restricted = TRUE - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/frame/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) . = ..() @@ -138,7 +138,7 @@ cost = 1 surplus = 0 restricted = TRUE - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) var/datum/component/uplink/uplink = source.GetComponent(/datum/component/uplink) @@ -163,7 +163,7 @@ multitool and combat gloves that are resistant to shocks and heat." item = /obj/item/storage/toolbox/syndicate cost = 1 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/device_tools/rad_laser name = "Radioactive Microlaser" @@ -173,7 +173,7 @@ and wavelength, which controls the delay before the effect kicks in." item = /obj/item/healthanalyzer/rad_laser cost = 3 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/suspiciousphone name = "Protocol CRAB-17 Phone" @@ -246,7 +246,7 @@ item = /obj/item/sbeacondrop cost = 10 surplus = 0 // not while there isnt one on any station - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/powersink name = "Power Sink" diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index 98378a9422a03..d9bcce6411f5f 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -4,7 +4,7 @@ /datum/uplink_item/role_restricted category = /datum/uplink_category/role_restricted - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/role_restricted/haunted_magic_eightball name = "Haunted Magic Eightball" @@ -21,7 +21,7 @@ desc = "A box of five (5) counterfeit devices. Each single-use device can hold one normal sized object, and impersonate an ordinary postal envelope addressed to whoever you choose. Optionally, can be rigged to activate held items - great for if you want to surprise someone with a primed grenade!" item = /obj/item/storage/box/syndie_kit/mail_counterfeit cost = 2 - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND restricted_roles = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER) surplus = 5 @@ -45,7 +45,7 @@ item = /obj/item/dnainjector/clumsymut cost = 1 restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/ancient_jumpsuit @@ -70,7 +70,7 @@ cost = 4 item = /obj/item/firing_pin/clown/ultra restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/clownsuperpin @@ -79,7 +79,7 @@ cost = 7 item = /obj/item/firing_pin/clown/ultra/selfdestruct restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND surplus = 25 /datum/uplink_item/role_restricted/syndimmi @@ -390,3 +390,4 @@ restricted = TRUE refundable = FALSE purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY + diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index eff0fb933eaca..fa42be0d54d0e 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -7,7 +7,7 @@ /datum/uplink_item/weapon_kits category = /datum/uplink_category/weapon_kits surplus = 40 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ Ammunition Categories ~~ @@ -18,7 +18,7 @@ /datum/uplink_item/ammo_nuclear category = /datum/uplink_category/ammo_nuclear surplus = 40 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // Basic: Run of the mill ammunition for various firearms /datum/uplink_item/ammo_nuclear/basic @@ -55,14 +55,14 @@ cost = 22 //freedom 5, doormag 3, c-4 1, stimpack 5, shield modsuit module 8 limited_stock = 1 cant_discount = TRUE - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS //Low-cost firearms: Around 8 TC each. Meant for easy squad weapon purchases /datum/uplink_item/weapon_kits/low_cost cost = 8 surplus = 40 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ Bulldog Shotgun ~~ @@ -139,7 +139,7 @@ /datum/uplink_item/weapon_kits/medium_cost cost = 14 surplus = 20 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ C-20r Submachine Gun ~~ @@ -172,7 +172,7 @@ Loaded with incendiary rounds which inflict little damage, but ignite the target." item = /obj/item/ammo_box/magazine/smgm45/incen cost = 4 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ Energy Sword and Shield & CQC ~~ @@ -186,7 +186,7 @@ name = "CQC Equipment Case (Very Hard)" desc = "Contains a manual that instructs you in the ways of CQC, or Close Quarters Combat. Comes with a stealth implant, a pack of smokes and a snazzy bandana (use it with the hat stabilizers in your MODsuit)." item = /obj/item/storage/toolbox/guncase/cqc - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS surplus = 0 // ~~ Syndicate Revolver ~~ @@ -247,7 +247,7 @@ /datum/uplink_item/weapon_kits/high_cost cost = 18 surplus = 10 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ L6 SAW Machine Gun ~~ @@ -377,15 +377,15 @@ desc = "A horribly outdated automatic weapon. Why would you want to use this? Comes with...rations." item = /obj/item/gun/ballistic/automatic/plastikov cost = 2 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/ammo_nuclear/surplus_smg name = "Surplus SMG Magazine (Surplus)" desc = "A cylindrical magazine designed for the PP-95 SMG." item = /obj/item/ammo_box/magazine/plastikov9mm cost = 1 - purchasable_from = UPLINK_NUKE_OPS - illegal_tech = FALSE + purchasable_from = UPLINK_SERIOUS_OPS + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND // Explosives and Grenades // ~~ Grenades ~~ @@ -393,8 +393,7 @@ /datum/uplink_item/explosives/grenades cost = 15 surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - + purchasable_from = UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/explosives/grenades/buzzkill name = "Buzzkill Grenade Box" desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ @@ -421,7 +420,7 @@ name = "Grenadier's Belt and Grenade Launcher Kit (Hard)" desc = "A belt containing 26 lethally dangerous and destructive grenades, along with a grenade launcher to fire them. Comes with an extra multitool and screwdriver." item = /obj/item/storage/box/syndie_kit/demoman - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // ~~ Detonator: In case you lose the old one ~~ @@ -433,7 +432,7 @@ the blast radius before using the detonator." item = /obj/item/syndicatedetonator cost = 1 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS // Support (Borgs and Reinforcements) @@ -445,7 +444,7 @@ category = /datum/uplink_category/reinforcements surplus = 0 cost = 35 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS restricted = TRUE refundable = TRUE @@ -482,6 +481,7 @@ If you're a meathead who's just here to kill people and don't care about strategising or intel, you'll still have someone to bear witness to your murder-spree!" item = /obj/item/antag_spawner/nuke_ops/overwatch cost = 12 + purchasable_from = UPLINK_FIREBASE_OPS // ~~ Disposable Sentry Gun ~~ // Technically not a spawn but it is a kind of reinforcement...I guess. @@ -501,7 +501,7 @@ desc = "A box containing x-ray eyes, a CNS Rebooter and Reviver implant. Comes with an autosurgeon for each." item = /obj/item/storage/box/cyber_implants cost = 20 //worth 24 TC - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/bundles_tc/medical name = "Medical bundle" @@ -509,7 +509,7 @@ a Donksoft LMG, a box of riot darts and a magboot MODsuit module to rescue your friends in no-gravity environments." item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle cost = 25 // normally 31 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/bundles_tc/firestarter name = "Spetsnaz Pyro bundle" @@ -518,7 +518,7 @@ Order NOW and comrade Boris will throw in an extra tracksuit." item = /obj/item/storage/backpack/duffelbag/syndie/firestarter cost = 30 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/bundles_tc/induction_kit name = "Syndicate Induction Kit" @@ -538,7 +538,7 @@ A lighter is also included, though you must supply your own smokes." item = /obj/item/storage/box/syndie_kit/cowboy cost = 18 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // Mech related gear @@ -549,7 +549,7 @@ /datum/uplink_item/mech category = /datum/uplink_category/mech surplus = 0 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS restricted = TRUE // ~~ Mechs ~~ @@ -575,21 +575,21 @@ desc = "A duffel bag containing ammo for four full reloads of the scattershotm which is equipped on standard Dark Gygax and Mauler exosuits. Also comes with some support equipment for maintaining the mech, including tools and an inducer." item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mech cost = 4 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/mech/support_bag/mauler name = "Mauler Ammo Bag" desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler cost = 6 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS // Stealthy Tools /datum/uplink_item/stealthy_tools/syndigaloshes/nuke item = /obj/item/clothing/shoes/chameleon/noslip cost = 4 - purchasable_from = UPLINK_NUKE_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/stealthy_weapons/romerol_kit name = "Romerol" @@ -598,7 +598,7 @@ along with slurred speech, aggression, and the ability to infect others with this agent." item = /obj/item/storage/box/syndie_kit/romerol cost = 25 - purchasable_from = UPLINK_CLOWN_OPS|UPLINK_NUKE_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS cant_discount = TRUE // Modsuits @@ -608,7 +608,7 @@ desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \ provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." item = /obj/item/mod/control/pre_equipped/elite - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = (UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/suits/energy_shield name = "MODsuit Energy Shield Module" @@ -616,28 +616,28 @@ before needing to recharge. Used wisely, this module will keep you alive for a lot longer." item = /obj/item/mod/module/energy_shield cost = 8 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = (UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/suits/emp_shield name = "MODsuit Advanced EMP Shield Module" desc = "An advanced EMP shield module for a MODsuit. It protects your entire body from electromagnetic pulses." item = /obj/item/mod/module/emp_shield/advanced cost = 5 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = (UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/suits/injector name = "MODsuit Injector Module" desc = "An injector module for a MODsuit. It is an extendable piercing injector with 30u capacity." item = /obj/item/mod/module/injector cost = 2 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = (UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/suits/holster name = "MODsuit Holster Module" desc = "A holster module for a MODsuit. It can stealthily store any not too heavy gun inside it." item = /obj/item/mod/module/holster cost = 2 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = (UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/device_tools/medgun_mod name = "Medbeam Gun Module" @@ -645,7 +645,7 @@ operatives in the fight, even while under fire. Don't cross the streams!" item = /obj/item/mod/module/medbeam cost = 15 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/suits/syndi_intellicard name = "Pre-Loaded Syndicate Intellicard" @@ -653,7 +653,7 @@ However, due to failsafes activated during the extraction process, the AI is unable to interact with electronics from anywhere but direct proximity..." item = /obj/item/aicard/syndie/loaded cost = 12 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS refundable = TRUE /datum/uplink_item/suits/synd_ai_upgrade @@ -661,7 +661,7 @@ desc = "...unless you buy the Syndicate Upgrade! This data chip allows the captured AI to increase its interaction range by two tiles per application. The Syndicate recommends three or four purchases at most, for a total of seven or infinite meters of range." item = /obj/item/computer_disk/syndie_ai_upgrade cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS cant_discount = TRUE refundable = TRUE @@ -675,6 +675,7 @@ surplus = 0 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS restricted = TRUE + purchasable_from = UPLINK_FIREBASE_OPS /datum/uplink_item/device_tools/syndie_jaws_of_life name = "Syndicate Jaws of Life" @@ -682,7 +683,7 @@ In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." item = /obj/item/crowbar/power/syndicate cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = UPLINK_SERIOUS_OPS | UPLINK_SPY /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" @@ -691,7 +692,7 @@ for faster healing on the field. Also comes with basic medical tools and sterlizer." item = /obj/item/storage/medkit/tactical cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/device_tools/medkit/premium name = "Syndicate Combat Medical Suite" @@ -701,7 +702,7 @@ and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." item = /obj/item/storage/medkit/tactical/premium cost = 15 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_SERIOUS_OPS /datum/uplink_item/device_tools/potion name = "Syndicate Sentience Potion" @@ -709,7 +710,7 @@ desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY + purchasable_from = UPLINK_SERIOUS_OPS | UPLINK_SPY restricted = TRUE // Implants @@ -734,7 +735,7 @@ This will permanently destroy your body, however." item = /obj/item/storage/box/syndie_kit/imp_microbomb cost = 2 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_SPY + purchasable_from = UPLINK_SERIOUS_OPS | UPLINK_SPY /datum/uplink_item/implants/nuclear/macrobomb name = "Macrobomb Implant" @@ -750,7 +751,7 @@ Prevents collapsing from critical condition, but explodes after a while." item = /obj/item/storage/box/syndie_kit/imp_deniability cost = 6 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_SPY + purchasable_from = UPLINK_SERIOUS_OPS | UPLINK_SPY /datum/uplink_item/implants/nuclear/reviver name = "Reviver Implant" @@ -780,7 +781,7 @@ /datum/uplink_item/badass/costumes surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + purchasable_from = UPLINK_SERIOUS_OPS cost = 4 cant_discount = TRUE @@ -803,7 +804,6 @@ you can blow those corpo suits away with your very own home-made explosive devices. Made in your local firebase's \ very own Ordnance Laboratory! *The Syndicate is not responsible for injuries or deaths sustained while utilizing the lab." item = /obj/item/keycard/syndicate_bomb - purchasable_from = UPLINK_NUKE_OPS /datum/uplink_item/base_keys/bio_key name = "Syndicate Bio-Weapon Laboratory Access Card" @@ -840,4 +840,4 @@ desc = "Hat crate! Contains hats! HATS!!!" item = /obj/structure/closet/crate/large/hats cost = 5 - purchasable_from = UPLINK_CLOWN_OPS | UPLINK_NUKE_OPS + purchasable_from = UPLINK_ALL_SYNDIE_OPS diff --git a/code/modules/uplink/uplink_items/species.dm b/code/modules/uplink/uplink_items/species.dm index 5eb4bbdcb1776..5b76b745f9b52 100644 --- a/code/modules/uplink/uplink_items/species.dm +++ b/code/modules/uplink/uplink_items/species.dm @@ -4,7 +4,7 @@ /datum/uplink_item/species_restricted category = /datum/uplink_category/species - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY) /datum/uplink_item/species_restricted/moth_lantern name = "Extra-Bright Lantern" diff --git a/code/modules/uplink/uplink_items/spy_unique.dm b/code/modules/uplink/uplink_items/spy_unique.dm index b53cf60cefdeb..7d2f5fb34cb84 100644 --- a/code/modules/uplink/uplink_items/spy_unique.dm +++ b/code/modules/uplink/uplink_items/spy_unique.dm @@ -10,12 +10,14 @@ // Cost doesn't really matter since it's free, but it determines which loot pool it falls into. // By default, these fall into easy-medium spy bounty loot pool cost = SPY_LOWER_COST_THRESHOLD + uplink_item_flags = NONE /datum/uplink_item/spy_unique/syndie_bowman name = "Syndicate Bowman" desc = "A bowman headset for members of the Syndicate. Not very conspicuous." item = /obj/item/radio/headset/syndicate/alt cost = 1 + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/spy_unique/megaphone name = "Megaphone" @@ -43,6 +45,7 @@ name = "Kudzu" desc = "A packet of Kudzu - plant and forget, a great distraction." item = /obj/item/seeds/kudzu + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/big_knife name = "Combat Knife" @@ -53,6 +56,7 @@ name = "Switchblade" desc = "A switchblade. Switches between not sharp and sharp." item = /obj/item/switchblade + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/sechud_implant name = "SecHUD Implant" @@ -64,30 +68,35 @@ desc = "A bolt-action rifle, with a scope. Won't jam, either." item = /obj/item/gun/ballistic/rifle/boltaction/prime cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/cycler_shotgun name = "Cycler Shotgun" desc = "A cycler shotgun. It's a shotgun that cycles between two barrels." item = /obj/item/gun/ballistic/shotgun/automatic/dual_tube/deadly cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/bulldog_shotgun name = "Bulldog Shotgun" desc = "A bulldog shotgun. It's a shotgun that shoots bulldogs." item = /obj/item/gun/ballistic/shotgun/bulldog/unrestricted cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/ansem_pistol name = "Ansem Pistol" desc = "A pistol that's really good at making people sleep." item = /obj/item/gun/ballistic/automatic/pistol/clandestine cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/rocket_launcher name = "Rocket Launcher" desc = "A rocket launcher. I would recommend against jumping with it." item = /obj/item/gun/ballistic/rocketlauncher cost = SPY_UPPER_COST_THRESHOLD - 1 // It's a meme item + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/shotgun_ammo name = "Box of Buckshot" @@ -110,17 +119,20 @@ desc = "A stealth belt that lets you sneak behind enemy lines." item = /obj/item/shadowcloak/weaker cost = SPY_UPPER_COST_THRESHOLD + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/spy_unique/katana name = "Katana" desc = "A really sharp Katana. Did I mention it's sharp?" item = /obj/item/katana cost = /datum/uplink_item/dangerous/doublesword::cost // Puts it in the same pool as Desword + uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/medkit_lite name = "Syndicate First Medic Kit" desc = "A syndicate tactical combat medkit, but only stocked enough to do basic first aid." item = /obj/item/storage/medkit/tactical_lite + uplink_item_flags = SYNDIE_TRIPS_CONTRABAND /datum/uplink_item/spy_unique/antistun name = /datum/uplink_item/implants/nuclear/antistun::name diff --git a/code/modules/uplink/uplink_items/stealthy.dm b/code/modules/uplink/uplink_items/stealthy.dm index fb450fb68df93..e4c4de412fb44 100644 --- a/code/modules/uplink/uplink_items/stealthy.dm +++ b/code/modules/uplink/uplink_items/stealthy.dm @@ -4,6 +4,7 @@ /datum/uplink_item/stealthy_weapons category = /datum/uplink_category/stealthy + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/stealthy_weapons/dart_pistol @@ -13,7 +14,7 @@ item = /obj/item/gun/syringe/syndicate cost = 4 surplus = 50 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/stealthy_weapons/dehy_carp name = "Dehydrated Space Carp" @@ -67,7 +68,7 @@ item = /obj/item/storage/box/syndie_kit/origami_bundle cost = 4 surplus = 0 - purchasable_from = ~UPLINK_NUKE_OPS //clown ops intentionally left in, because that seems like some s-tier shenanigans. + purchasable_from = ~UPLINK_SERIOUS_OPS //clown ops intentionally left in, because that seems like some s-tier shenanigans. /datum/uplink_item/stealthy_weapons/martialarts @@ -78,7 +79,7 @@ progression_minimum = 30 MINUTES cost = 17 surplus = 0 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/stealthy_weapons/crossbow name = "Miniature Energy Crossbow" @@ -91,7 +92,7 @@ item = /obj/item/gun/energy/recharge/ebow cost = 10 surplus = 50 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/stealthy_weapons/contrabaton name = "Contractor Baton" diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm index 59b8f6fca77e6..48c25e638deb7 100644 --- a/code/modules/uplink/uplink_items/stealthy_tools.dm +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -4,6 +4,7 @@ /datum/uplink_item/stealthy_tools category = /datum/uplink_category/stealthy_tools + uplink_item_flags = SYNDIE_ILLEGAL_TECH /datum/uplink_item/stealthy_tools/agent_card @@ -30,7 +31,7 @@ Due to budget cuts, the shoes don't provide protection against slipping and skillchips are sold separately." item = /obj/item/storage/box/syndie_kit/chameleon cost = 2 - purchasable_from = ~UPLINK_NUKE_OPS //clown ops are allowed to buy this kit, since it's basically a costume + purchasable_from = ~UPLINK_NUKE_OPS //clown ops are allowed to buy this kit, since it's basically a costume, loneops can purchase it to blend in. /datum/uplink_item/stealthy_tools/syndigaloshes name = "No-Slip Chameleon Shoes" @@ -38,7 +39,7 @@ They do not work on heavily lubricated surfaces." item = /obj/item/clothing/shoes/chameleon/noslip cost = 2 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS) /datum/uplink_item/stealthy_tools/chameleon_proj name = "Chameleon Projector" @@ -75,7 +76,7 @@ item = /obj/item/reagent_containers/syringe/mulligan cost = 4 surplus = 30 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS) /datum/uplink_item/stealthy_tools/jammer name = "Radio Jammer" @@ -90,7 +91,7 @@ item = /obj/item/storage/backpack/satchel/flat/with_tools cost = 1 surplus = 30 - illegal_tech = FALSE + uplink_item_flags = NONE /datum/uplink_item/stealthy_tools/mail_counterfeit name = "GLA Brand Mail Counterfeit Device" @@ -108,7 +109,7 @@ limited_stock = 1 cost = 4 restricted = TRUE - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //Can still be purchased by loneops to give them an edge. /datum/uplink_item/stealthy_tools/telecomm_blackout/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) force_event(/datum/round_event_control/communications_blackout, "a syndicate virus") @@ -123,7 +124,7 @@ limited_stock = 1 cost = 6 restricted = TRUE - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //Can still be purchased by loneops to give them an edge. /datum/uplink_item/stealthy_tools/blackout/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) force_event(/datum/round_event_control/grid_check, "a syndicate virus") diff --git a/code/modules/uplink/uplink_items/suits.dm b/code/modules/uplink/uplink_items/suits.dm index 5d89f80506178..d940d4eb06769 100644 --- a/code/modules/uplink/uplink_items/suits.dm +++ b/code/modules/uplink/uplink_items/suits.dm @@ -17,7 +17,7 @@ as well as causing significant demoralization amongst Nanotrasen crew." item = /obj/item/mod/control/pre_equipped/infiltrator cost = 6 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/suits/space_suit name = "Syndicate Space Suit" @@ -32,7 +32,7 @@ desc = "The feared MODsuit of a Syndicate agent. Features armoring and a set of inbuilt modules." item = /obj/item/mod/control/pre_equipped/traitor cost = 8 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //you can't buy it in nuke, because the elite modsuit costs the same while being better + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS //you can't buy it in nuke, because the elite modsuit costs the same while being better /datum/uplink_item/suits/thermal name = "MODsuit Thermal Visor Module" @@ -76,6 +76,6 @@ provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." item = /obj/item/mod/control/pre_equipped/traitor_elite // This one costs more than the nuke op counterpart - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS | UPLINK_SPY) + purchasable_from = ~UPLINK_ALL_SYNDIE_OPS progression_minimum = 90 MINUTES cost = 16 diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index faf95e8cd73c7..7da8fc0314b10 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -30,7 +30,7 @@ var/canmove = TRUE var/list/autogrant_actions_passenger //plain list of typepaths var/list/autogrant_actions_controller //assoc list "[bitflag]" = list(typepaths) - var/list/mob/occupant_actions //assoc list mob = list(type = action datum assigned to mob) + var/list/list/datum/action/occupant_actions //assoc list mob = list(type = action datum assigned to mob) ///This vehicle will follow us when we move (like atrailer duh) var/obj/vehicle/trailer var/are_legs_exposed = FALSE diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 30e01b3219edc..2cd85f786fc48 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -49,7 +49,7 @@ initialize_controller_action_type(/datum/action/vehicle/sealed/thank, VEHICLE_CONTROL_KIDNAPPED) /obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M) - if(ishuman(M)) + if(ishuman(M) && driver_amount() < max_drivers) var/mob/living/carbon/human/H = M if(is_clown_job(H.mind?.assigned_role) || !enforce_clown_role) //Ensures only clowns can drive the car. (Including more at once) add_control_flags(H, VEHICLE_CONTROL_DRIVE) diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 32aa4f1f7a309..d35df3126636e 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -137,6 +137,15 @@ var/stepsound = 'sound/mecha/mechstep.ogg' ///Sound played when the mech walks var/turnsound = 'sound/mecha/mechturn.ogg' + ///Sounds for types of melee attack + var/brute_attack_sound = 'sound/weapons/punch4.ogg' + var/burn_attack_sound = 'sound/items/welder.ogg' + var/tox_attack_sound = 'sound/effects/spray2.ogg' + ///Sound on wall destroying + var/destroy_wall_sound = 'sound/effects/meteorimpact.ogg' + + ///Melee attack verb + var/list/attack_verbs = list("hit", "hits", "hitting") ///Cooldown duration between melee punches var/melee_cooldown = CLICK_CD_SLOW @@ -151,6 +160,8 @@ var/is_currently_ejecting = FALSE ///Safety for weapons. Won't fire if enabled, and toggled by middle click. var/weapons_safety = FALSE + ///Don't play standard sound when set safety if TRUE. + var/safety_sound_custom = FALSE var/datum/effect_system/fluid_spread/smoke/smoke_system @@ -365,7 +376,8 @@ */ /obj/vehicle/sealed/mecha/proc/set_safety(mob/user) weapons_safety = !weapons_safety - SEND_SOUND(user, sound('sound/machines/beep.ogg', volume = 25)) + if(!safety_sound_custom) + SEND_SOUND(user, sound('sound/machines/beep.ogg', volume = 25)) balloon_alert(user, "equipment [weapons_safety ? "safe" : "ready"]") set_mouse_pointer() SEND_SIGNAL(src, COMSIG_MECH_SAFETIES_TOGGLE, user, weapons_safety) @@ -905,3 +917,9 @@ act.button_icon_state = "mech_lights_off" balloon_alert(occupant, "lights [mecha_flags & LIGHTS_ON ? "on":"off"]") act.build_all_button_icons() + +/obj/vehicle/sealed/mecha/proc/melee_attack_effect(mob/living/victim, heavy) + if(heavy) + victim.Unconscious(2 SECONDS) + else + victim.Knockdown(4 SECONDS) diff --git a/code/modules/vehicles/mecha/combat/justice.dm b/code/modules/vehicles/mecha/combat/justice.dm new file mode 100644 index 0000000000000..babdb8af17b99 --- /dev/null +++ b/code/modules/vehicles/mecha/combat/justice.dm @@ -0,0 +1,535 @@ +#define DISMEMBER_CHANCE_HIGH 50 +#define DISMEMBER_CHANCE_LOW 25 + +#define MOVEDELAY_ANGRY 4.5 +#define MOVEDELAY_SAFETY 2.5 + +/obj/vehicle/sealed/mecha/justice + name = "\improper Justice" + desc = "Black and red syndicate mech designed for execution orders. \ + For safety reasons, the syndicate advises against standing too close." + icon_state = "justice" + base_icon_state = "justice" + movedelay = MOVEDELAY_SAFETY // fast + max_integrity = 200 // but weak + accesses = list(ACCESS_SYNDICATE) + armor_type = /datum/armor/mecha_justice + max_temperature = 40000 + force = 60 // dangerous in melee + damtype = BRUTE + destruction_sleep_duration = 10 + exit_delay = 10 + wreckage = /obj/structure/mecha_wreckage/justice + mech_type = EXOSUIT_MODULE_JUSTICE + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + mecha_flags = ID_LOCK_ON | QUIET_STEPS | QUIET_TURNS | CAN_STRAFE | HAS_LIGHTS | MMI_COMPATIBLE | IS_ENCLOSED + destroy_wall_sound = 'sound/mecha/mech_blade_break_wall.ogg' + brute_attack_sound = 'sound/mecha/mech_blade_attack.ogg' + attack_verbs = list("cut", "cuts", "cutting") + weapons_safety = TRUE + safety_sound_custom = TRUE + max_equip_by_category = list( + MECHA_L_ARM = null, + MECHA_R_ARM = null, + MECHA_UTILITY = 3, + MECHA_POWER = 1, + MECHA_ARMOR = 2, + ) + step_energy_drain = 2 + +/datum/armor/mecha_justice + melee = 30 + bullet = 20 + laser = 20 + energy = 30 + fire = 100 + acid = 100 + +/obj/vehicle/sealed/mecha/justice/Initialize(mapload, built_manually) + . = ..() + RegisterSignal(src, COMSIG_MECHA_MELEE_CLICK, PROC_REF(justice_fatality)) //We do not hit those who are in crit or stun. We are finishing them. + transform = transform.Scale(1.04, 1.04) + +/obj/vehicle/sealed/mecha/justice/generate_actions() + . = ..() + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/invisibility) + initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/charge_attack) + +/obj/vehicle/sealed/mecha/justice/update_icon_state() + . = ..() + if(LAZYLEN(occupants)) + icon_state = weapons_safety ? "[base_icon_state]" : "[base_icon_state]-angry" + if(!has_gravity()) + icon_state = "[icon_state]-fly" + +/obj/vehicle/sealed/mecha/justice/set_safety(mob/user) + . = ..() + if(weapons_safety) + movedelay = MOVEDELAY_SAFETY + else + movedelay = MOVEDELAY_ANGRY + + playsound(src, 'sound/mecha/mech_blade_safty.ogg', 75, FALSE) //everyone need to hear this sound + + update_appearance(UPDATE_ICON_STATE) + +/obj/vehicle/sealed/mecha/justice/Move(newloc, dir) + if(HAS_TRAIT(src, TRAIT_IMMOBILIZED)) + return + . = ..() + update_appearance(UPDATE_ICON_STATE) + +/// Says 1 of 3 epic phrases before attacking and make a finishing blow to targets in stun or crit after 1 SECOND. +/obj/vehicle/sealed/mecha/justice/proc/justice_fatality(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) + SIGNAL_HANDLER + + if(!ishuman(target)) + return FALSE + var/mob/living/carbon/human/live_or_dead = target + if(live_or_dead.stat < UNCONSCIOUS && live_or_dead.getStaminaLoss() < 100) + return FALSE + var/obj/item/bodypart/check_head = live_or_dead.get_bodypart(BODY_ZONE_HEAD) + if(!check_head) + return FALSE + INVOKE_ASYNC(src, PROC_REF(finish_him), src, pilot, live_or_dead) + return TRUE + +/** + * ## finish_him + * + * Target's head is cut off (if it has one) + * Attack from invisibility and charged attack have higher priority. + * Arguments: + * * finisher - Mech pilot who makes an attack. + * * him - Target at which the mech makes an attack. + */ +/obj/vehicle/sealed/mecha/justice/proc/finish_him(obj/vehicle/sealed/mecha/my_mech, mob/finisher, mob/living/him) + say(pick("Take my Justice-Slash!", "A falling leaf...", "Justice is quite a lonely path"), forced = "Justice Mech") + playsound(src, 'sound/mecha/mech_stealth_pre_attack.ogg', 75, FALSE) + if(!do_after(finisher, 1 SECONDS, him)) + return + if(QDELETED(finisher)) + return + if(QDELETED(him)) + return + if(QDELETED(my_mech)) + return + if(!LAZYLEN(my_mech.occupants)) + return + var/turf/finish_turf = get_step(him, get_dir(my_mech, him)) + var/turf/for_line_turf = get_turf(my_mech) + var/obj/item/bodypart/in_your_head = him.get_bodypart(BODY_ZONE_HEAD) + in_your_head?.dismember(BRUTE) + playsound(src, brute_attack_sound, 75, FALSE) + for_line_turf.Beam(src, icon_state = "mech_charge", time = 8) + forceMove(finish_turf) + +/obj/vehicle/sealed/mecha/justice/melee_attack_effect(mob/living/victim, heavy) + if(!heavy) + victim.Knockdown(4 SECONDS) + return + if(!prob(DISMEMBER_CHANCE_HIGH)) + return + var/obj/item/bodypart/cut_bodypart = victim.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG)) + cut_bodypart?.dismember(BRUTE) + + +/obj/vehicle/sealed/mecha/justice/mob_exit(mob/M, silent, randomstep, forced) + . = ..() + if(alpha == 255) + return + animate(src, alpha = 255, time = 0.5 SECONDS) + playsound(src, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + +/obj/vehicle/sealed/mecha/justice/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir, armour_penetration) + if(LAZYLEN(occupants)) + if(prob(60)) + new /obj/effect/temp_visual/mech_sparks(get_turf(src)) + playsound(src, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + return + return ..() + +/datum/action/vehicle/sealed/mecha/invisibility + name = "Invisibility" + button_icon_state = "mech_stealth_off" + /// Is invisibility activated. + var/on = FALSE + /// Recharge check. + var/charge = TRUE + /// Varset for invisibility timer + var/invisibility_timer + /// Energy cost to become invisibile + var/energy_cost = 200 + /// Aoe pre attack sound. + var/stealth_pre_attack_sound = 'sound/mecha/mech_stealth_pre_attack.ogg' + /// Aoe attack sound. + var/stealth_attack_sound = 'sound/mecha/mech_stealth_attack.ogg' + +/datum/action/vehicle/sealed/mecha/invisibility/set_chassis(passed_chassis) + . = ..() + RegisterSignal(chassis, COMSIG_MECH_SAFETIES_TOGGLE, PROC_REF(on_toggle_safety)) + +/// update button icon when toggle safety. +/datum/action/vehicle/sealed/mecha/invisibility/proc/on_toggle_safety() + SIGNAL_HANDLER + + build_all_button_icons(UPDATE_BUTTON_STATUS) + +/datum/action/vehicle/sealed/mecha/invisibility/Trigger(trigger_flags) + . = ..() + if(!.) + return + on = !on + if(on) + invisibility_on() + else + invisibility_off() + +/datum/action/vehicle/sealed/mecha/invisibility/IsAvailable(feedback) + . = ..() + if(!.) + return FALSE + if(!chassis.has_charge(energy_cost)) + if(feedback) + owner.balloon_alert(owner, "not enough energy!") + return FALSE + if(chassis.weapons_safety) + if(feedback) + owner.balloon_alert(owner, "safety is on!") + return FALSE + if(!charge) + if(feedback) + owner.balloon_alert(owner, "recharging!") + return FALSE + + return TRUE + +///Called when invisibility activated. +/datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_on() + new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) + playsound(chassis, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + check_charge_attack() + animate(chassis, alpha = 0, time = 0.5 SECONDS) + button_icon_state = "mech_stealth_on" + invisibility_timer = addtimer(CALLBACK(src, PROC_REF(end_stealth)), 20 SECONDS) + RegisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK, PROC_REF(stealth_attack_aoe)) + RegisterSignal(chassis, COMSIG_MOVABLE_BUMP, PROC_REF(bumb_on)) + RegisterSignal(chassis, COMSIG_ATOM_BUMPED, PROC_REF(bumbed_on)) + RegisterSignal(chassis, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(take_damage)) + chassis.use_energy(energy_cost) + build_all_button_icons() + +///Called when invisibility deactivated. +/datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_off() + new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) + playsound(chassis, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + invisibility_timer = null + charge = FALSE + addtimer(CALLBACK(src, PROC_REF(charge)), 5 SECONDS) + button_icon_state = "mech_stealth_cooldown" + animate(chassis, alpha = 255, time = 0.5 SECONDS) + UnregisterSignal(chassis, list( + COMSIG_MECHA_MELEE_CLICK, + COMSIG_MOVABLE_BUMP, + COMSIG_ATOM_BUMPED, + COMSIG_ATOM_TAKE_DAMAGE + )) + build_all_button_icons() + +///Check if mech use charge attack and deactivate it when we activate invisibility. +/datum/action/vehicle/sealed/mecha/invisibility/proc/check_charge_attack() + for(var/mob/living/occupant in chassis.occupants) + var/datum/action/vehicle/sealed/mecha/charge_attack/charge_action = LAZYACCESSASSOC(chassis.occupant_actions, occupant, /datum/action/vehicle/sealed/mecha/charge_attack) + if(charge_action?.on) + charge_action.on = !on + charge_action.charge_attack_off() +/** + * ## end_stealth + * + * Called when mech runs out of invisibility time. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/end_stealth() + make_visible() + +/** + * ## bumb_on + * + * Called when mech bumb on somthing. If is living somthing shutdown mech invisibility. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/bumb_on(obj/vehicle/sealed/mecha/our_mech, atom/obstacle) + SIGNAL_HANDLER + + if(!isliving(obstacle)) + return + make_visible() + +/** + * ## bumbed_on + * + * Called when somthing bumbed on mech. If is living somthing shutdown mech invisibility. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/bumbed_on(obj/vehicle/sealed/mecha/our_mech, atom/movable/bumped_atom) + SIGNAL_HANDLER + + if(!isliving(bumped_atom)) + return + make_visible() + +/** + * ## take_damage + * + * Called when mech take damage. Shutdown mech invisibility. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/take_damage(obj/vehicle/sealed/mecha/our_mech) + SIGNAL_HANDLER + + make_visible() + +/** + * ## make_visible + * + * Called when somthing force invisibility shutdown. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/make_visible() + if(!on) + return + on = !on + invisibility_off() + +/** + * Proc makes an AOE attack after 1 SECOND. + * Called by the mech pilot when he is in stealth mode and wants to attack. + * During this, mech cannot move. +*/ +/datum/action/vehicle/sealed/mecha/invisibility/proc/stealth_attack_aoe(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) + SIGNAL_HANDLER + + if(!charge) + return FALSE + if(chassis.alpha != 0) + UnregisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK) + return FALSE + UnregisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK) + new /obj/effect/temp_visual/mech_attack_aoe_charge(get_turf(chassis)) + ADD_TRAIT(chassis, TRAIT_IMMOBILIZED, REF(src)) + playsound(chassis, stealth_pre_attack_sound, 75, FALSE) + addtimer(CALLBACK(src, PROC_REF(attack_in_aoe), pilot), 1 SECONDS) + return TRUE + +/** + * ## attack_in_aoe + * + * Brings mech out of invisibility. + * Deal everyone in range 3x3 35 damage and 25 chanse to cut off limb. + * Arguments: + * * pilot - occupant inside mech. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/attack_in_aoe(mob/living/pilot) + invisibility_off() + new /obj/effect/temp_visual/mech_attack_aoe_attack(get_turf(chassis)) + for(var/mob/living/something_living in range(1, get_turf(chassis))) + if(something_living.stat >= UNCONSCIOUS) + continue + if(something_living.getStaminaLoss() >= 100) + continue + if(something_living == pilot) + continue + if(prob(DISMEMBER_CHANCE_LOW)) + var/obj/item/bodypart/cut_bodypart = something_living.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG)) + cut_bodypart?.dismember(BRUTE) + something_living.apply_damage(35, BRUTE) + playsound(chassis, stealth_attack_sound, 75, FALSE) + REMOVE_TRAIT(chassis, TRAIT_IMMOBILIZED, REF(src)) + on = !on + charge = FALSE + button_icon_state = "mech_stealth_cooldown" + build_all_button_icons() + addtimer(CALLBACK(src, PROC_REF(charge)), 5 SECONDS) + +/** + * ## charge + * + * Recharge invisibility action after 5 SECONDS. + */ +/datum/action/vehicle/sealed/mecha/invisibility/proc/charge() + button_icon_state = "mech_stealth_off" + charge = TRUE + build_all_button_icons() + +/datum/action/vehicle/sealed/mecha/charge_attack + name = "Charge Attack" + button_icon_state = "mech_charge_off" + /// Is charge attack activated. + var/on = FALSE + /// Recharge check. + var/charge = TRUE + /// Energy cost to perform charge attack + var/energy_cost = 400 + /// Maximum range of charge attack. + var/max_charge_range = 7 + /// Sound when mech do charge attack. + var/charge_attack_sound = 'sound/mecha/mech_charge_attack.ogg' + +/datum/action/vehicle/sealed/mecha/charge_attack/set_chassis(passed_chassis) + . = ..() + RegisterSignal(chassis, COMSIG_MECH_SAFETIES_TOGGLE, PROC_REF(on_toggle_safety)) + +/// update button icon when toggle safety. +/datum/action/vehicle/sealed/mecha/charge_attack/proc/on_toggle_safety() + SIGNAL_HANDLER + + build_all_button_icons(UPDATE_BUTTON_STATUS) + +/datum/action/vehicle/sealed/mecha/charge_attack/Trigger(trigger_flags) + . = ..() + if(!.) + return + on = !on + if(on) + charge_attack_on() + else + charge_attack_off() + +/datum/action/vehicle/sealed/mecha/charge_attack/IsAvailable(feedback) + . = ..() + if(!.) + return FALSE + if(!chassis.has_charge(energy_cost)) + if(feedback) + owner.balloon_alert(owner, "not enough energy!") + return FALSE + if(chassis.weapons_safety) + if(feedback) + owner.balloon_alert(owner, "safety is on!") + return FALSE + if(!charge) + if(feedback) + owner.balloon_alert(owner, "recharging!") + return FALSE + + return TRUE + +///Called when charge attack activated +/datum/action/vehicle/sealed/mecha/charge_attack/proc/charge_attack_on() + check_visability() + button_icon_state = "mech_charge_on" + RegisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK, PROC_REF(click_try_charge)) + build_all_button_icons() + +///Called when charge attack deactivated +/datum/action/vehicle/sealed/mecha/charge_attack/proc/charge_attack_off() + button_icon_state = "mech_charge_off" + UnregisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK) + build_all_button_icons() + +///Check if mech use invisibility and deactivate it when we activate charge attack. +/datum/action/vehicle/sealed/mecha/charge_attack/proc/check_visability() + for(var/who_inside in chassis.occupants) + var/mob/living/occupant = who_inside + var/datum/action/vehicle/sealed/mecha/invisibility/stealth_action = LAZYACCESSASSOC(chassis.occupant_actions, occupant, /datum/action/vehicle/sealed/mecha/invisibility) + if(stealth_action?.on) + stealth_action.make_visible() + +///Called when mech attacks with charge attack enabled. +/datum/action/vehicle/sealed/mecha/charge_attack/proc/click_try_charge(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) + SIGNAL_HANDLER + + var/turf = get_turf(target) + if(!on) + UnregisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK) + return FALSE + if(isnull(turf)) + pilot.balloon_alert(pilot, "invalid direction!") + return FALSE + if(!charge) + pilot.balloon_alert(pilot, "recharging!") + return FALSE + else + if(charge_attack(pilot, turf)) + return TRUE + return FALSE + +/** + * ## charge_attack + * + * Deal everyone in line for mech location to mouse location 35 damage and 25 chanse to cut off limb. + * Teleport mech to the end of line. + * Arguments: + * * charger - occupant inside mech. + * * target - occupant inside mech. + */ +/datum/action/vehicle/sealed/mecha/charge_attack/proc/charge_attack(mob/living/charger, turf/target) + var/turf/start_charge_here = get_turf(charger) + var/charge_range = min(get_dist_euclidean(start_charge_here, target), max_charge_range) + var/turf/but_we_gonna_here = get_ranged_target_turf(start_charge_here, get_dir(start_charge_here, target), floor(charge_range)) + var/turf/here_we_go = start_charge_here + for(var/turf/line_turf in get_line(get_step(start_charge_here, get_dir(start_charge_here, target)), but_we_gonna_here)) + if(get_turf(charger) == get_turf(line_turf)) + continue + if(isclosedturf(line_turf)) + break + var/obj/machinery/power/supermatter_crystal/funny_crystal = locate() in line_turf + if(funny_crystal) + funny_crystal.Bumped(chassis) + break + var/obj/machinery/door/airlock/like_a_wall = locate() in line_turf + if(like_a_wall?.density) + break + if(locate(/obj/structure/window) in line_turf) + break + for(var/mob/living/something_living in line_turf.contents) + if(something_living.stat >= UNCONSCIOUS || something_living.getStaminaLoss() >= 100 || something_living == charger) + continue + if(prob(DISMEMBER_CHANCE_LOW)) + var/obj/item/bodypart/cut_bodypart = something_living.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_HEAD)) + cut_bodypart?.dismember(BRUTE) + something_living.apply_damage(35, BRUTE) + here_we_go = line_turf + + // If the mech didn't move, it didn't charge + if(here_we_go == start_charge_here) + charger.balloon_alert(charger, "invalid direction!") + return FALSE + chassis.forceMove(here_we_go) + start_charge_here.Beam(chassis, icon_state = "mech_charge", time = 8) + playsound(chassis, charge_attack_sound, 75, FALSE) + on = !on + chassis.use_energy(energy_cost) + UnregisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK) + charge = FALSE + button_icon_state = "mech_charge_cooldown" + build_all_button_icons() + addtimer(CALLBACK(src, PROC_REF(charge)), 5 SECONDS) + return TRUE + +/** + * ## charge + * + * Recharge charge attack action after 5 SECONDS. + */ +/datum/action/vehicle/sealed/mecha/charge_attack/proc/charge() + charge = TRUE + button_icon_state = "mech_charge_off" + build_all_button_icons() + +/obj/vehicle/sealed/mecha/justice/loaded + equip_by_category = list( + MECHA_L_ARM = null, + MECHA_R_ARM = null, + MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), + MECHA_POWER = list(), + MECHA_ARMOR = list(), + ) + +/obj/vehicle/sealed/mecha/justice/loaded/populate_parts() + cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) + scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) + capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) + servo = new /obj/item/stock_parts/servo/femto(src) + update_part_values() + +#undef DISMEMBER_CHANCE_HIGH +#undef DISMEMBER_CHANCE_LOW + +#undef MOVEDELAY_ANGRY +#undef MOVEDELAY_SAFETY diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm index 755f45d52b4be..b32e26be94a4e 100644 --- a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm +++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm @@ -148,11 +148,12 @@ return FALSE if(equipment_slot == MECHA_WEAPON) if(attach_right) - if(mech.equip_by_category[MECHA_R_ARM] && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) + // We need to check for length in case a mech doesn't support any arm attachments at all + if((mech.equip_by_category[MECHA_R_ARM] == mech.max_equip_by_category[MECHA_R_ARM]) && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) to_chat(user, span_warning("\The [mech]'s right arm is full![mech.equip_by_category[MECHA_L_ARM] ? "" : " Try left arm!"]")) return FALSE else - if(mech.equip_by_category[MECHA_L_ARM] && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) + if((mech.equip_by_category[MECHA_L_ARM] == mech.max_equip_by_category[MECHA_L_ARM]) && (!special_attaching_interaction(attach_right, mech, user, checkonly = TRUE))) to_chat(user, span_warning("\The [mech]'s left arm is full![mech.equip_by_category[MECHA_R_ARM] ? "" : " Try right arm!"]")) return FALSE return TRUE diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index 33edb9e47c777..c2d37ee6e8348 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -52,10 +52,14 @@ //looping sound for printing items var/datum/looping_sound/lathe_print/print_sound + /// Local designs that only this mechfab have(using when mechfab emaged so it's illegal designs). + var/list/datum/design/illegal_local_designs + /obj/machinery/mecha_part_fabricator/Initialize(mapload) print_sound = new(src, FALSE) rmat = AddComponent(/datum/component/remote_materials, mapload && link_on_init) cached_designs = list() + illegal_local_designs = list() RefreshParts() //Recalculating local material sizes if the fab isn't linked return ..() @@ -142,6 +146,26 @@ balloon_alert(user, "rotated to [dir2text(dir)].") return CLICK_ACTION_SUCCESS +/obj/machinery/mecha_part_fabricator/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + if(user.job != JOB_ROBOTICIST) + to_chat(user, span_warning("You clicking and typing but don’t understand what to do with it")) + return FALSE + obj_flags |= EMAGGED + for(var/found_illegal_mech_nods in SSresearch.techweb_nodes) + var/datum/techweb_node/illegal_mech_node = SSresearch.techweb_nodes[found_illegal_mech_nods] + if(!illegal_mech_node?.illegal_mech_node) + continue + for(var/id in illegal_mech_node.design_ids) + var/datum/design/illegal_mech_design = SSresearch.techweb_design_by_id(id) + illegal_local_designs |= illegal_mech_design + cached_designs |= illegal_mech_design + say("R$c!i&ed ERROR de#i$ns. C@n%ec$%ng to ~NULL~ se%ve$s.") + playsound(src, 'sound/machines/uplinkerror.ogg', 50, TRUE) + update_static_data_for_all_viewers() + return TRUE + /** * Updates the `final_sets` and `buildable_parts` for the current mecha fabricator. */ @@ -351,7 +375,7 @@ for(var/datum/design/design in cached_designs) var/cost = list() - var/list/materials = design["materials"] + var/list/materials = design.materials for(var/datum/material/mat in materials) cost[mat.name] = OPTIMAL_COST(materials[mat] * component_coeff) @@ -418,7 +442,7 @@ if(!istext(design_id)) continue - if(!stored_research.researched_designs.Find(design_id)) + if(!(stored_research.researched_designs.Find(design_id) || is_type_in_list(SSresearch.techweb_design_by_id(design_id), illegal_local_designs))) continue var/datum/design/design = SSresearch.techweb_design_by_id(design_id) diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm index d88aaaeb8c85d..655a2f3533936 100644 --- a/code/modules/vehicles/mecha/mech_melee_attack.dm +++ b/code/modules/vehicles/mecha/mech_melee_attack.dm @@ -21,15 +21,15 @@ mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) if(BRUTE) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(src, mecha_attacker.brute_attack_sound, 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) else return 0 mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) if(prob(hardness + mecha_attacker.force) && mecha_attacker.force > 20) dismantle_wall(1) - playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + playsound(src, mecha_attacker.destroy_wall_sound, 100, TRUE) else add_dent(WALL_DENT_HIT) ..() @@ -58,9 +58,9 @@ mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) if(BRUTE) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(src, mecha_attacker.brute_attack_sound, 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) else return 0 mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) @@ -88,29 +88,34 @@ if(mecha_attacker.damtype == BRUTE) step_away(src, mecha_attacker, 15) var/obj/item/bodypart/selected_zone = get_bodypart(pick(BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_CHEST, BODY_ZONE_HEAD)) - if(selected_zone) - var/dmg = rand(mecha_attacker.force * 0.5, mecha_attacker.force) - switch(mecha_attacker.damtype) - if(BRUTE) - if(mecha_attacker.force > 35) // durand and other heavy mechas - Unconscious(20) - else if(mecha_attacker.force > 20 && !IsKnockdown()) // lightweight mechas like gygax - Knockdown(40) + var/dmg = rand(mecha_attacker.force * 0.5, mecha_attacker.force) + switch(mecha_attacker.damtype) + if(BRUTE) + if(mecha_attacker.force > 35) // durand and other heavy mechas + mecha_attacker.melee_attack_effect(src, heavy = TRUE) + else if(mecha_attacker.force > 20 && !IsKnockdown()) // lightweight mechas like gygax + mecha_attacker.melee_attack_effect(src, heavy = FALSE) + if(selected_zone) selected_zone.receive_damage(dmg, 0, updating_health = TRUE) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) - if(FIRE) + else + apply_damage(dmg, BRUTE) + playsound(src, mecha_attacker.brute_attack_sound, 50, TRUE) + if(FIRE) + if(selected_zone) selected_zone.receive_damage(0, dmg, updating_health = TRUE) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) - if(TOX) - playsound(src, 'sound/effects/spray2.ogg', 50, TRUE) - if((reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + mecha_attacker.force) < mecha_attacker.force*2) - reagents.add_reagent(/datum/reagent/cryptobiolin, mecha_attacker.force/2) - if((reagents.get_reagent_amount(/datum/reagent/toxin) + mecha_attacker.force) < mecha_attacker.force*2) - reagents.add_reagent(/datum/reagent/toxin, mecha_attacker.force/2.5) else - return 0 - . = dmg - visible_message(span_danger("[mecha_attacker.name] hits [src]!"), \ - span_userdanger("[mecha_attacker.name] hits you!"), span_hear("You hear a sickening sound of flesh hitting flesh!"), COMBAT_MESSAGE_RANGE, list(mecha_attacker)) - to_chat(mecha_attacker, span_danger("You hit [src]!")) + apply_damage(dmg, BURN) + playsound(src, mecha_attacker.burn_attack_sound, 50, TRUE) + if(TOX) + playsound(src, mecha_attacker.tox_attack_sound, 50, TRUE) + if((reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + mecha_attacker.force) < mecha_attacker.force*2) + reagents.add_reagent(/datum/reagent/cryptobiolin, mecha_attacker.force/2) + if((reagents.get_reagent_amount(/datum/reagent/toxin) + mecha_attacker.force) < mecha_attacker.force*2) + reagents.add_reagent(/datum/reagent/toxin, mecha_attacker.force/2.5) + else + return 0 + . = dmg + visible_message(span_danger("[mecha_attacker.name] [mecha_attacker.attack_verbs[1]] [src]!"), \ + span_userdanger("[mecha_attacker.name] [mecha_attacker.attack_verbs[2]] you!"), span_hear("You hear a sickening sound of flesh [mecha_attacker.attack_verbs[3]] flesh!"), COMBAT_MESSAGE_RANGE, list(mecha_attacker)) + to_chat(mecha_attacker, span_danger("You [mecha_attacker.attack_verbs[1]] [src]!")) ..() diff --git a/code/modules/vehicles/mecha/mecha_construction_paths.dm b/code/modules/vehicles/mecha/mecha_construction_paths.dm index f4b1a679596b9..0a305a5db66ae 100644 --- a/code/modules/vehicles/mecha/mecha_construction_paths.dm +++ b/code/modules/vehicles/mecha/mecha_construction_paths.dm @@ -819,3 +819,39 @@ outer_plating = /obj/item/stack/sheet/plasteel outer_plating_amount = 5 + +//Justice +/datum/component/construction/unordered/mecha_chassis/justice + result = /datum/component/construction/mecha/justice + steps = list( + /obj/item/mecha_parts/part/justice_torso, + /obj/item/mecha_parts/part/justice_left_arm, + /obj/item/mecha_parts/part/justice_right_arm, + /obj/item/mecha_parts/part/justice_left_leg, + /obj/item/mecha_parts/part/justice_right_leg + ) + +/datum/component/construction/mecha/justice + result = /obj/vehicle/sealed/mecha/justice + base_icon = "justice" + + inner_plating = /obj/item/stack/telecrystal + inner_plating_amount = 8 + + outer_plating = /obj/item/mecha_parts/part/justice_armor + outer_plating_amount = 1 + +/datum/component/construction/mecha/justice/get_circuit_steps() + return list() + +/datum/component/construction/mecha/justice/get_inner_plating_steps() + return list( + list( + "key" = inner_plating, + "amount" = inner_plating_amount, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The power cell is secured, and [inner_plating_amount] telecrystals can be added.", + "forward_message" = "added telecrystal", + "backward_message" = "unsecured power cell" + ) + ) diff --git a/code/modules/vehicles/mecha/mecha_parts.dm b/code/modules/vehicles/mecha/mecha_parts.dm index 7fcee2092590c..474716568eb5b 100644 --- a/code/modules/vehicles/mecha/mecha_parts.dm +++ b/code/modules/vehicles/mecha/mecha_parts.dm @@ -332,6 +332,42 @@ desc="Savannah-Ivanov armor plates. They are uniquely shaped and reinforced to deal with the stresses of two pilots, grandiose leaps, and missiles." icon_state = "savannah_ivanov_armor" +// Justice + +/obj/item/mecha_parts/chassis/justice + name = "\improper Justice chassis" + construct_type = /datum/component/construction/unordered/mecha_chassis/justice + +/obj/item/mecha_parts/part/justice_torso + name="\improper Justice torso" + desc="A Justice torso part." + icon_state = "justice_torso" + +/obj/item/mecha_parts/part/justice_left_arm + name="\improper Justice left arm" + desc="A Justice left arm." + icon_state = "justice_l_arm" + +/obj/item/mecha_parts/part/justice_right_arm + name="\improper Justice right arm" + desc="A Justice left arm." + icon_state = "justice_r_arm" + +/obj/item/mecha_parts/part/justice_left_leg + name="\improper Justice left leg" + desc="A Justice left leg." + icon_state = "justice_l_leg" + +/obj/item/mecha_parts/part/justice_right_leg + name="\improper Justice right leg" + desc="A Justice left leg." + icon_state = "justice_r_leg" + +/obj/item/mecha_parts/part/justice_armor + name="Justice armor" + desc="Justice armor plates." + icon_state = "justice_armor" + ///////// Circuitboards /obj/item/circuitboard/mecha diff --git a/code/modules/vehicles/mecha/mecha_ui.dm b/code/modules/vehicles/mecha/mecha_ui.dm index 712d5f0d712bf..1113a85381361 100644 --- a/code/modules/vehicles/mecha/mecha_ui.dm +++ b/code/modules/vehicles/mecha/mecha_ui.dm @@ -111,16 +111,17 @@ var/module_index = 0 for(var/category in max_equip_by_category) var/max_per_category = max_equip_by_category[category] - for(var/i = 1 to max_per_category) - var/equipment = equip_by_category[category] - var/is_slot_free = islist(equipment) ? i > length(equipment) : isnull(equipment) - if(is_slot_free) - data += list(list( - "slot" = category - )) - if(ui_selected_module_index == module_index) - ui_selected_module_index = null - else + if(max_per_category) + for(var/i = 1 to max_per_category) + var/equipment = equip_by_category[category] + var/is_slot_free = islist(equipment) ? i > length(equipment) : isnull(equipment) + if(is_slot_free) + data += list(list( + "slot" = category + )) + if(ui_selected_module_index == module_index) + ui_selected_module_index = null + continue var/obj/item/mecha_parts/mecha_equipment/module = islist(equipment) ? equipment[i] : equipment data += list(list( "slot" = category, @@ -140,7 +141,7 @@ )) if(isnull(ui_selected_module_index)) ui_selected_module_index = module_index - module_index++ + module_index++ return data /obj/vehicle/sealed/mecha/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) diff --git a/code/modules/vehicles/mecha/mecha_wreckage.dm b/code/modules/vehicles/mecha/mecha_wreckage.dm index dc0414e86063a..8f972ef47815c 100644 --- a/code/modules/vehicles/mecha/mecha_wreckage.dm +++ b/code/modules/vehicles/mecha/mecha_wreckage.dm @@ -245,3 +245,8 @@ /obj/item/mecha_parts/part/odysseus_right_arm, /obj/item/mecha_parts/part/odysseus_left_leg, /obj/item/mecha_parts/part/odysseus_right_leg) + +/obj/structure/mecha_wreckage/justice + name = "\improper Justice wreckage" + icon_state = "justice-broken" + welder_salvage = list(/obj/item/stack/sheet/iron, /obj/item/stack/rods) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 0b842b8ed9cbe..82146976ad1f8 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -206,6 +206,20 @@ to_chat(rider, span_warning("[src] [p_are()] not powerful enough to fly upwards.")) return FALSE +/obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded + name = "holy skateboard" + desc = "A board blessed by the gods with the power to grind for our sins. Has the initials 'J.C.' on the underside." + board_item_type = /obj/item/melee/skateboard/holyboard + instability = 3 + icon_state = "hoverboard_holy" + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/make_ridable() + AddElement(/datum/element/ridable, /datum/component/riding/vehicle/scooter/skateboard/hover/holy) + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/holyboarded/Initialize(mapload) + . = ..() + AddComponent(/datum/component/anti_magic, MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY) + /obj/vehicle/ridden/scooter/skateboard/hoverboard/admin name = "\improper Board Of Directors" desc = "The engineering complexity of a spaceship concentrated inside of a board. Just as expensive, too." diff --git a/code/modules/vehicles/vehicle_key.dm b/code/modules/vehicles/vehicle_key.dm index f8db861449f7a..5f57895d8ac81 100644 --- a/code/modules/vehicles/vehicle_key.dm +++ b/code/modules/vehicles/vehicle_key.dm @@ -33,10 +33,15 @@ attack_verb_continuous = list("stubs", "pokes") attack_verb_simple = list("stub", "poke") sharpness = SHARP_EDGED - embedding = list("pain_mult" = 1, "embed_chance" = 30, "fall_chance" = 70) + embed_type = /datum/embed_data/janicart_key wound_bonus = -1 bare_wound_bonus = 2 +/datum/embed_data/janicart_key + pain_mult = 1 + embed_chance = 30 + fall_chance = 70 + /obj/item/key/janitor/suicide_act(mob/living/carbon/user) switch(user.mind?.get_skill_level(/datum/skill/cleaning)) if(SKILL_LEVEL_NONE to SKILL_LEVEL_NOVICE) //Their mind is too weak to ascend as a janny diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 9ca0d41d85367..336f3b72ce1f7 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -1074,11 +1074,9 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) var/mob/living/carbon/carbon_target = atom_target for(var/i in 1 to num_shards) var/obj/item/shard/shard = new /obj/item/shard(get_turf(carbon_target)) - shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult = 1, pain_chance = 5) - shard.updateEmbedding() + shard.set_embed(/datum/embed_data/glass_candy) carbon_target.hitby(shard, skipcatch = TRUE, hitpush = FALSE) - shard.embedding = list() - shard.updateEmbedding() + shard.set_embed(initial(shard.embed_type)) return TRUE if (VENDOR_CRUSH_CRIT_PIN) // pin them beneath the machine until someone untilts it if (!isliving(atom_target)) @@ -1447,6 +1445,8 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) var/obj/item/vended_item if(!LAZYLEN(item_record.returned_products)) //always give out free returned stuff first, e.g. to avoid walling a traitor objective in a bag behind paid items vended_item = new item_record.product_path(get_turf(src)) + if(vended_item.type in contraband) + ADD_TRAIT(vended_item, TRAIT_CONTRABAND, INNATE_TRAIT) on_dispense(vended_item) else vended_item = LAZYACCESS(item_record.returned_products, LAZYLEN(item_record.returned_products)) //first in, last out diff --git a/code/modules/vending/subtype.dm b/code/modules/vending/subtype.dm new file mode 100644 index 0000000000000..9b4f212224ea7 --- /dev/null +++ b/code/modules/vending/subtype.dm @@ -0,0 +1,51 @@ + +/obj/machinery/vending/subtype_vendor + name = "\improper subtype vendor" + desc = "A vending machine that vends all subtypes of a specific type." + color = COLOR_ADMIN_PINK + verb_say = "codes" + verb_ask = "queries" + verb_exclaim = "compiles" + armor_type = /datum/armor/machinery_vending + circuit = null + product_slogans = "Spawn \" too annoying? Too lazy to open game panel? This one's for you!;Subtype vendor, for all your debugging woes!" + default_price = 0 + /// Spawns coders by default + var/type_to_vend = /obj/item/food/grown/citrus + +/obj/machinery/vending/subtype_vendor/Initialize(mapload, type_to_vend) + . = ..() + if(type_to_vend) + src.type_to_vend = type_to_vend + load_subtypes() + +/obj/machinery/vending/subtype_vendor/proc/load_subtypes() + products = list() + product_records = list() + + for(var/type in typesof(type_to_vend)) + LAZYADDASSOC(products, type, 50) + + build_inventories() + +/obj/machinery/vending/subtype_vendor/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!can_interact(user) || !user.can_perform_action(src, ALLOW_SILICON_REACH|FORBID_TELEKINESIS_REACH)) + return + + if(!user.client?.holder?.check_for_rights(R_SERVER|R_DEBUG)) + speak("Hey! You can't use this! Get outta here!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + var/type_to_vend_now = tgui_input_text(user, "What type to set it to?", "Set type to vend", "/obj/item/toy/plush") + type_to_vend_now = text2path(type_to_vend_now) + if(!ispath(type_to_vend_now)) + speak("That's not a real path, dumbass! Try again!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + type_to_vend = type_to_vend_now + load_subtypes() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/wiremod/core/marker.dm b/code/modules/wiremod/core/marker.dm index 31821c6d8c3a7..65ed029213e30 100644 --- a/code/modules/wiremod/core/marker.dm +++ b/code/modules/wiremod/core/marker.dm @@ -3,6 +3,7 @@ desc = "A circuit multitool. Used to mark entities which can then be uploaded to components by pressing the upload button on a port. \ Acts as a normal multitool otherwise. Use in hand to clear marked entity so that you can mark another entity." icon_state = "multitool_circuit" + apc_scanner = FALSE // would conflict with mark clearing /// The marked atom of this multitool var/atom/marked_atom diff --git a/config/game_options.txt b/config/game_options.txt index 2979648126dde..ef15cbeb123eb 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -539,3 +539,8 @@ NEGATIVE_STATION_TRAITS 3 1 # If set to 0, then players won't be able to select any positive quirks. # If commented-out or undefined, the maximum default is 6. MAX_POSITIVE_QUIRKS 6 + +# A config that skews with the random spawners weights +# If the value is lower than 1, it'll tend to even out the odds +# If higher than 1, it'll lean toward common spawns even more. +RANDOM_LOOT_WEIGHT_MODIFIER 1 \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-83262.yml b/html/changelogs/AutoChangeLog-pr-83262.yml new file mode 100644 index 0000000000000..0635b7956c837 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-83262.yml @@ -0,0 +1,5 @@ +author: "Xackii" +delete-after: True +changes: + - rscadd: "new wizard spells category - perks." + - rscadd: "adds 9 wizard perks." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84502.yml b/html/changelogs/AutoChangeLog-pr-84502.yml deleted file mode 100644 index ba6ec25bf22c4..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84502.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "MTandi" -delete-after: True -changes: - - bugfix: "Techweb: Moved upgraded cyber organs to tier 3 from tier 4" - - qol: "Techweb: Added fully augmented android scan discount experiment for Advanced Cybernetic Organs techweb node" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84516.yml b/html/changelogs/AutoChangeLog-pr-84516.yml deleted file mode 100644 index 88db7528a4d82..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84516.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MTandi" -delete-after: True -changes: - - qol: "Data disks are now printed in lathes instead of circuit imprinter" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84646.yml b/html/changelogs/AutoChangeLog-pr-84646.yml new file mode 100644 index 0000000000000..d0054cb8f14b3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84646.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Examining high-value paintings now can give a positive moodlet." + - qol: "Observers can now zoom paintings in and out in the UI." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84731.yml b/html/changelogs/AutoChangeLog-pr-84731.yml new file mode 100644 index 0000000000000..2d3b87db1f818 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84731.yml @@ -0,0 +1,4 @@ +author: "MTandi" +delete-after: True +changes: + - qol: "Research nodes can be queued, one per player. RDs can place their node at the beginning of the queue." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84779.yml b/html/changelogs/AutoChangeLog-pr-84779.yml new file mode 100644 index 0000000000000..ca8c222b88b4d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84779.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "tweaked the Linked Closets station trait." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84790.yml b/html/changelogs/AutoChangeLog-pr-84790.yml new file mode 100644 index 0000000000000..fd4e76d0d67d8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84790.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "ACTUALLY fixed hoverboards being able to be used in space." + - balance: "However, you can soar space with the holy skateboard. at a slower speed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84827.yml b/html/changelogs/AutoChangeLog-pr-84827.yml new file mode 100644 index 0000000000000..2fd1418dda2d1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84827.yml @@ -0,0 +1,4 @@ +author: "paganiy" +delete-after: True +changes: + - rscadd: "If you can't shoot a gun, then... JUST TOSS IT AT THEM (for 0.5 seconds of knockdown and 10-20 an additional brute damage)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84840.yml b/html/changelogs/AutoChangeLog-pr-84840.yml new file mode 100644 index 0000000000000..a0db9885bb229 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84840.yml @@ -0,0 +1,5 @@ +author: "00-Steven" +delete-after: True +changes: + - rscadd: "Love is now stored in the heart." + - balance: "Characters with the Friendly quirk now have physically bigger hearts." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84843.yml b/html/changelogs/AutoChangeLog-pr-84843.yml new file mode 100644 index 0000000000000..6235c182c1a1b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84843.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Megaphones now affect text-to-speech." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84860.yml b/html/changelogs/AutoChangeLog-pr-84860.yml new file mode 100644 index 0000000000000..9081bdbc3226b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84860.yml @@ -0,0 +1,5 @@ +author: "Sadboysuss" +delete-after: True +changes: + - sound: "all materials now have a sound for picking up and dropping" + - code_imp: "items now have pitch vary sound support for dropping and picking up items" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84861.yml b/html/changelogs/AutoChangeLog-pr-84861.yml new file mode 100644 index 0000000000000..e9203c51f338d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84861.yml @@ -0,0 +1,4 @@ +author: "Hardly3D" +delete-after: True +changes: + - bugfix: "Added a preview assistant outfit, allowing assistant jumpskirts to be previewed again on character preferences." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84865.yml b/html/changelogs/AutoChangeLog-pr-84865.yml new file mode 100644 index 0000000000000..4686b3104da41 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84865.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - qol: "removed a redundant, annoying reach check that prevents casting a fishing rod before the projectile is generated." + - qol: "You can now unhook the currently hooked item of a fishing rod with right-click." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84881.yml b/html/changelogs/AutoChangeLog-pr-84881.yml new file mode 100644 index 0000000000000..1ec13a1734f8a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84881.yml @@ -0,0 +1,4 @@ +author: "Sadboysuss" +delete-after: True +changes: + - bugfix: "Wawastation xenobio is no longer filled with BZ" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84891.yml b/html/changelogs/AutoChangeLog-pr-84891.yml new file mode 100644 index 0000000000000..d3a4abccc1837 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84891.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Fixes overwatch glasses not adding HUDs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84895.yml b/html/changelogs/AutoChangeLog-pr-84895.yml new file mode 100644 index 0000000000000..079ace6685d4e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84895.yml @@ -0,0 +1,8 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "reduced the prices of some blackmarket items across the board." + - balance: "the thermite bottle (from the contraband spawner and the blackmarket), now spawns with 50u of thermite vs 30, enough to melt one reinforced wall." + - rscadd: "Replaced the science googles from the blackmarket with a security + health scanner HUD." + - rscadd: "Replaced the single shotgun dart from the blackmarket with a box of XL shotgun darts." + - rscadd: "The donk pocket box from the blackmarket now comes in different flavors." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84905.yml b/html/changelogs/AutoChangeLog-pr-84905.yml new file mode 100644 index 0000000000000..aa77c54a6ec47 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84905.yml @@ -0,0 +1,4 @@ +author: "itseasytosee" +delete-after: True +changes: + - image: "Changed some default options in the character creator." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84917.yml b/html/changelogs/AutoChangeLog-pr-84917.yml new file mode 100644 index 0000000000000..0bfb0cadab199 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84917.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - qol: "Lattices now make the same footstep sound as catwalks" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84918.yml b/html/changelogs/AutoChangeLog-pr-84918.yml new file mode 100644 index 0000000000000..c3882e601572b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84918.yml @@ -0,0 +1,4 @@ +author: "MrDas" +delete-after: True +changes: + - bugfix: "Clown operative reinforcements' uplink no longer break the syndicates' economy by creating TC from nothingness." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84921.yml b/html/changelogs/AutoChangeLog-pr-84921.yml new file mode 100644 index 0000000000000..873f3660780c7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84921.yml @@ -0,0 +1,4 @@ +author: "Ben10Omintrix" +delete-after: True +changes: + - bugfix: "mothroaches will no longer be crawling out of bags every minute" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84924.yml b/html/changelogs/AutoChangeLog-pr-84924.yml new file mode 100644 index 0000000000000..55e9c85e8cbf2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84924.yml @@ -0,0 +1,4 @@ +author: "TheBoondock" +delete-after: True +changes: + - sound: "added pickup, dropping and opening sound for pill bottle" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84925.yml b/html/changelogs/AutoChangeLog-pr-84925.yml new file mode 100644 index 0000000000000..5e47956edec24 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84925.yml @@ -0,0 +1,4 @@ +author: "GPeckman" +delete-after: True +changes: + - bugfix: "You can't attach guns/drills/etc. to the Justice traitor mech anymore." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84927.yml b/html/changelogs/AutoChangeLog-pr-84927.yml new file mode 100644 index 0000000000000..697c145aaab01 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84927.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - qol: "Pathfinder MODule can now be triggered while wearing the MODsuit to implant yourself without having to pull it out of the suit." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84930.yml b/html/changelogs/AutoChangeLog-pr-84930.yml new file mode 100644 index 0000000000000..f20fe9a2998df --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84930.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - admin: "Outfit manager UI no longer harddels after closing and thus is usable more than once" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84933.yml b/html/changelogs/AutoChangeLog-pr-84933.yml new file mode 100644 index 0000000000000..ea174ad4a6375 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84933.yml @@ -0,0 +1,4 @@ +author: "r3dj4ck0424" +delete-after: True +changes: + - bugfix: "Destroying the jungle grass tiles in Tramstation's science wing should no longer open a chasm." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84936.yml b/html/changelogs/AutoChangeLog-pr-84936.yml new file mode 100644 index 0000000000000..72ff6982d3c67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84936.yml @@ -0,0 +1,4 @@ +author: "lizardqueenlexi" +delete-after: True +changes: + - bugfix: "You can no longer cause a bluescreen by attempting to recolor non-recolorable loadout items." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84940.yml b/html/changelogs/AutoChangeLog-pr-84940.yml new file mode 100644 index 0000000000000..30ed28bce2a25 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84940.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - admin: "Ghosts can no longer create deathmatch lobbies or join existing ones when admins disable minigames" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84941.yml b/html/changelogs/AutoChangeLog-pr-84941.yml new file mode 100644 index 0000000000000..3120b917ad7e3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84941.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Accelerator cannon projectiles no longer grow to absurd sizes after a bit of travel." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84943.yml b/html/changelogs/AutoChangeLog-pr-84943.yml new file mode 100644 index 0000000000000..7c7df08159daa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84943.yml @@ -0,0 +1,4 @@ +author: "larentoun" +delete-after: True +changes: + - bugfix: "Correct emote plays when a human scream. Should have sound now." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84945.yml b/html/changelogs/AutoChangeLog-pr-84945.yml new file mode 100644 index 0000000000000..b878f33ebec15 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84945.yml @@ -0,0 +1,4 @@ +author: "FlufflesTheDog" +delete-after: True +changes: + - bugfix: "Attachment points on toolset implants have been improved, to prevent against recycler related decouplings." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84946.yml b/html/changelogs/AutoChangeLog-pr-84946.yml new file mode 100644 index 0000000000000..b20f28982b2a9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84946.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - qol: "If you're in oxycrit (>50 oxy damage) or otherwise made unconscious through other means, blood loss will only kill you if you're *actually* missing a lethal amount of blood." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84947.yml b/html/changelogs/AutoChangeLog-pr-84947.yml new file mode 100644 index 0000000000000..6c2d183cfb5e9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84947.yml @@ -0,0 +1,5 @@ +author: "SmArtKar" +delete-after: True +changes: + - spellcheck: "Firelocks no longer output their full name in their balloon alert." + - spellcheck: "Failure message when a xenomorph tries to force open a welded firelock is now a balloon alert." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84949.yml b/html/changelogs/AutoChangeLog-pr-84949.yml new file mode 100644 index 0000000000000..3bca324862bee --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84949.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Grinding fish no longer gives you uselessly high amount of blood and gibs (unless they're very big)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84952.yml b/html/changelogs/AutoChangeLog-pr-84952.yml new file mode 100644 index 0000000000000..23e21d669ee35 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84952.yml @@ -0,0 +1,4 @@ +author: "FearfulFurnishing" +delete-after: True +changes: + - bugfix: "fixing speech modifiers being applied to a tongue's native languages." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84956.yml b/html/changelogs/AutoChangeLog-pr-84956.yml new file mode 100644 index 0000000000000..b5cb51610cafa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84956.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "You can no longer fit an infinite amount of drivers into a clown car - making spy-acquired clown cars usable!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84957.yml b/html/changelogs/AutoChangeLog-pr-84957.yml new file mode 100644 index 0000000000000..00bab247c1aba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84957.yml @@ -0,0 +1,5 @@ +author: "lizardqueenlexi" +delete-after: True +changes: + - bugfix: "The Icebox ordnance lab is now once again a habitable temperature." + - bugfix: "Icebox cytology now has cameras in it." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84958.yml b/html/changelogs/AutoChangeLog-pr-84958.yml new file mode 100644 index 0000000000000..e29af268d4d42 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84958.yml @@ -0,0 +1,4 @@ +author: "lizardqueenlexi" +delete-after: True +changes: + - bugfix: "Atmosphere can no longer flow through closed necropolis gates." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84959.yml b/html/changelogs/AutoChangeLog-pr-84959.yml new file mode 100644 index 0000000000000..97ce8febaaa9e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84959.yml @@ -0,0 +1,4 @@ +author: "Profakos" +delete-after: True +changes: + - bugfix: "Fixes dead raptors getting excited when petted or groomed" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84960.yml b/html/changelogs/AutoChangeLog-pr-84960.yml new file mode 100644 index 0000000000000..e2c2ce470aee7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84960.yml @@ -0,0 +1,7 @@ +author: "necromanceranne" +delete-after: True +changes: + - rscadd: "Pipe pistols now magdump their entire magazine when fired." + - rscadd: "Pipeguns and their subtypes have a knockback effect." + - bugfix: "Pipe pistols cannot be bayoneted, as intended." + - bugfix: "Junk rounds now actually do their extra damage effects against certain mob types. Borgs across the Spinward tremble at the knowledge that these junk weapons can obliterate them with ease." \ No newline at end of file diff --git a/html/changelogs/archive/2024-07.yml b/html/changelogs/archive/2024-07.yml index 6b82931730018..f1020236ab78b 100644 --- a/html/changelogs/archive/2024-07.yml +++ b/html/changelogs/archive/2024-07.yml @@ -301,3 +301,500 @@ to avoid confusion - rscadd: mecha wire that shoots you or anyone nearby if pulsed or cut - bugfix: mecha shock wire shocks you +2024-07-05: + Absolucy: + - qol: Linked speech now prevents messages from highlighting if its a message you + sent, or if you are the owner of said link.. + - qol: Linked speech messages are now marked as radio messages, for chat tab purposes. + ArcaneMusic: + - rscadd: The Illumination Applications technode now includes a gunkit for a new + gun, the Photon Cannon. + DATA_, with sounds made by Beebblie: + - sound: You will now be able to hear your muffled breathing while using internals. + This can be turned off in the game settings. + Ghommie: + - rscadd: A station trait that fills maintenance with glowsticks. + Iamgoofball: + - rscadd: You can now craft a singularity hammer using all nine anomaly cores and + the supermatter. + LemonInTheDark: + - bugfix: Grass turfs will render properly now. Reworked how floors render, please + report any bugs! + - bugfix: Cameras now properly capture lighting + - bugfix: The layering seen in photos should better match the actual game + MTandi: + - bugfix: 'Techweb: Moved upgraded cyber organs to tier 3 from tier 4' + - qol: 'Techweb: Added fully augmented android scan discount experiment for Advanced + Cybernetic Organs techweb node' + - qol: Data disks are now printed in lathes instead of circuit imprinter + - balance: 'Techweb: High yield explosive is now a discount experiment for Exotic + Ammo node, giving more free points' + - balance: 'Techweb: Replaced the botany/xenobio discount experiments with a new + mutant scan experiment for the Gene Engineering node' + - balance: 'Techweb: Damaged mech scan is a discount experiment for tier 4 Mech + Energy Guns node, giving twice more free points' + - balance: 'Techweb: Added a new anomaly scan experiment that gives full discount + for the Advanced Anomaly Shells, also moving the node to tier 5' + - balance: 'Techweb: Moved mech RCD to the Experimental Tools node' + - balance: 'Techweb: Moved handcuffs to T2 security node, leaving only zipties in + T1' + - balance: 'Techweb: Non-human Autopsy is a discount experiment instead of a required + one now' + - balance: 'Techweb: Parts scan experiments require 6 machines instead of 4' + - rscdel: 'Techweb: Removed the New Toys node moving contents to sec and medbay + trees' + - qol: Made air horn craftable from a spraycan and a bikehorn + - qol: 'Techweb: Better wording on the slime scan experiment' + - refactor: Vat grower is a normal machine now that doesn't need plumbing + - qol: Cytology petri dish smartfridge starts with 3 random samples + - rscadd: Added protein powder condiment bottle, available in the cytology supplies + locker and the cargo pack + - rscdel: Removed science variant of plumbing RCD + - bugfix: Fixed a bug when machines without stock parts didn't spawn frames on deconstruction + - bugfix: Fixed vat grower not growing + - qol: portable scubber, pump and pipe scrubber are buildable as any other machines + OrionTheFox: + - rscadd: updated Icebox's lavaland ruin. The incursion grows... + Rhials: + - admin: Quiet-announce random events still announce to admins and can therefore + be rerolled. + Xackii: + - rscadd: 'New traitor mech: Justice. Emag fabricator to get it.' + Zergspower: + - bugfix: fixes borgs ability to climb + aaaa1023: + - qol: Increased view_range on the Psyker Bounty Hunters' Shuttle navigation console. + - bugfix: 'Fixed the shuttle navigation console camera eye being incorrectly offset + on: the SpacePol van, the Russian bounty hunters, the default bounty hunters, + the Psyker bounty hunters, and the MI13 Foodtruck.' + - bugfix: Fixed the SpacePol van, Russian bounty hunters, default bounty hunters, + and Psyker bounty hunters' shuttles all flying in incorrect directions. + - bugfix: 'Fixed the following shuttles flying in unexpected directions: Pubby escape + pod, Humpback emergency shuttle, Pubby monastery shuttle, Birdboat emergency + shuttle, Birdshot emergency shuttle' +2024-07-06: + 00-Steven: + - image: Goody case locked/unlocked sprites have been swapped again, having a gap + for unlocked and no gap for locked. + ArcaneMusic: + - qol: Examining a windoor will now provide the construction steps, like other standard + buildable objects. + DaCoolBoss: + - code_imp: Cleaned up relic code. + - image: Added necrotech themed relics. + GoblinBackwards: + - bugfix: Firefighting backpack tank nozzle can be used to hit objects and destroy + atmos resin again. + MTandi: + - bugfix: Binary devices no longer ignore the volume of the output pipe network + - bugfix: Fixed the augmented organs experiment + OrionTheFox: + - image: fixed and touched up the icons for the Doorjack and Cryptographic Sequencer + (EMAG) + Seven: + - balance: Bloody footprint trails go a longer distance now. + SyncIt21: + - bugfix: Autolathe won't eat the borg omni tool + carlarctg: + - bugfix: Fixed temp n space adaptations not conflicting + - rscadd: Projectile Dampener field now reduces stuns and stamina damage from incoming + projectiles + hyperjll: + - bugfix: Reagent containers are no longer mysteriously fireproof. + mc-oofert: + - qol: CE and Engineer start with their hardhat as the respective welding hard hat + variant + necromanceranne: + - balance: Settlers are a bit slower on their steeds. +2024-07-07: + Holoo-1: + - bugfix: fixed ninja's adrenaline boost module not being rechargable + SyncIt21: + - bugfix: you can craft the singulo hammer with either a supermatter engine/shard + again +2024-07-08: + 00-Steven: + - bugfix: Fixes hacker alias name preference not working. + Ben10Omintrix: + - bugfix: raptors don't easily stress out in lavaland environments + Ghommie: + - rscadd: Night vision goggles now subtly tint your screen. + - rscadd: You can turn your night vision goggles off. Doing so removes the tint + and the eye protection malus. + - bugfix: Hoverboards properly dysfunction in space without any kind of support + underneath them. + - qol: Mood more promptly reacts to the beauty of an area as it changes, and not + just when changing areas. + - rscadd: Coroners (and potentially other mobs with the morbid trait), now like + degradated-looking rooms. + - rscadd: Aquariums now influence the beauty score of an area based on their contents. + - rscadd: Morbid people now get a positive moodlet when admiring an aquarium full + of dead fish, and a negative one when fish are alive. + - admin: Added a config that regulares random spawners weights. + - rscadd: 12% chance of a ouija board spawning in the chaplain office. Wawastation + always has one. + GremlinSeeker: + - bugfix: ' Birdshot botany is resized. bar is also smaller.' + - bugfix: Birdshot public shrine now uses the correct dirt. (Goodbye chasms) + LT3: + - balance: Advanced Medbay Equipment research node lowered to tier 3 + - balance: Advanced Medbay Equipment now requires haloperidol scan experiment + - balance: Haloperidol and cryostylane experiments can be performed roundstart + - balance: Cryostasis research node raised to tier 4 + - balance: Cryostasis now has Fusion instead of Controlled Plasma as a prerequisite + - balance: Cryostasis cryostylane scan is now a discount experiment + - balance: Crystallizer moved from Controlled Plasma to Fusion + Loafin34: + - rscadd: There's a previously undiscovered variant of a nullrod, recently revealed + from the depths of the skating rink.. + Melbert: + - qol: Vending Machines have a search bar + - qol: Random player characters now look less like rainbow vomit and more like some + of the most average people you know. + SmArtKar: + - bugfix: Added a forgotten firelock on second floor of wawa + - bugfix: Fixed glass shards generated from falling vending machines or tackling + windows not being able to embed into anyone. + - refactor: Refactored embedding code to use datums instead of bespoke elements + and ugly associated lists. + - bugfix: You require breathing once more. + Toastgoats: + - rscadd: Added the designer EVA suit, a unique pirate hardsuit for Silverscales. + - balance: Increased the equipment available to Silverscales + - image: Sprites for the designer EVA suit + carlarctg: + - spellcheck: Renamed the organ thrower module to the 'organizer' + - spellcheck: Made its description more accurate. Did you know it instantly replaces + up to 5 organs in active surgery? + homexp13: + - bugfix: ' Examining a fishing spot twice with sufficiently high fishing skill + (or the skillchip) will get you a list of fishes that can ACTUALLY be caught' + jlsnow301: + - bugfix: Fixed the bluescreen while setting a custom font in tgui panel + - bugfix: Fixed the orbit icons scrolling sometimes + lorwp: + - rscadd: using 'skibidi' as a chaplain deity now gives you brain damage + mc-oofert: + - bugfix: defibrillator no longer has an abstract cell + - code_imp: defibrillator attackby replaced with item_interaction + - balance: All jetpacks are now modsuit jetpack speed + - rscdel: Adv. Ion Jetpack module has been removed + - bugfix: you may now use a legion core on an elite tumor + necromanceranne: + - balance: You can only stun someone with a shove if they have been shoved into + objects or people, or have been hit by telescopic batons, contractor batons + or the Mansus Grasp. + - balance: If someone is knocked to the floor, however, you can still disarm them + of any object with a shove. + - bugfix: Knight helmets no longer burn as though made of cloth. + - rscadd: Fletching starter kit! Make your own bow, shoot your friends in an unfortunate + workplace accident. Replace all those holy arrows you lost. + - bugfix: Bows now properly undraw once they have fired an arrow. + - code_imp: Bows now utilize overlays in order to display loaded arrows. Unique + overlays per arrow. +2024-07-09: + 00-Steven: + - qol: You can now copy blast door controller IDs directly onto shutters/blast doors, + avoiding the need to open a menu for each one. Additionally, this lets you fix + sets of roundstart shutters without needing to change the IDs on all of the + ones in that set. + ArcaneMusic: + - bugfix: Ore vents that are caught in the cross-fire of a lavaland tendril collapsing + will now spare the ore vent and it's associated turf. + Astrogem2: + - sound: Added audible zipping to winter coats. + DGamerL: + - refactor: refactored `GetExactComponent` to be 1641 compatible + Derpguy3: + - bugfix: Missing janitor access restrictions have been added to Birdshot's custodial + closet doors. + EnterTheJake: + - balance: Jetpacks are now briefly disabled by EMP. + - balance: Mirage module has been removed from Sec modsuits. + - balance: Security modsuits now spawn with a better cell and the jetpack module + preinstalled. + FernandoJ8: + - bugfix: humanoid species featured are randomized correctly once again + Ghommie: + - balance: Bait quality now influences the probabilities of getting a rarer fish + compared to the most common one(s) + GoblinBackwards: + - bugfix: Fixed missing wires leading to the port hallway APC on Birdshot. + Inari-Whitebear: + - bugfix: Fixed space heater heating power and power consumption + JackEnoff: + - bugfix: Welding helmet and hardhat will now properly protect against pepperspray + while its down + JohnFulpWillard: + - qol: You can now use a spoon or ladle on an ice cream vat to spill a reagent, + ridding the machine of all reagent of that type. + Jolly: + - code_imp: Behind the scenes, atmos machines (freezers/mixers) in maps were tweaked + a bit. If you see them no longer connected to specific pipenets, please make + an issue report, this is not intended behavior!! + Kocma-san: + - qol: the disposal unit has been added to the cargo bay and miner's office. + - bugfix: missed disposal pipe returned at QM's office + LemonInTheDark: + - rscadd: Most door animations now better line up with when they are/are not passable. + Rhials: + - admin: Narrate verbs will now allow you to pick what text formatting span you + want to use before you send them, if any. + - bugfix: Certain items can no longer be purchased or be offered with a discount + on a loneop uplink. This is stuff like base cards (functionally useless) or + Overwatch Intel Agents (which break the role). + - balance: Loneops may now purchase chameleon noslips, station blackout triggers, + and station comms failure triggers. + SmArtKar: + - bugfix: Blood filters should filter out reagents completely now instead of leaving + a small amount no matter what. + - image: You can now flip your security helmet's visor up with alt-click! However, + doing so will (obviously) expose your eyes. + - bugfix: Embedding now properly changes its values. + - bugfix: Bloody footprints no longer bloody your shoes even more when walked over. + SyncIt21: + - bugfix: paintings can be sponsored again + - bugfix: hydroponic trays take in all reagents "proportionally" from plumbing ducts + without leaving any behind + - bugfix: plumbing bottler pumps out all reagents "proportionally" into output beakers + Xackii: + - balance: 'Demon: bloodcrawl now deal damage when you using it.' + - balance: 'Demon: demon can eat only carbon human beings.' + Xander3359: + - bugfix: fixed CNS rebooter/Changeling adrenaline not preventing/fixing stamina + crit + carlarctg: + - qol: Using a multitool inhand tells you where the area APC is + - code_imp: Added the subtype vendor which lets admins and coders vend subtypes + of a path + - code_imp: Added the vendor and both varieties of omnitool to runtime station + grungussuss: + - sound: pen click now has a proper sound + - sound: scalpel cutting sound now has a clean sound. + - bugfix: fixed an unrestricted airlock in metastation brig maints + grungussuss, ported from Beestation: + - sound: abductee, hypnotized and brainwashed now have sound when becoming one. + mc-oofert: + - qol: blood bros get a hud to see eachother + - code_imp: teambased antagonists may not see the HUDs of other teams + rageguy505: + - bugfix: no more xenobio active turfs +2024-07-10: + Ghommie: + - bugfix: Fixed a whoopsie with bait-related calculations for fishing. + GoblinBackwards: + - qol: Docked emergency shuttles will always reset their departure timer when a + hostile environment is stopped, regardless of if the timer displays ETD or ERR. + Kocma-san: + - bugfix: Fixed lights stopping emitting light in some situations + SmArtKar: + - refactor: Refactored a lot of speech modifiers to use a component instead of copied + over code. + - bugfix: Living limbs can no longer make you touch ghosts or abstract concepts + of start, landmark, influence or job + - spellcheck: Fixed improper word usage and improved grammar for living limbs + - rscadd: Living flesh arms have a chance to actually touch the thing they're targeting + instead of pulling it. Careful with supermatter! + - bugfix: Exosuit Stress Failure experiment now works + SyncIt21: + - bugfix: stacking machines can be linked with its console via multitool + aaaa1023: + - rscdel: 'Removed the shuttle manipulator entries for the following shuttles: Northstar + ferry, Omegastation arrivals shuttle, and Donutstation cargo ferry. (These shuttles + didn''t actually exist but they still had entries in the manipulator.)' + - bugfix: 'Fixed the following shuttles flying in unexpected directions: Basic CC + Ferry, Meat Ferry, Lighthouse Ferry, ERT bounty shuttle, Kilo cargo shuttle, + Pubby cargo shuttle, and Delta cargo shuttle.' + - bugfix: Fixed the ERT bounty shuttle having incorrect offsets in the shuttle navigation + console. + grungussuss: + - sound: Zippos, Lighters and cigarettes now have sound + lizardqueenlexi: + - bugfix: Amputating a paraplegic's leg no longer miraculously allows them to walk. + zoomachina: + - bugfix: fixed dubious chem dispenser feedback when the beaker is full +2024-07-11: + 00-Steven: + - bugfix: Using a dual wielded deck to add another card to a single card bases the + position of the resulting hand of cards on the position of the card. + Gaxeer: + - refactor: move `status_display_bottom_text` and `fire_alarm_light_color` to security + level prototypes + Ghommie: + - balance: Buffed the matrix flip skillchip duration. Lowered the stamina cost very, + very slightly. + - qol: You can now longer matrix-flip yourself into exhaustion, unless the emote + is unintentional. + Melbert: + - rscadd: 'Bot Language station trait split into two: One that affects bots (retains + the old weight and cost) and one that affects machine (half weight, double the + cost)' + - rscdel: Bot Language station trait and (new) Machine Language station trait no + longer affect newly created machines or bots, just those present at game start + - rscdel: Machine Language station trait cannot affect the Automated Announcer in + telecomms + SmArtKar: + - bugfix: Vapes use correct fill level overlays + - bugfix: You no longer try to pull out someones eyes in combat mode if they have + cranial fissure + Xackii: + - rscadd: You can emag grapple gun to use it on station. + carlarctg: + - bugfix: Fixed an oversight that caused knockdown vomits to stun instead. +2024-07-12: + 00-Steven: + - bugfix: You can see runechat above fullscreen overlays on lower multi-z levels + again. Rejoice, blind players. Please report any weird rendering layering issues. + ArcaneMusic: + - rscadd: Items spawned via traitor uplinks or are known illegal contraband on the + station can now be scanned and identified as such by the N-spect scanners in + security. These only applies to overt traitor or antagonist items, and "stealth" + items will not be seen as such. + - rscadd: Scanner gates can now be upgraded by using an N-spect scanner on it to + unlock "contraband scanning" mode. + - rscadd: Security officers can now be offered a bounty to turn in pieces of contraband. + - rscadd: Some stealthy storage items like storage implants, smuggler's satchels, + void cloaks, the infiltrator modsuit, and the chameleon backpack will block + the presence of contraband on your person when placed inside. + - qol: N-spect scanner contextual screentips. + - balance: Recharger security bounties ask for a quantity of 1, down from 3. + - qol: security, cargo, and medbay have access to scanner gate boards. + Deadgebert: + - balance: Moves XL beaker from Chemical Synthesis to Medbay Equipment + - balance: Removes Plumbing node and moves most items to Chemical synthesis node + - balance: Moves piercing syringe from Plumbing node to Advanced Medbay Equipment + GPeckman: + - spellcheck: The techweb no longer erroneously refers to MODsuits as exosuits. + - bugfix: The modsuit paint kit is no longer broken. + - bugfix: Mapped in grounding rods can be upgraded again (not that upgraded parts + do anything for it) and don't disappear when deconstructed anymore. + - bugfix: H.A.R.S. will no longer disable your skillchips or show you text reserved + for total brain removal. + - balance: If you remove a security officer's mindshield, then you can flash them + to make them your blood brother. + - qol: Clothing now tells you if it is pressure-proof and insulated enough for spacewalking + when examining it. + Ghommie: + - rscadd: Add the National Ice Cream Day holiday, which falls on the third Sunday + of July. + - balance: Tetrodotoxin can now be synthesized (bees, the odysseus mech, strange + seeds...) + - balance: Upped the amount of tetrodotoxin you can harvest from pufferfishes (or + any fish with the trait). + - spellcheck: Fixed some typos with the toxin. + GoblinBackwards: + - bugfix: Fixed being unable to cauterise wounds with improvised cautery tools such + as welders. + Hardly3D: + - rscadd: 'Added new hairstyle: Short Bangs 2' + Ical92: + - bugfix: gave tram's primary tool storage functional disposals + JackEnoff: + - balance: Experimentor will no longer duplicate Bags of Holding + Jolly: + - bugfix: '[Birdshot] The Ordnance freezer chamber is now linked to an APC, much + like the burn chamber.' + - bugfix: '[Birdshot] The Janitors quarters no longer uses `/area/station/commons`, + instead, it uses the janitors regular area.' + - bugfix: '[Birdshot] The entertainment center now has an APC.' + - bugfix: '[Birdshot] A handful of smaller areas have received air alarms.' + LT3: + - image: Incident displays got a makeover + MTandi: + - balance: War declaration gives 600 research points to the station + Melbert: + - qol: Roundstart Mannitol pills are 15u (up from 14u) + OrionTheFox: + - image: re-sprited Catwalk Floor Tiles to fit with TG floor tiles + Singul0: + - qol: adds an oxygen chamber for wawastation ordnance + - qol: adds some missing critical items needed to do ordnance and xenobiology + SmArtKar: + - bugfix: Steaks and meatpacks no longer have an absurd amount of blood stored inside + of them. + SyncIt21: + - bugfix: all icons in the crafting menu (some that you missed) are now fixed permanently + Yobrocharlie: + - bugfix: makes outpost45 cause less lag + aaaa1023: + - bugfix: Added a Mechbay power console to the Metastation cargo warehouse so that + the cargo ripley is able to be charged. + carlarctg: + - rscadd: Adds six new strange object powers! Drink dispenser, bioscrambler, recharger, + hugger, dimensional, disguiser. + - code_imp: 'Removed some unused code and items, and added a proc that returns a + random #colorstring.' + - qol: TV helmet no longer has gas mask FOV, nor does it give you flash sensitivity. + - qol: Since those are gone, removed pepper proof from it as well. + imedial: + - code_imp: added a crash report and removes an arg + jlsnow301: + - bugfix: Fixed a bluescreen in the heretic research ui + mc-oofert: + - bugfix: fixes the rightmost wawastation cryo cell + necromanceranne: + - balance: Cryokinesis and pyrokinesis more severely adjust temperature. + - balance: Cryokinesis forces a target to slow down on hit for a few seconds. + - balance: Pyrokinesis can ignite objects. + - balance: Temperature projectiles change the temperature of the target's contained + reagents. + r3dj4ck0424: + - qol: Our glorious corporate overlords have provided the funding for iron sheets + in Wawastation's robotics and science rooms at roundstart. + vinylspiders: + - bugfix: french berets will no longer force the user to speak spanish + zoomachina: + - balance: bluespace navigation gigabeacons are now unlocked with Applied Bluespace + Research +2024-07-13: + Ben10Omintrix: + - refactor: request managers have been refactored to typescript + - bugfix: request manager type filter now works + MTandi: + - bugfix: Fixed dead slime icon not showing when cores are extracted + - qol: Slime core removal surgery extracts all cores on completion + NewyearnewmeUwu: + - image: the smoking pipe's directional looks have been altered to make it less + ugly + Sadboysuss: + - rscadd: Changed the layout of birdshot engineering atmos and SM, added a proper + engineering storage area. + Singul0: + - bugfix: Fixes Icemoon syndie listening station APC's from being affected by station-side + events + SmArtKar: + - qol: Using ctrl + your quick MOD button now opens module selector on your mouse + position + - rscadd: A new ork mutation which can be acquired by mixing hulk and clumsy. + - bugfix: Other mobs no longer hear your breathing + - image: MOD hyposprays no longer use syringe fill sprites + - bugfix: Fixed tables and racks being climbable from half a mile away + - balance: Experimentor's reduction chance is multiplicative, and chance to copy + an object has been slightly lowered. + - qol: Heads of staff PDAs start with twice as much disk space + Vishenka0704: + - qol: With voting turned off for the dead, you can now understand why you can't + vote (being dead). + - admin: Voting switch for the dead players + necromanceranne: + - rscadd: Adds the Herculean Gravitronic Spinal Implant; an implant that makes you + better at athletics. You can upgrade it into an Atlas implant using a gravity + anomaly core. + - balance: Gravity anomaly cores have had their max number of cores reduces from + 8 to 6. + - balance: Your athletic ability allows you to climb faster. + vinylspiders: + - bugfix: password doors and shutters will now play their sound effects again instead + of just silently opening/closing +2024-07-14: + EuSouAFazer: + - rscadd: Cytology Lab has been added to Icebox + - rscadd: Delta now has soy seeds on the Cytology Lab + - bugfix: Cytology is playable again on Icebox + MTandi: + - rscadd: Added airlock pump atmos device to create cycling airlocks + carlarctg: + - bugfix: Fixed new charger power not working fior strange objects +2024-07-15: + Thedragmeme: + - bugfix: Fixes the Plague hat having what the Plague mask should have diff --git a/icons/area/areas_centcom.dmi b/icons/area/areas_centcom.dmi index a3e8aafb72fb7..a33055722ffc4 100644 Binary files a/icons/area/areas_centcom.dmi and b/icons/area/areas_centcom.dmi differ diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 31f26c3e6e11e..38921a6e48402 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index fd7bee8ed6075..ae668b0495a56 100644 Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 67b8ea51c1850..633004afacad2 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index 47684f4664e89..c415d4dcff1f4 100644 Binary files a/icons/effects/mapping_helpers.dmi and b/icons/effects/mapping_helpers.dmi differ diff --git a/icons/effects/particles/voidwalker.dmi b/icons/effects/particles/voidwalker.dmi new file mode 100644 index 0000000000000..d7f94c987979a Binary files /dev/null and b/icons/effects/particles/voidwalker.dmi differ diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index ed6c0c8702e45..4e5608330030b 100644 Binary files a/icons/effects/random_spawners.dmi and b/icons/effects/random_spawners.dmi differ diff --git a/icons/mob/actions/actions_mecha.dmi b/icons/mob/actions/actions_mecha.dmi index 7c659ca3b573c..60df1b5ed1ae5 100644 Binary files a/icons/mob/actions/actions_mecha.dmi and b/icons/mob/actions/actions_mecha.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 20bf4d18381fd..92b155f62d547 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/head/helmet.dmi b/icons/mob/clothing/head/helmet.dmi index 8b29c935f5ea7..116f0256a6276 100644 Binary files a/icons/mob/clothing/head/helmet.dmi and b/icons/mob/clothing/head/helmet.dmi differ diff --git a/icons/mob/clothing/head/spacehelm.dmi b/icons/mob/clothing/head/spacehelm.dmi index 0b9f3d4a36eb4..d9a634a63c771 100644 Binary files a/icons/mob/clothing/head/spacehelm.dmi and b/icons/mob/clothing/head/spacehelm.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index c877c2fcb8826..22c7ae3ac49c0 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/suits/spacesuit.dmi b/icons/mob/clothing/suits/spacesuit.dmi index 0067c4bf36a8c..1f691729a3031 100644 Binary files a/icons/mob/clothing/suits/spacesuit.dmi and b/icons/mob/clothing/suits/spacesuit.dmi differ diff --git a/icons/mob/human/human_face.dmi b/icons/mob/human/human_face.dmi index d96800c3a8bb8..886094ec49573 100644 Binary files a/icons/mob/human/human_face.dmi and b/icons/mob/human/human_face.dmi differ diff --git a/icons/mob/human/species/voidwalker.dmi b/icons/mob/human/species/voidwalker.dmi new file mode 100644 index 0000000000000..f7e616864f1a1 Binary files /dev/null and b/icons/mob/human/species/voidwalker.dmi differ diff --git a/icons/mob/human/textures.dmi b/icons/mob/human/textures.dmi new file mode 100644 index 0000000000000..c5f420c7de866 Binary files /dev/null and b/icons/mob/human/textures.dmi differ diff --git a/icons/mob/inhands/antag/voidwalker_lefthand.dmi b/icons/mob/inhands/antag/voidwalker_lefthand.dmi new file mode 100644 index 0000000000000..5cd8b8817ec31 Binary files /dev/null and b/icons/mob/inhands/antag/voidwalker_lefthand.dmi differ diff --git a/icons/mob/inhands/antag/voidwalker_righthand.dmi b/icons/mob/inhands/antag/voidwalker_righthand.dmi new file mode 100644 index 0000000000000..f227c6105ad1e Binary files /dev/null and b/icons/mob/inhands/antag/voidwalker_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 5515ad69c3486..86bd5020f4f32 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index fdad955fd9a6f..a6de8b974644c 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/nonhuman-player/eldritch_mobs.dmi b/icons/mob/nonhuman-player/eldritch_mobs.dmi index 18e50d727aee5..3f2aa454f0eb4 100644 Binary files a/icons/mob/nonhuman-player/eldritch_mobs.dmi and b/icons/mob/nonhuman-player/eldritch_mobs.dmi differ diff --git a/icons/mob/rideables/mech_construct.dmi b/icons/mob/rideables/mech_construct.dmi index c25eb971f2e36..656322b8187a7 100644 Binary files a/icons/mob/rideables/mech_construct.dmi and b/icons/mob/rideables/mech_construct.dmi differ diff --git a/icons/mob/rideables/mech_construction.dmi b/icons/mob/rideables/mech_construction.dmi index f26dbe17fd036..6e1cdbc3a2d4a 100644 Binary files a/icons/mob/rideables/mech_construction.dmi and b/icons/mob/rideables/mech_construction.dmi differ diff --git a/icons/mob/rideables/mecha.dmi b/icons/mob/rideables/mecha.dmi index 0c0f62de4d26e..5960d05413781 100644 Binary files a/icons/mob/rideables/mecha.dmi and b/icons/mob/rideables/mecha.dmi differ diff --git a/icons/mob/rideables/vehicles.dmi b/icons/mob/rideables/vehicles.dmi index 7e2b8a05f204c..08923668d2663 100644 Binary files a/icons/mob/rideables/vehicles.dmi and b/icons/mob/rideables/vehicles.dmi differ diff --git a/icons/mob/simple/mob.dmi b/icons/mob/simple/mob.dmi index e8fb3c59b8fbe..142481e08e9a7 100644 Binary files a/icons/mob/simple/mob.dmi and b/icons/mob/simple/mob.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 0f44555ca965f..e26731f384667 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index fd898d3105fd8..97f692551f9e3 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/head/helmet.dmi b/icons/obj/clothing/head/helmet.dmi index 4d43b542051fc..fe52d505e439d 100644 Binary files a/icons/obj/clothing/head/helmet.dmi and b/icons/obj/clothing/head/helmet.dmi differ diff --git a/icons/obj/clothing/head/spacehelm.dmi b/icons/obj/clothing/head/spacehelm.dmi index c2830a9d9335f..980d2a07a50be 100644 Binary files a/icons/obj/clothing/head/spacehelm.dmi and b/icons/obj/clothing/head/spacehelm.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi index 8b4b549eda2ae..6ec143a849e1c 100644 Binary files a/icons/obj/clothing/modsuit/mod_modules.dmi and b/icons/obj/clothing/modsuit/mod_modules.dmi differ diff --git a/icons/obj/clothing/suits/spacesuit.dmi b/icons/obj/clothing/suits/spacesuit.dmi index 922ad05c35e7a..7fe01246352d6 100644 Binary files a/icons/obj/clothing/suits/spacesuit.dmi and b/icons/obj/clothing/suits/spacesuit.dmi differ diff --git a/icons/obj/devices/artefacts.dmi b/icons/obj/devices/artefacts.dmi new file mode 100644 index 0000000000000..75a6f754fbbed Binary files /dev/null and b/icons/obj/devices/artefacts.dmi differ diff --git a/icons/obj/devices/artifacts.dmi b/icons/obj/devices/artifacts.dmi deleted file mode 100644 index f9402be79a60e..0000000000000 Binary files a/icons/obj/devices/artifacts.dmi and /dev/null differ diff --git a/icons/obj/doors/blastdoor.dmi b/icons/obj/doors/blastdoor.dmi index 9457690cda365..9c7bec103cefa 100644 Binary files a/icons/obj/doors/blastdoor.dmi and b/icons/obj/doors/blastdoor.dmi differ diff --git a/icons/obj/doors/doorfireglass.dmi b/icons/obj/doors/doorfireglass.dmi index 250b5ca833a89..83156ae4351e1 100644 Binary files a/icons/obj/doors/doorfireglass.dmi and b/icons/obj/doors/doorfireglass.dmi differ diff --git a/icons/obj/doors/doormorgue.dmi b/icons/obj/doors/doormorgue.dmi index c0ed1147325ce..381e5c3385ef3 100644 Binary files a/icons/obj/doors/doormorgue.dmi and b/icons/obj/doors/doormorgue.dmi differ diff --git a/icons/obj/doors/puzzledoor/danger.dmi b/icons/obj/doors/puzzledoor/danger.dmi index 89d19131cc189..ed78272037e37 100644 Binary files a/icons/obj/doors/puzzledoor/danger.dmi and b/icons/obj/doors/puzzledoor/danger.dmi differ diff --git a/icons/obj/doors/puzzledoor/default.dmi b/icons/obj/doors/puzzledoor/default.dmi index 49a9206139580..685fc448bdee0 100644 Binary files a/icons/obj/doors/puzzledoor/default.dmi and b/icons/obj/doors/puzzledoor/default.dmi differ diff --git a/icons/obj/doors/puzzledoor/wood.dmi b/icons/obj/doors/puzzledoor/wood.dmi index f2b53e857393b..58717aacf1e65 100644 Binary files a/icons/obj/doors/puzzledoor/wood.dmi and b/icons/obj/doors/puzzledoor/wood.dmi differ diff --git a/icons/obj/doors/shutters.dmi b/icons/obj/doors/shutters.dmi index 1cc727cdbf7a4..5fd2b2a8213d5 100644 Binary files a/icons/obj/doors/shutters.dmi and b/icons/obj/doors/shutters.dmi differ diff --git a/icons/obj/doors/shutters_radiation.dmi b/icons/obj/doors/shutters_radiation.dmi index 2e70b24a4aa2a..37b8cf72cbca0 100644 Binary files a/icons/obj/doors/shutters_radiation.dmi and b/icons/obj/doors/shutters_radiation.dmi differ diff --git a/icons/obj/doors/shutters_window.dmi b/icons/obj/doors/shutters_window.dmi index fcf8af5b94fd7..b86fe675366c1 100644 Binary files a/icons/obj/doors/shutters_window.dmi and b/icons/obj/doors/shutters_window.dmi differ diff --git a/icons/obj/doors/windoor.dmi b/icons/obj/doors/windoor.dmi index 86893eb9c453c..117cd78e1348b 100644 Binary files a/icons/obj/doors/windoor.dmi and b/icons/obj/doors/windoor.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 6c2eda1986633..f20b54d9c31f0 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/machines/atmospherics/unary_devices.dmi b/icons/obj/machines/atmospherics/unary_devices.dmi index 47acf3c29c9c4..73da54768b1cb 100644 Binary files a/icons/obj/machines/atmospherics/unary_devices.dmi and b/icons/obj/machines/atmospherics/unary_devices.dmi differ diff --git a/icons/obj/machines/incident_display.dmi b/icons/obj/machines/incident_display.dmi index 80d63134f1d02..863a500131525 100644 Binary files a/icons/obj/machines/incident_display.dmi and b/icons/obj/machines/incident_display.dmi differ diff --git a/icons/obj/medical/reagent_fillings.dmi b/icons/obj/medical/reagent_fillings.dmi index 0d535c6cac2b3..0da57e714a528 100644 Binary files a/icons/obj/medical/reagent_fillings.dmi and b/icons/obj/medical/reagent_fillings.dmi differ diff --git a/icons/obj/pipes_n_cables/hydrochem/plumbers.dmi b/icons/obj/pipes_n_cables/hydrochem/plumbers.dmi index 555b6c6328b02..2f10725a0a8f3 100644 Binary files a/icons/obj/pipes_n_cables/hydrochem/plumbers.dmi and b/icons/obj/pipes_n_cables/hydrochem/plumbers.dmi differ diff --git a/icons/obj/pipes_n_cables/pipe_item.dmi b/icons/obj/pipes_n_cables/pipe_item.dmi index 54dac81793975..ea2f9f71eb58d 100644 Binary files a/icons/obj/pipes_n_cables/pipe_item.dmi and b/icons/obj/pipes_n_cables/pipe_item.dmi differ diff --git a/icons/obj/science/vatgrowing.dmi b/icons/obj/science/vatgrowing.dmi index 646aad055cc3c..ec8b5dcb6acd9 100644 Binary files a/icons/obj/science/vatgrowing.dmi and b/icons/obj/science/vatgrowing.dmi differ diff --git a/icons/obj/signs.dmi b/icons/obj/signs.dmi index a2069ba5d9d3b..050a609470421 100644 Binary files a/icons/obj/signs.dmi and b/icons/obj/signs.dmi differ diff --git a/icons/obj/storage/box.dmi b/icons/obj/storage/box.dmi index c0a327d7df669..01588bd050f74 100644 Binary files a/icons/obj/storage/box.dmi and b/icons/obj/storage/box.dmi differ diff --git a/icons/obj/storage/case.dmi b/icons/obj/storage/case.dmi index a47c86eea9fb3..a29fd3a6f37c0 100644 Binary files a/icons/obj/storage/case.dmi and b/icons/obj/storage/case.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 2c2aae54de3c2..85d4b82a498c0 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/weapons/bows/arrows.dmi b/icons/obj/weapons/bows/arrows.dmi index 4453d4ca5f247..956a82dd9bf1f 100644 Binary files a/icons/obj/weapons/bows/arrows.dmi and b/icons/obj/weapons/bows/arrows.dmi differ diff --git a/icons/obj/weapons/bows/bows.dmi b/icons/obj/weapons/bows/bows.dmi index 81b2fc4822058..4de9d4fca35ab 100644 Binary files a/icons/obj/weapons/bows/bows.dmi and b/icons/obj/weapons/bows/bows.dmi differ diff --git a/icons/obj/weapons/guns/energy.dmi b/icons/obj/weapons/guns/energy.dmi index 5d607026f0133..6e8e5c60f684a 100644 Binary files a/icons/obj/weapons/guns/energy.dmi and b/icons/obj/weapons/guns/energy.dmi differ diff --git a/icons/obj/weapons/guns/projectiles.dmi b/icons/obj/weapons/guns/projectiles.dmi index a13ebcc636009..3be26b2c43fad 100644 Binary files a/icons/obj/weapons/guns/projectiles.dmi and b/icons/obj/weapons/guns/projectiles.dmi differ diff --git a/icons/obj/weapons/voidwalker_items.dmi b/icons/obj/weapons/voidwalker_items.dmi new file mode 100644 index 0000000000000..1179d1953003f Binary files /dev/null and b/icons/obj/weapons/voidwalker_items.dmi differ diff --git a/icons/turf/floors/catwalk_plating.dmi b/icons/turf/floors/catwalk_plating.dmi index b49c46564de50..800d0c8dfffcd 100644 Binary files a/icons/turf/floors/catwalk_plating.dmi and b/icons/turf/floors/catwalk_plating.dmi differ diff --git a/sound/ambience/antag/abductee.ogg b/sound/ambience/antag/abductee.ogg new file mode 100644 index 0000000000000..81290237e6a96 Binary files /dev/null and b/sound/ambience/antag/abductee.ogg differ diff --git a/sound/ambience/antag/attribution.txt b/sound/ambience/antag/attribution.txt new file mode 100644 index 0000000000000..6390dd525c459 --- /dev/null +++ b/sound/ambience/antag/attribution.txt @@ -0,0 +1,3 @@ +sound/ambience/antag/abductee.ogg is from "Warp SFX" https://freesound.org/people/Breviceps/sounds/453391 (CC0) +sound/ambience/antag/brainwash.ogg is from "nog.wav" https://freesound.org/people/_NOMINAL_/sounds/124602 (CC-BY 3.0) +sound/ambience/antag/hypnosis.ogg is from "Flashback.wav" https://freesound.org/people/Sclolex/sounds/342103 (CC0) \ No newline at end of file diff --git a/sound/ambience/antag/brainwashed.ogg b/sound/ambience/antag/brainwashed.ogg new file mode 100644 index 0000000000000..22193ced06ef0 Binary files /dev/null and b/sound/ambience/antag/brainwashed.ogg differ diff --git a/sound/ambience/antag/hypnotized.ogg b/sound/ambience/antag/hypnotized.ogg new file mode 100644 index 0000000000000..145c022052a82 Binary files /dev/null and b/sound/ambience/antag/hypnotized.ogg differ diff --git a/sound/attributions.txt b/sound/attributions.txt index dff6c31cb7f84..123fde0794c19 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -201,6 +201,9 @@ ayylien.ogg was made by remixing: SCIRetro_Energy Swells Synth_Funky Audio_Sonics Spices by Funky_Audio under CC0 -- https://freesound.org/people/realtheremin/sounds/119011/ scifi_scare_a.aiff by realtheremin under CC0 -- https://freesound.org/people/Funky_Audio/sounds/729392/ +solarflare.ogg was made by ArcaneMusic, using the following sources from Freesound.org. +"Flashbang Explosion Designed 14m" by modusmogulus https://freesound.org/people/modusmogulus/sounds/734095/ under CC 0 +"Hammer and anvil" by Duasun -- https://freesound.org/people/Duasun/sounds/321889/ under CC 0 beaker_pickup.ogg was made by lowering pitch: Bottle Tap.wav by alex_alexalex -- https://freesound.org/s/395492/ -- License: Attribution NonCommercial 3.0 diff --git a/sound/items/attributions.txt b/sound/items/attributions.txt new file mode 100644 index 0000000000000..31b573c105893 --- /dev/null +++ b/sound/items/attributions.txt @@ -0,0 +1,25 @@ + +{ +cig_light.ogg +cig_snuff.ogg +lighter_on.ogg +lighter_off.ogg +zippo_onn.ogg +zippo_off.ogg +} - Taken from https://github.com/BeeStation/BeeStation-Hornet/pull/29 + +pen_click.ogg from https://freesound.org/people/LexzachGames/sounds/431492/ , license: CC0 + +night_vision_on.ogg by Syna-Max -- https://freesound.org/s/60345/ -- License: Attribution NonCommercial 4.0 + +{ +metal_drop.ogg - https://freesound.org/people/13FPanská_Tolar_David/sounds/378682/ , License: CC0 +metal_pick_up.ogg - https://freesound.org/people/Hotlavaman/sounds/108673/ , License: CC0 +glass_drop.ogg - https://freesound.org/people/Hotlavaman/sounds/108673/ , License: CC0 +glass_pick_up.ogg - https://freesound.org/people/tcrocker68/sounds/235602/ , License: CC0 +wood_pick_up.ogg - https://freesound.org/people/cjosephwalker/sounds/94859/ , License: CC SAMPLING+ 1.0 +wood_drop.ogg - https://freesound.org/people/cjosephwalker/sounds/94859/ , License: CC SAMPLING+ 1.0 +irod_rod_pick_up.ogg - https://freesound.org/people/lostphosphene/sounds/258265/ , License: CC BY 4.0 +plastic_pick_up.ogg - https://freesound.org/people/Jessica190091/sounds/491304/ , License: CC BY 4.0 +plastic_drop.ogg - https://freesound.org/people/martian/sounds/338854/ , License: CC0 +} - edited by sadboysuss \ No newline at end of file diff --git a/sound/items/cig_light.ogg b/sound/items/cig_light.ogg new file mode 100644 index 0000000000000..48aef9c344a42 Binary files /dev/null and b/sound/items/cig_light.ogg differ diff --git a/sound/items/cig_snuff.ogg b/sound/items/cig_snuff.ogg new file mode 100644 index 0000000000000..7f4cc6d3e2eb9 Binary files /dev/null and b/sound/items/cig_snuff.ogg differ diff --git a/sound/items/glass_drop.ogg b/sound/items/glass_drop.ogg new file mode 100644 index 0000000000000..389034f4ebb98 Binary files /dev/null and b/sound/items/glass_drop.ogg differ diff --git a/sound/items/glass_pick_up.ogg b/sound/items/glass_pick_up.ogg new file mode 100644 index 0000000000000..4df3ec51cc817 Binary files /dev/null and b/sound/items/glass_pick_up.ogg differ diff --git a/sound/items/handling/pill_bottle_open.ogg b/sound/items/handling/pill_bottle_open.ogg new file mode 100644 index 0000000000000..ab904e124d907 Binary files /dev/null and b/sound/items/handling/pill_bottle_open.ogg differ diff --git a/sound/items/handling/pill_bottle_pickup.ogg b/sound/items/handling/pill_bottle_pickup.ogg new file mode 100644 index 0000000000000..1b4ee45e4fc0b Binary files /dev/null and b/sound/items/handling/pill_bottle_pickup.ogg differ diff --git a/sound/items/handling/pill_bottle_place.ogg b/sound/items/handling/pill_bottle_place.ogg new file mode 100644 index 0000000000000..299865935c8c0 Binary files /dev/null and b/sound/items/handling/pill_bottle_place.ogg differ diff --git a/sound/items/iron_rod_pick_up.ogg b/sound/items/iron_rod_pick_up.ogg new file mode 100644 index 0000000000000..51fab52a99dba Binary files /dev/null and b/sound/items/iron_rod_pick_up.ogg differ diff --git a/sound/items/lighter_off.ogg b/sound/items/lighter_off.ogg new file mode 100644 index 0000000000000..8a2037e27d201 Binary files /dev/null and b/sound/items/lighter_off.ogg differ diff --git a/sound/items/lighter_on.ogg b/sound/items/lighter_on.ogg new file mode 100644 index 0000000000000..5294ee751fee9 Binary files /dev/null and b/sound/items/lighter_on.ogg differ diff --git a/sound/items/metal_drop.ogg b/sound/items/metal_drop.ogg new file mode 100644 index 0000000000000..48460e8cd37bf Binary files /dev/null and b/sound/items/metal_drop.ogg differ diff --git a/sound/items/metal_pick_up.ogg b/sound/items/metal_pick_up.ogg new file mode 100644 index 0000000000000..7a710bc0e577b Binary files /dev/null and b/sound/items/metal_pick_up.ogg differ diff --git a/sound/items/night_vision_on.ogg b/sound/items/night_vision_on.ogg new file mode 100644 index 0000000000000..13ca202669c4b Binary files /dev/null and b/sound/items/night_vision_on.ogg differ diff --git a/sound/items/pen_click.ogg b/sound/items/pen_click.ogg new file mode 100644 index 0000000000000..a315d698da11e Binary files /dev/null and b/sound/items/pen_click.ogg differ diff --git a/sound/items/plastic_drop.ogg b/sound/items/plastic_drop.ogg new file mode 100644 index 0000000000000..928ed7e85d7cc Binary files /dev/null and b/sound/items/plastic_drop.ogg differ diff --git a/sound/items/plastic_pick_up.ogg b/sound/items/plastic_pick_up.ogg new file mode 100644 index 0000000000000..6c4c569a1c105 Binary files /dev/null and b/sound/items/plastic_pick_up.ogg differ diff --git a/sound/items/wood_drop.ogg b/sound/items/wood_drop.ogg new file mode 100644 index 0000000000000..c55e393cf7a32 Binary files /dev/null and b/sound/items/wood_drop.ogg differ diff --git a/sound/items/wood_pick_up.ogg b/sound/items/wood_pick_up.ogg new file mode 100644 index 0000000000000..77b774e433426 Binary files /dev/null and b/sound/items/wood_pick_up.ogg differ diff --git a/sound/items/zippo_off.ogg b/sound/items/zippo_off.ogg new file mode 100644 index 0000000000000..8d51263dfd806 Binary files /dev/null and b/sound/items/zippo_off.ogg differ diff --git a/sound/items/zippo_on.ogg b/sound/items/zippo_on.ogg new file mode 100644 index 0000000000000..bc7cef6ecbd91 Binary files /dev/null and b/sound/items/zippo_on.ogg differ diff --git a/sound/mecha/mech_blade_attack.ogg b/sound/mecha/mech_blade_attack.ogg new file mode 100644 index 0000000000000..f6c9274762b1f Binary files /dev/null and b/sound/mecha/mech_blade_attack.ogg differ diff --git a/sound/mecha/mech_blade_break_wall.ogg b/sound/mecha/mech_blade_break_wall.ogg new file mode 100644 index 0000000000000..cec9c7a667cb0 Binary files /dev/null and b/sound/mecha/mech_blade_break_wall.ogg differ diff --git a/sound/mecha/mech_blade_safty.ogg b/sound/mecha/mech_blade_safty.ogg new file mode 100644 index 0000000000000..80e06388127f0 Binary files /dev/null and b/sound/mecha/mech_blade_safty.ogg differ diff --git a/sound/mecha/mech_charge_attack.ogg b/sound/mecha/mech_charge_attack.ogg new file mode 100644 index 0000000000000..b6d202c8e26d0 Binary files /dev/null and b/sound/mecha/mech_charge_attack.ogg differ diff --git a/sound/mecha/mech_stealth_attack.ogg b/sound/mecha/mech_stealth_attack.ogg new file mode 100644 index 0000000000000..e12ff890c7de5 Binary files /dev/null and b/sound/mecha/mech_stealth_attack.ogg differ diff --git a/sound/mecha/mech_stealth_effect.ogg b/sound/mecha/mech_stealth_effect.ogg new file mode 100644 index 0000000000000..b7a5a513308df Binary files /dev/null and b/sound/mecha/mech_stealth_effect.ogg differ diff --git a/sound/mecha/mech_stealth_pre_attack.ogg b/sound/mecha/mech_stealth_pre_attack.ogg new file mode 100644 index 0000000000000..15b2c04ab5c2a Binary files /dev/null and b/sound/mecha/mech_stealth_pre_attack.ogg differ diff --git a/sound/surgery/scalpel1.ogg b/sound/surgery/scalpel1.ogg index 6c0fe5dad9fec..01b80ce06ffd7 100644 Binary files a/sound/surgery/scalpel1.ogg and b/sound/surgery/scalpel1.ogg differ diff --git a/sound/voice/breathing.ogg b/sound/voice/breathing.ogg new file mode 100644 index 0000000000000..f940a1b211a6b Binary files /dev/null and b/sound/voice/breathing.ogg differ diff --git a/sound/weapons/solarflare.ogg b/sound/weapons/solarflare.ogg new file mode 100644 index 0000000000000..48f6c5e892292 Binary files /dev/null and b/sound/weapons/solarflare.ogg differ diff --git a/strings/elvis_replacement.json b/strings/elvis_replacement.json new file mode 100644 index 0000000000000..fb7c3f4d02d62 --- /dev/null +++ b/strings/elvis_replacement.json @@ -0,0 +1,13 @@ +{ + "elvis": { + "i'm not ": "I ain't ", + " girl ": [" honey ", " baby ", " baby doll "], + " man ": [" son ", " buddy ", " brother ", " pal ", " friendo "], + " out of ": " outta ", + " thank you ": " thank you, thank you very much ", + " thanks ": " thank you, thank you very much ", + " what are you": " whatcha ", + " yes": [" sure ", " yea "], + " muh valids ": " my kicks " + } +} diff --git a/strings/luchador_replacement.json b/strings/luchador_replacement.json new file mode 100644 index 0000000000000..71b6122adba33 --- /dev/null +++ b/strings/luchador_replacement.json @@ -0,0 +1,20 @@ +{ + "luchador": { + "captain": "CAPITÁN", + "station": "ESTACIÓN", + "sir": "SEÑOR", + "the ": "el ", + "my ": "mi ", + "is ": "es ", + "it's": "es", + "friend": "amigo", + "buddy": "amigo", + "hello": "hola", + " hot": " caliente", + " very ": " muy ", + "sword": "espada", + "library": "biblioteca", + "traitor": "traidor", + "wizard": "mago" + } +} diff --git a/strings/names/voidwalker.txt b/strings/names/voidwalker.txt new file mode 100644 index 0000000000000..f7f991a71f678 --- /dev/null +++ b/strings/names/voidwalker.txt @@ -0,0 +1,19 @@ +Ere +Vee +Gea +Vai +Nei +Lii +Pio +Ije +Cie +Ule +Iso +Roa +Afa +Ija +Ebe +Eme +Roa +Goa +Aya diff --git a/strings/ork_replacement.json b/strings/ork_replacement.json new file mode 100644 index 0000000000000..d80ba2ce12f59 --- /dev/null +++ b/strings/ork_replacement.json @@ -0,0 +1,116 @@ +{ + "ork": { + "gun": "blasta", + "ammo": "dakka", + "bullets": "dakka", + "rockets": "bigger dakka", + "grenade": "bomb", + "rifle": "shoota", + "pistol": "short boomstick", + "shotgun": "boomstick", + "launcher": "bomb throwa", + "sword": "harder choppa", + "knife": "choppa", + "spear": "long choppa", + "disk": "disky", + "nuke disk": "disky", + "captain": "warboss", + "security": "warboyz", + "cap ": "boss ", + " cap": " boss", + "science": "smarty thinking", + "scientist": "brain boy", + "engineer": "mekkanik", + "engineering": "tinkerin'", + "technician": "mekboy", + "botanist": "green feeda", + "botany": "green feed", + "felinid": "talking kitty", + "robotics": "kanna maka", + "roboticist": "kanna boy", + "cat": "kitty", + "moth": "bug", + "mothperson": "bugga", + "plasmaman": "fire skellyton", + "plasmamen": "fire skellytons", + "skeleton": "skellyton", + "lizard": "tailswingah", + "lizardperson": "tailswingah", + "ethereal": "zappy boy", + "car": "trukk", + "power": "lektricity", + "cable": "zap rope", + "human": "humie", + "fly": "buzz", + "flyperson": "buzzah", + "run": "charge", + "fight": "crump", + "revolution": "dust up", + "nuke": "bomb", + "ai ": "talky box ", + "artificial intelligence": "talky box", + "shuttle": "winged trukk", + "miner": "rockkrusha", + "mining": "rock krushing", + "maintenance": "tunnel", + "maint": "tunnel", + "singularity": "space hole", + "supermatter": "angry rock", + "war ": "WAAAGH! ", + "hos ": "nob ", + "the ": "da ", + ".": "!", + "one ": "wun ", + "fast": "fastah", + "faster": "fastah", + "exosuit": "killa kan", + "mech": "killa kan", + "mecha": "killa kan", + "rocket": "rokkit", + "flame": "burna", + "doctor": "dok", + "medic": "doka", + "medical": "healy", + "cmo": "mad dok", + "ce": "big mek", + "thing": "fing", + "want to": "wanna", + "need to": "needa", + "got to": "gotta", + " my": " me", + "my ": "me ", + " you": " ya", + "you ": "ya ", + "you've": "yoos", + "you have": "yoos", + " in a ": " ina ", + "more": "moar", + "teeth": "teef", + "ing ": "in' ", + "proper": "proppa", + "something": "sumfing", + "i am ": "I iz ", + "i'm ": "I'ze ", + "we're ": "we'ze ", + "you're ": "you'ze ", + "here": "'ere", + "this ": "dis ", + "that ": "dat ", + "them ": "dem ", + "those ": "dose ", + "your ": "ya ", + "says": "sez", + "with": "wiv", + "what": "wot", + "who": "oo", + "who's": "oo'z", + "whose": "oo'z", + "strong": "'ard", + "tough": "'ard", + "hard": "'ard", + "robust": "well 'ard", + "what's that": "wuzzat", + "wizard": "weirdah", + "heretic": "weirdah" + } +} diff --git a/tgstation.dme b/tgstation.dme index 99b52e4cb46a0..e0fb60d58cf9b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -84,6 +84,7 @@ #include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\dna_infuser_defines.dm" #include "code\__DEFINES\do_afters.dm" +#include "code\__DEFINES\door.dm" #include "code\__DEFINES\drone.dm" #include "code\__DEFINES\dye_keys.dm" #include "code\__DEFINES\dynamic.dm" @@ -452,7 +453,6 @@ #include "code\__HELPERS\radio.dm" #include "code\__HELPERS\randoms.dm" #include "code\__HELPERS\reagents.dm" -#include "code\__HELPERS\records.dm" #include "code\__HELPERS\ref.dm" #include "code\__HELPERS\roundend.dm" #include "code\__HELPERS\sanitize_values.dm" @@ -777,6 +777,7 @@ #include "code\datums\dog_fashion.dm" #include "code\datums\ductnet.dm" #include "code\datums\eigenstate.dm" +#include "code\datums\embed_data.dm" #include "code\datums\emotes.dm" #include "code\datums\ert.dm" #include "code\datums\hailer_phrase.dm" @@ -994,6 +995,7 @@ #include "code\datums\bodypart_overlays\markings_bodypart_overlay.dm" #include "code\datums\bodypart_overlays\mutant_bodypart_overlay.dm" #include "code\datums\bodypart_overlays\simple_bodypart_overlay.dm" +#include "code\datums\bodypart_overlays\texture_bodypart_overlay.dm" #include "code\datums\brain_damage\brain_trauma.dm" #include "code\datums\brain_damage\creepy_trauma.dm" #include "code\datums\brain_damage\hypnosis.dm" @@ -1028,6 +1030,7 @@ #include "code\datums\components\atmos_reaction_recorder.dm" #include "code\datums\components\aura_healing.dm" #include "code\datums\components\bakeable.dm" +#include "code\datums\components\banned_from_space.dm" #include "code\datums\components\basic_inhands.dm" #include "code\datums\components\basic_mob_attack_telegraph.dm" #include "code\datums\components\basic_ranged_ready_overlay.dm" @@ -1101,6 +1104,7 @@ #include "code\datums\components\gas_leaker.dm" #include "code\datums\components\geiger_sound.dm" #include "code\datums\components\ghost_direct_control.dm" +#include "code\datums\components\glass_passer.dm" #include "code\datums\components\gps.dm" #include "code\datums\components\grillable.dm" #include "code\datums\components\ground_sinking.dm" @@ -1110,6 +1114,7 @@ #include "code\datums\components\hazard_area.dm" #include "code\datums\components\healing_touch.dm" #include "code\datums\components\health_scaling_effects.dm" +#include "code\datums\components\heart_eater.dm" #include "code\datums\components\heirloom.dm" #include "code\datums\components\hide_highest_offset.dm" #include "code\datums\components\holderloving.dm" @@ -1199,12 +1204,18 @@ #include "code\datums\components\sisyphus_awarder.dm" #include "code\datums\components\sitcomlaughter.dm" #include "code\datums\components\sizzle.dm" +#include "code\datums\components\slime_friends.dm" #include "code\datums\components\slippery.dm" #include "code\datums\components\smooth_tunes.dm" #include "code\datums\components\soul_stealer.dm" #include "code\datums\components\soulstoned.dm" #include "code\datums\components\sound_player.dm" +#include "code\datums\components\space_allaergy.dm" +#include "code\datums\components\space_camo.dm" +#include "code\datums\components\space_dive.dm" +#include "code\datums\components\space_kidnap.dm" #include "code\datums\components\spawner.dm" +#include "code\datums\components\speechmod.dm" #include "code\datums\components\spill.dm" #include "code\datums\components\spin2win.dm" #include "code\datums\components\spinny.dm" @@ -1233,6 +1244,7 @@ #include "code\datums\components\telegraph_ability.dm" #include "code\datums\components\temporary_body.dm" #include "code\datums\components\temporary_description.dm" +#include "code\datums\components\temporary_glass_shatter.dm" #include "code\datums\components\tether.dm" #include "code\datums\components\thermite.dm" #include "code\datums\components\throwbonus_on_windup.dm" @@ -1256,6 +1268,7 @@ #include "code\datums\components\wearertargeting.dm" #include "code\datums\components\weatherannouncer.dm" #include "code\datums\components\wet_floor.dm" +#include "code\datums\components\wormborn.dm" #include "code\datums\components\container_item\container_item.dm" #include "code\datums\components\container_item\tank_holder.dm" #include "code\datums\components\crafting\_recipes.dm" @@ -1272,7 +1285,6 @@ #include "code\datums\components\crafting\misc.dm" #include "code\datums\components\crafting\ranged_weapon.dm" #include "code\datums\components\crafting\robot.dm" -#include "code\datums\components\crafting\slapcrafting.dm" #include "code\datums\components\crafting\structures.dm" #include "code\datums\components\crafting\tailoring.dm" #include "code\datums\components\crafting\tiles.dm" @@ -1295,9 +1307,11 @@ #include "code\datums\components\pet_commands\pet_command.dm" #include "code\datums\components\pet_commands\pet_commands_basic.dm" #include "code\datums\components\plumbing\_plumbing.dm" +#include "code\datums\components\plumbing\buffer.dm" #include "code\datums\components\plumbing\chemical_acclimator.dm" #include "code\datums\components\plumbing\filter.dm" #include "code\datums\components\plumbing\reaction_chamber.dm" +#include "code\datums\components\plumbing\simple_components.dm" #include "code\datums\components\plumbing\splitter.dm" #include "code\datums\components\riding\riding.dm" #include "code\datums\components\riding\riding_mob.dm" @@ -1504,6 +1518,7 @@ #include "code\datums\elements\simple_flying.dm" #include "code\datums\elements\skill_reward.dm" #include "code\datums\elements\skittish.dm" +#include "code\datums\elements\slapcrafting.dm" #include "code\datums\elements\soft_landing.dm" #include "code\datums\elements\spooky.dm" #include "code\datums\elements\squish.dm" @@ -1595,6 +1610,7 @@ #include "code\datums\keybinding\robot.dm" #include "code\datums\looping_sounds\_looping_sound.dm" #include "code\datums\looping_sounds\acid.dm" +#include "code\datums\looping_sounds\breathing.dm" #include "code\datums\looping_sounds\burning.dm" #include "code\datums\looping_sounds\choking.dm" #include "code\datums\looping_sounds\cyborg.dm" @@ -2031,7 +2047,7 @@ #include "code\game\machinery\recycler.dm" #include "code\game\machinery\requests_console.dm" #include "code\game\machinery\roulette_machine.dm" -#include "code\game\machinery\scan_gate.dm" +#include "code\game\machinery\scanner_gate.dm" #include "code\game\machinery\sheetifier.dm" #include "code\game\machinery\shieldgen.dm" #include "code\game\machinery\sleepers.dm" @@ -2467,6 +2483,7 @@ #include "code\game\objects\items\granters\crafting\combat_baking.dm" #include "code\game\objects\items\granters\crafting\death_sandwich.dm" #include "code\game\objects\items\granters\crafting\desserts.dm" +#include "code\game\objects\items\granters\crafting\fletching.dm" #include "code\game\objects\items\granters\crafting\pipegun.dm" #include "code\game\objects\items\granters\crafting\rebarxbowsyndie.dm" #include "code\game\objects\items\granters\crafting\regal_condor.dm" @@ -2882,6 +2899,7 @@ #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminpm.dm" #include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\ai_triumvirate.dm" #include "code\modules\admin\verbs\anonymousnames.dm" #include "code\modules\admin\verbs\atmosdebug.dm" #include "code\modules\admin\verbs\beakerpanel.dm" @@ -3277,6 +3295,17 @@ #include "code\modules\antagonists\valentines\heartbreaker.dm" #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\venus_human_trap\venus_human_trap.dm" +#include "code\modules\antagonists\voidwalker\voidwalker.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_abilities.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_bodyparts.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_kidnap.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_loot.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_organs.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_particles.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_species.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_status_effects.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_traumas.dm" +#include "code\modules\antagonists\voidwalker\voidwalker_void_eater.dm" #include "code\modules\antagonists\wishgranter\wishgranter.dm" #include "code\modules\antagonists\wizard\imp_antag.dm" #include "code\modules\antagonists\wizard\slaughter_antag.dm" @@ -3293,6 +3322,7 @@ #include "code\modules\antagonists\wizard\equipment\spellbook_entries\defensive.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\mobility.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\offensive.dm" +#include "code\modules\antagonists\wizard\equipment\spellbook_entries\perks.dm" #include "code\modules\antagonists\wizard\equipment\spellbook_entries\summons.dm" #include "code\modules\antagonists\wizard\grand_ritual\fluff.dm" #include "code\modules\antagonists\wizard\grand_ritual\grand_ritual.dm" @@ -3421,6 +3451,7 @@ #include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm" #include "code\modules\atmospherics\machinery\components\trinary_devices\mixer.dm" #include "code\modules\atmospherics\machinery\components\trinary_devices\trinary_devices.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\airlock_pump.dm" #include "code\modules\atmospherics\machinery\components\unary_devices\bluespace_sender.dm" #include "code\modules\atmospherics\machinery\components\unary_devices\cryo.dm" #include "code\modules\atmospherics\machinery\components\unary_devices\heat_exchanger.dm" @@ -4321,6 +4352,7 @@ #include "code\modules\jobs\job_types\antagonists\space_dragon.dm" #include "code\modules\jobs\job_types\antagonists\space_ninja.dm" #include "code\modules\jobs\job_types\antagonists\space_wizard.dm" +#include "code\modules\jobs\job_types\antagonists\voidwalker.dm" #include "code\modules\jobs\job_types\antagonists\wizard_apprentice.dm" #include "code\modules\jobs\job_types\antagonists\xenomorph.dm" #include "code\modules\jobs\job_types\assistant\assistant.dm" @@ -4408,6 +4440,7 @@ #include "code\modules\library\random_books.dm" #include "code\modules\library\skill_learning\skill_station.dm" #include "code\modules\library\skill_learning\skillchip.dm" +#include "code\modules\library\skill_learning\generic_skillchips\matrix_flip.dm" #include "code\modules\library\skill_learning\generic_skillchips\rod_suplex.dm" #include "code\modules\library\skill_learning\job_skillchips\_job.dm" #include "code\modules\library\skill_learning\job_skillchips\chef.dm" @@ -4491,6 +4524,7 @@ #include "code\modules\mapfluff\ruins\lavaland_ruin_code.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\commsagent.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\hotsprings.dm" +#include "code\modules\mapfluff\ruins\icemoonruin_code\lavaland_incursion.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\library.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\mailroom.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\mining_site.dm" @@ -5356,7 +5390,6 @@ #include "code\modules\plumbing\plumbers\splitters.dm" #include "code\modules\plumbing\plumbers\synthesizer.dm" #include "code\modules\plumbing\plumbers\teleporter.dm" -#include "code\modules\plumbing\plumbers\vatgrower.dm" #include "code\modules\point\point.dm" #include "code\modules\power\battery.dm" #include "code\modules\power\cable.dm" @@ -5531,6 +5564,7 @@ #include "code\modules\projectiles\projectile\energy\net_snare.dm" #include "code\modules\projectiles\projectile\energy\ninja.dm" #include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" +#include "code\modules\projectiles\projectile\energy\photon.dm" #include "code\modules\projectiles\projectile\energy\radiation.dm" #include "code\modules\projectiles\projectile\energy\stun.dm" #include "code\modules\projectiles\projectile\energy\tesla.dm" @@ -5749,6 +5783,7 @@ #include "code\modules\research\xenobiology\vatgrowing\microscope.dm" #include "code\modules\research\xenobiology\vatgrowing\petri_dish.dm" #include "code\modules\research\xenobiology\vatgrowing\swab.dm" +#include "code\modules\research\xenobiology\vatgrowing\vatgrower.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\_micro_organism.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\_sample.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\cell_lines\common.dm" @@ -6098,6 +6133,7 @@ #include "code\modules\vehicles\mecha\combat\durand.dm" #include "code\modules\vehicles\mecha\combat\gygax.dm" #include "code\modules\vehicles\mecha\combat\honker.dm" +#include "code\modules\vehicles\mecha\combat\justice.dm" #include "code\modules\vehicles\mecha\combat\marauder.dm" #include "code\modules\vehicles\mecha\combat\phazon.dm" #include "code\modules\vehicles\mecha\combat\reticence.dm" @@ -6142,6 +6178,7 @@ #include "code\modules\vending\security.dm" #include "code\modules\vending\snack.dm" #include "code\modules\vending\sovietsoda.dm" +#include "code\modules\vending\subtype.dm" #include "code\modules\vending\sustenance.dm" #include "code\modules\vending\toys.dm" #include "code\modules\vending\wardrobes.dm" diff --git a/tgui/global.d.ts b/tgui/global.d.ts index 9cb8e37c2e8c5..d0bfdecf8909f 100644 --- a/tgui/global.d.ts +++ b/tgui/global.d.ts @@ -158,6 +158,11 @@ type ByondType = { * Loads a script into the document. */ loadJs(url: string): void; + + /** + * Maps icons to their ref + */ + iconRefMap: Record; }; /** diff --git a/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx b/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx new file mode 100644 index 0000000000000..8203f0313951d --- /dev/null +++ b/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx @@ -0,0 +1,173 @@ +import { toFixed } from 'common/math'; +import { capitalize } from 'common/string'; +import { useState } from 'react'; +import { useDispatch, useSelector } from 'tgui/backend'; +import { + Button, + Collapsible, + Divider, + Input, + LabeledList, + NumberInput, + Section, + Stack, +} from 'tgui/components'; + +import { clearChat, saveChatToDisk } from '../chat/actions'; +import { THEMES } from '../themes'; +import { updateSettings } from './actions'; +import { FONTS } from './constants'; +import { selectSettings } from './selectors'; + +export function SettingsGeneral(props) { + const { theme, fontFamily, fontSize, lineHeight } = + useSelector(selectSettings); + const dispatch = useDispatch(); + const [freeFont, setFreeFont] = useState(false); + + return ( +
    + + + {THEMES.map((THEME) => ( + + ))} + + + + {!freeFont ? ( + { + setFreeFont(!freeFont); + }} + > + Custom font + + } + > + {FONTS.map((FONT) => ( + + ))} + + ) : ( + + + dispatch( + updateSettings({ + fontFamily: value, + }), + ) + } + /> + + + )} + + + + toFixed(value)} + onChange={(value) => + dispatch( + updateSettings({ + fontSize: value, + }), + ) + } + /> + + + toFixed(value, 2)} + onDrag={(value) => + dispatch( + updateSettings({ + lineHeight: value, + }), + ) + } + /> + + + + + + + + + dispatch(clearChat())} + > + Clear chat + + + +
    + ); +} diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.jsx b/tgui/packages/tgui-panel/settings/SettingsPanel.jsx deleted file mode 100644 index e5691037bba68..0000000000000 --- a/tgui/packages/tgui-panel/settings/SettingsPanel.jsx +++ /dev/null @@ -1,371 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { toFixed } from 'common/math'; -import { capitalize } from 'common/string'; -import { useLocalState } from 'tgui/backend'; -import { useDispatch, useSelector } from 'tgui/backend'; -import { - Box, - Button, - Collapsible, - ColorBox, - Divider, - Input, - LabeledList, - NumberInput, - Section, - Stack, - Tabs, - TextArea, -} from 'tgui/components'; - -import { ChatPageSettings } from '../chat'; -import { clearChat, rebuildChat, saveChatToDisk } from '../chat/actions'; -import { THEMES } from '../themes'; -import { - addHighlightSetting, - changeSettingsTab, - removeHighlightSetting, - updateHighlightSetting, - updateSettings, -} from './actions'; -import { FONTS, MAX_HIGHLIGHT_SETTINGS, SETTINGS_TABS } from './constants'; -import { - selectActiveTab, - selectHighlightSettingById, - selectHighlightSettings, - selectSettings, -} from './selectors'; - -export const SettingsPanel = (props) => { - const activeTab = useSelector(selectActiveTab); - const dispatch = useDispatch(); - return ( - - -
    - - {SETTINGS_TABS.map((tab) => ( - - dispatch( - changeSettingsTab({ - tabId: tab.id, - }), - ) - } - > - {tab.name} - - ))} - -
    -
    - - {activeTab === 'general' && } - {activeTab === 'chatPage' && } - {activeTab === 'textHighlight' && } - -
    - ); -}; - -export const SettingsGeneral = (props) => { - const { theme, fontFamily, fontSize, lineHeight } = - useSelector(selectSettings); - const dispatch = useDispatch(); - const [freeFont, setFreeFont] = useLocalState('freeFont', false); - return ( -
    - - - {THEMES.map((THEME) => ( -
    - ); -}; - -const TextHighlightSettings = (props) => { - const highlightSettings = useSelector(selectHighlightSettings); - const dispatch = useDispatch(); - return ( -
    - - {highlightSettings.map((id, i) => ( - - ))} - {highlightSettings.length < MAX_HIGHLIGHT_SETTINGS && ( - - - - Can freeze the chat for a while. - - -
    - ); -}; - -const TextHighlightSetting = (props) => { - const { id, ...rest } = props; - const highlightSettingById = useSelector(selectHighlightSettingById); - const dispatch = useDispatch(); - const { - highlightColor, - highlightText, - highlightWholeMessage, - matchWord, - matchCase, - } = highlightSettingById[id]; - return ( - - - -