diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 9d11a11473320..f63a030c882a1 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -22,6 +22,7 @@ balance: rebalanced something
fix: fixed a few things
sound: added/modified/removed audio or sound effects
image: added/modified/removed some icons or images
+map: added/modified/removed map content
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml
index 40710a9044b74..388c907b25296 100644
--- a/.github/workflows/generate_documentation.yml
+++ b/.github/workflows/generate_documentation.yml
@@ -27,7 +27,7 @@ jobs:
touch dmdoc/.nojekyll
echo codedocs.tgstation13.org > dmdoc/CNAME
- name: Deploy
- uses: JamesIves/github-pages-deploy-action@v4.6.4
+ uses: JamesIves/github-pages-deploy-action@v4.6.8
with:
branch: gh-pages
clean: true
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm
new file mode 100644
index 0000000000000..d35fc52db02b4
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm
@@ -0,0 +1,4641 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ac" = (
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"aw" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"aA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"aE" = (
+/obj/item/shovel,
+/obj/structure/rack,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/obj/item/shovel{
+ pixel_x = -5;
+ pixel_y = 1
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"aU" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"be" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"bs" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"bR" = (
+/obj/structure/railing{
+ dir = 8;
+ color = "#beada5"
+ },
+/obj/structure/railing{
+ dir = 4;
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/iron/stairs{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"bV" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 10
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"bX" = (
+/obj/structure/table,
+/obj/machinery/gibber,
+/obj/machinery/light/warm/directional/south,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"ca" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"cy" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood/gibs/old,
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"cC" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"cJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/kitchenspike,
+/obj/effect/decal/cleanable/blood/gibs/old,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"cO" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"cQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/food_or_drink/jelly_donuts{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"cS" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 5
+ },
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"dc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = 2;
+ pixel_y = -4
+ },
+/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 5
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"dr" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"du" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"dC" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"dP" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/machinery/light/small/dim/directional/west,
+/obj/structure/railing{
+ dir = 5;
+ color = "#beada5"
+ },
+/obj/structure/railing/corner{
+ color = "#beada5"
+ },
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"dQ" = (
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/mob_spawn/corpse/human/assistant,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"eh" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/warm/directional/south,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"ej" = (
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"et" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"eB" = (
+/turf/open/floor/iron/stairs/left{
+ color = "#5d341f";
+ dir = 1
+ },
+/area/ruin/huntinglodge)
+"eD" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 8;
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"eE" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/obj/item/chair/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"eQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"eX" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"fb" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 1
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"fe" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"fi" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"fB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"fK" = (
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"fO" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/chem_pile,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"fP" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"gu" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = -6;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = -14;
+ pixel_y = 0
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"gA" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/obj/structure/chair/comfy/brown,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/mob_spawn/corpse/human/minesite/overseer,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"gB" = (
+/obj/effect/decal/cleanable/blood/gibs/old,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 11;
+ pixel_y = -13
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"gM" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"gS" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = -4;
+ pixel_y = -7
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"gY" = (
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/ruin/huntinglodge)
+"gZ" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"hb" = (
+/obj/structure/railing{
+ dir = 10;
+ color = "#beada5"
+ },
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"hf" = (
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"hl" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -3;
+ pixel_y = -8
+ },
+/obj/item/gun/ballistic/shotgun/riot,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"hm" = (
+/turf/open/floor/iron/stairs/right{
+ color = "#5d341f";
+ dir = 8
+ },
+/area/ruin/huntinglodge)
+"hE" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"hK" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"hP" = (
+/obj/structure/table/wood,
+/obj/item/paper{
+ pixel_x = 3;
+ pixel_y = 6
+ },
+/obj/item/pen/fountain{
+ pixel_x = -10;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/siding/wood/end,
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"hV" = (
+/obj/effect/spawner/structure/window/reinforced{
+ color = "#beada5"
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/effect/decal/cleanable/blood/splatter/over_window,
+/obj/effect/mapping_helpers/damaged_window,
+/turf/open/floor/plating,
+/area/ruin/huntinglodge)
+"hZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/ammo_casing/c45{
+ pixel_x = 7;
+ pixel_y = -5
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"ic" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent,
+/obj/item/gift{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/blood/gibs/body,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"if" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"iq" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"iZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/gift,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"jl" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = 2;
+ pixel_y = -3
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"jp" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/item/bodypart/head/ethereal,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/item/chair/stool,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"jr" = (
+/obj/structure/fermenting_barrel,
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_x = 1;
+ pixel_y = 13
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"jF" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"jK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"jN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"jQ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"kf" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"kk" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"kl" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"kn" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/misc/hay/icemoon,
+/area/icemoon/surface/outdoors/nospawn)
+"kD" = (
+/mob/living/basic/viscerator,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"kH" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"kI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/chair/stool{
+ pixel_x = -10;
+ pixel_y = -14
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"kJ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"kP" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"kR" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"lc" = (
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"lv" = (
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/ruin/huntinglodge)
+"lC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"lE" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/blood/gibs/down,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"lJ" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = 11;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = 11;
+ pixel_y = 0
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"lL" = (
+/obj/structure/table/wood,
+/obj/item/toy/talking/ai{
+ pixel_x = -2;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = -18;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = -9;
+ pixel_y = 10
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"lO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"lU" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"mb" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 10
+ },
+/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"mm" = (
+/obj/structure/table/wood,
+/obj/item/storage/cans/sixbeer,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"mo" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"mq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/mob_spawn/corpse/human,
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"mr" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/rainbow{
+ dir = 1
+ },
+/obj/effect/mob_spawn/corpse/human/miner/explorer,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"mA" = (
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/ruin/huntinglodge)
+"mG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/chair/stool/directional/north,
+/obj/item/gun/ballistic/shotgun/riot,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"mX" = (
+/obj/structure/dresser,
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"nt" = (
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"nC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"nI" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/flora/tree/pine/xmas/presentless{
+ pixel_x = -15;
+ pixel_y = 10
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"nK" = (
+/obj/structure/ore_container/food_trough/raptor_trough,
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"nX" = (
+/obj/structure/table/wood/fancy,
+/obj/item/bodypart/head/ethereal,
+/obj/machinery/light/warm/directional/east,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"og" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"oF" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"oT" = (
+/obj/machinery/computer/security/wooden_tv,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"oW" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"oY" = (
+/obj/structure/railing{
+ dir = 10;
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"pl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 0;
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/chem_pile,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"pr" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/chair/stool{
+ dir = 4;
+ pixel_x = 0;
+ pixel_y = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"pE" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_x = 3;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"pF" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"pJ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"pN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/light/small/dim/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/confetti,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"pU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/secure_closet/freezer/fridge/all_access,
+/obj/item/food/grown/carrot{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/food/grown/carrot{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/structure/sink/kitchen/directional/west,
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"pX" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/decal/cleanable/blood/gibs/down,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"qp" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/paper/crumpled/bloody,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"qH" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 9
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"qL" = (
+/obj/structure/table/wood/fancy/orange,
+/obj/item/trash/tray{
+ pixel_x = 0;
+ pixel_y = 3
+ },
+/obj/item/bodypart/head{
+ pixel_x = 0;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"qO" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -4;
+ pixel_y = -13
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"qU" = (
+/obj/item/hatchet/wooden{
+ pixel_x = -8;
+ pixel_y = 17
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"qW" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/item/chair/stool,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"qZ" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"ry" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"rI" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"rS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"sU" = (
+/obj/item/ammo_casing/c45,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"sX" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/effect/spawner/random/food_or_drink/jelly_donuts{
+ pixel_x = 6;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/food_or_drink/jelly_donuts{
+ pixel_x = -5;
+ pixel_y = 11
+ },
+/obj/effect/spawner/random/food_or_drink/jelly_donuts{
+ pixel_x = -14;
+ pixel_y = 0
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"ta" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"td" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"tk" = (
+/obj/effect/turf_decal/siding/wood/end,
+/obj/structure/rack,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/suit/hooded/wintercoat{
+ pixel_x = -3;
+ pixel_y = 0
+ },
+/obj/item/clothing/suit/hooded/wintercoat{
+ pixel_x = -6;
+ pixel_y = 0
+ },
+/obj/item/pickaxe,
+/obj/item/pickaxe{
+ pixel_x = 5;
+ pixel_y = -2
+ },
+/obj/item/pickaxe{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/item/flashlight{
+ pixel_x = 0;
+ pixel_y = -2
+ },
+/obj/item/flashlight{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"tq" = (
+/obj/machinery/jukebox,
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"tT" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"tY" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/item/gift{
+ pixel_x = 0;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"uc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mob_spawn/corpse/human/cook,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"uU" = (
+/obj/structure/barricade/wooden/crude/snow,
+/obj/machinery/door/airlock/wood,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"uZ" = (
+/obj/machinery/light/warm/directional/north,
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"vc" = (
+/obj/item/knife/combat/bone{
+ pixel_x = -19;
+ pixel_y = -2
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"vg" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/vomit,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"vr" = (
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"vv" = (
+/obj/structure/railing{
+ dir = 10;
+ color = "#beada5"
+ },
+/obj/structure/hedge,
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"vH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"vK" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"vO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/table/wood/fancy,
+/obj/item/gift{
+ pixel_x = 0;
+ pixel_y = 1
+ },
+/obj/item/gift{
+ pixel_x = 5;
+ pixel_y = 10
+ },
+/obj/item/gift{
+ pixel_x = -12;
+ pixel_y = 11
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"vW" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 5
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"wd" = (
+/obj/structure/table/wood/fancy,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 0;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"ws" = (
+/obj/structure/musician/piano{
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"ww" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/vending/dinnerware,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"wC" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"wI" = (
+/obj/structure/noticeboard/directional/north,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = 1;
+ pixel_y = 27
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -1;
+ pixel_y = 5
+ },
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"wO" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"wP" = (
+/obj/effect/decal/cleanable/blood/gibs/up,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"wV" = (
+/obj/structure/fireplace,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"xh" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"xv" = (
+/obj/effect/decal/cleanable/blood/gibs/down,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"xy" = (
+/obj/structure/chair/sofa/bench/left{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"xz" = (
+/obj/effect/decal/cleanable/blood/gibs/body,
+/obj/effect/decal/cleanable/blood/trails,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"xB" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"xE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/table/wood/fancy,
+/obj/item/gift{
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/obj/item/gift{
+ pixel_x = 4;
+ pixel_y = 9
+ },
+/obj/item/gift{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"xG" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/structure/railing{
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"xH" = (
+/obj/effect/decal/cleanable/insectguts,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"xM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/table/wood/fancy/royalblack,
+/obj/machinery/light/warm/directional/west,
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"xQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"ye" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = -17;
+ pixel_y = -1
+ },
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/effect/spawner/random/entertainment/musical_instrument,
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"yk" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"yt" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"yB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"yG" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/mob_spawn/corpse/human/miner/explorer,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"yN" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"yO" = (
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/blood/trails,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/basic/viscerator,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"yR" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = -10;
+ pixel_y = -9
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = 1;
+ pixel_y = -7
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/ash,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"yW" = (
+/obj/structure/railing/corner{
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"zr" = (
+/obj/effect/decal/cleanable/blood/splatter/over_window,
+/obj/effect/spawner/structure/window/reinforced{
+ color = "#beada5"
+ },
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/plating,
+/area/ruin/huntinglodge)
+"zM" = (
+/obj/item/chair/stool/bamboo{
+ dir = 8;
+ color = "#463934"
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"zN" = (
+/turf/open/floor/iron/stairs{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"Ah" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Ao" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = -10;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = 3;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Ar" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"As" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 5
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Aw" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 10
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"AF" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
+/turf/open/misc/hay/icemoon,
+/area/icemoon/surface/outdoors/nospawn)
+"AG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 10
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"AV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/oven/range,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"AX" = (
+/obj/structure/table/wood,
+/obj/item/clothing/suit/space/santa,
+/obj/item/storage/backpack/santabag{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/costume/santa{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/ammo_box/magazine/m45{
+ pixel_x = 8;
+ pixel_y = 0
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Bl" = (
+/obj/structure/railing{
+ dir = 6;
+ color = "#beada5"
+ },
+/obj/structure/hedge,
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Bm" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = -4;
+ pixel_y = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"BE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood/fancy/orange,
+/obj/item/plate/small{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/plate/small{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/cup/glass{
+ pixel_x = 7;
+ pixel_y = 17
+ },
+/obj/item/food/meat/steak/plain/human{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/item/food/meat/steak/plain/human{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/cup/glass{
+ pixel_x = -8;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"BI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Cv" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/misc/hay/icemoon,
+/area/icemoon/surface/outdoors/nospawn)
+"Cy" = (
+/obj/structure/noticeboard/directional/north,
+/obj/item/bodypart/head{
+ pixel_x = -1;
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/item/paper/crumpled/bloody,
+/obj/machinery/coffeemaker/impressa,
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"CA" = (
+/turf/closed/mineral/snowmountain/cavern/icemoon,
+/area/icemoon/surface/outdoors/nospawn)
+"CC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/chair/stool/directional/west,
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/warm/dim/directional/east,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"CD" = (
+/turf/open/floor/iron/stairs/right{
+ color = "#5d341f";
+ dir = 1
+ },
+/area/ruin/huntinglodge)
+"CE" = (
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/ruin/huntinglodge)
+"CL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood/fancy,
+/obj/item/gift{
+ pixel_x = -18;
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"CS" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Dc" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/chair/stool/directional/south,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Dp" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Dq" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Ds" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"DE" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"DF" = (
+/obj/structure/flora/tree/pine/style_2,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"DH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/light/warm/directional/east,
+/obj/structure/table/wood,
+/obj/item/clothing/shoes/winterboots/ice_boots,
+/obj/item/clothing/shoes/winterboots/ice_boots{
+ pixel_x = -5;
+ pixel_y = 11
+ },
+/obj/item/clothing/shoes/winterboots/ice_boots{
+ pixel_x = 6;
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"DM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"DO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 8;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"DX" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Ea" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/obj/item/gift{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/gift{
+ pixel_x = -6;
+ pixel_y = -1
+ },
+/obj/item/gift{
+ pixel_x = -5;
+ pixel_y = 15
+ },
+/obj/item/gift{
+ pixel_x = 4;
+ pixel_y = 13
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Ei" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Ej" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Es" = (
+/obj/structure/table/wood/fancy,
+/obj/item/gift{
+ pixel_x = -1;
+ pixel_y = -11
+ },
+/obj/item/gift{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/gift{
+ pixel_x = 9;
+ pixel_y = -11
+ },
+/obj/item/gift{
+ pixel_x = 10;
+ pixel_y = 0
+ },
+/obj/item/gift{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"EB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/obj/effect/decal/cleanable/chem_pile,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"EG" = (
+/obj/structure/bed,
+/obj/item/bedsheet/gondola,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/mob_spawn/corpse/human/miner/explorer,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"EJ" = (
+/turf/template_noop,
+/area/template_noop)
+"EK" = (
+/obj/effect/decal/cleanable/ash,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -28;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"EY" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Fw" = (
+/obj/structure/railing{
+ dir = 6;
+ color = "#beada5"
+ },
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Fz" = (
+/obj/item/chair/stool/bamboo{
+ dir = 4;
+ color = "#463934"
+ },
+/obj/item/flashlight/lantern/on{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"FN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"FX" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -9;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/light/warm/directional/north,
+/obj/effect/decal/cleanable/blood,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 0;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/chem_pile,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Gj" = (
+/obj/structure/bed/double{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/bedsheet/patriot/double{
+ dir = 4
+ },
+/obj/effect/mob_spawn/corpse/human/laborer,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Gl" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/obj/structure/railing/corner/end{
+ dir = 4;
+ color = "#beada5"
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Gn" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Gp" = (
+/obj/effect/spawner/structure/window/reinforced{
+ color = "#beada5"
+ },
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/plating,
+/area/ruin/huntinglodge)
+"Gy" = (
+/obj/structure/falsewall/wood,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"GA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"GD" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent,
+/obj/item/gift{
+ pixel_x = -6;
+ pixel_y = 11
+ },
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"GF" = (
+/obj/structure/chair/sofa/bench{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"GN" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = 3;
+ pixel_y = -4
+ },
+/obj/item/ammo_casing/c45{
+ pixel_x = -5;
+ pixel_y = 0
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"GU" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Hi" = (
+/obj/structure/table/wood/fancy,
+/obj/effect/turf_decal/siding/wood,
+/obj/item/stack/wrapping_paper,
+/obj/item/stack/wrapping_paper{
+ pixel_x = 0;
+ pixel_y = 12
+ },
+/obj/item/gift{
+ pixel_x = -10;
+ pixel_y = 8
+ },
+/obj/item/gift{
+ pixel_x = 0;
+ pixel_y = 14
+ },
+/obj/item/gift{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/obj/item/gift{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Hm" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Ho" = (
+/obj/structure/closet/crate/trashcart,
+/obj/item/storage/cans/sixbeer,
+/obj/item/knife/hunting{
+ pixel_x = -1;
+ pixel_y = -4
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Hq" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/footprints,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Hr" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Hv" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Hw" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/trash/candle,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Hx" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"HC" = (
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"HK" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"HL" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = 7;
+ pixel_y = 9
+ },
+/obj/effect/spawner/random/entertainment/toy,
+/obj/item/clothing/mask/facehugger/toy{
+ pixel_x = -13;
+ pixel_y = 5
+ },
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = 2;
+ pixel_y = 8
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Ia" = (
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"If" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"Ig" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -6;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Ip" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Iq" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = -9;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Iw" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 4;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/vomit,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Iz" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"IH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/storage/cans/sixbeer,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"IZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Jb" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/ruin/huntinglodge)
+"Jj" = (
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Jk" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/noticeboard/directional/north,
+/obj/structure/sign/poster/contraband/blood_geometer/directional/east,
+/obj/structure/table/wood,
+/obj/item/paper{
+ pixel_x = 3;
+ pixel_y = 6
+ },
+/obj/machinery/light/small/dim/directional/east,
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Jo" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/chair/stool/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"JQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor6-old"
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"JZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Kc" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Kl" = (
+/obj/structure/railing/corner{
+ dir = 8;
+ color = "#beada5"
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"KB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"KU" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Lt" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Lv" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = -7;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/dualsaber/toy{
+ pixel_x = -16;
+ pixel_y = 0
+ },
+/obj/item/toy/toy_dagger{
+ pixel_x = 4;
+ pixel_y = -9
+ },
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"LQ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/item/chair/wood/wings,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Mb" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Mc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Mf" = (
+/obj/machinery/light/warm/directional/west,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/ruin/huntinglodge)
+"Mw" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/paper/crumpled,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"MJ" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/chair/stool/directional/south,
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"MQ" = (
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Nj" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/viscerator,
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Nl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/chair/stool/directional/north,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Nu" = (
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/ruin/huntinglodge)
+"Nw" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"NE" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"NL" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 15;
+ pixel_y = 9
+ },
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"NN" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"NP" = (
+/obj/structure/fermenting_barrel,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"NW" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Oa" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/warm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/brimdust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Of" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/blood/gibs/body,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Ok" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Oq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/brimdust,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Ot" = (
+/obj/structure/table/wood/fancy,
+/obj/item/gift{
+ pixel_x = -4;
+ pixel_y = 9
+ },
+/obj/item/gift{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/gift{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/gift{
+ pixel_x = 2;
+ pixel_y = 10
+ },
+/obj/item/gift{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/gift{
+ pixel_x = 7;
+ pixel_y = 17
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Oz" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/musical_instrument{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"OA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"OH" = (
+/obj/structure/noticeboard/directional/north,
+/obj/item/paper/crumpled/bloody,
+/obj/item/paper/crumpled/bloody,
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"ON" = (
+/obj/item/flashlight/lantern/on,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"OY" = (
+/obj/machinery/light/small/dim/directional/south,
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"OZ" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Pa" = (
+/obj/effect/decal/cleanable/blood/gibs/up,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Pd" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Pi" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/ammo_casing/c45{
+ pixel_x = 7;
+ pixel_y = -5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"PK" = (
+/obj/structure/railing{
+ dir = 9;
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 9
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"PS" = (
+/obj/effect/spawner/structure/window/reinforced{
+ color = "#beada5"
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/effect/decal/cleanable/blood/splatter/over_window,
+/turf/open/floor/plating,
+/area/ruin/huntinglodge)
+"PU" = (
+/turf/open/floor/iron/stairs/medium{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"Qp" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/table/wood/fancy/orange,
+/obj/item/plate/small{
+ pixel_x = -5;
+ pixel_y = 0
+ },
+/obj/item/plate/small{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/cup/glass{
+ pixel_x = -7;
+ pixel_y = 15
+ },
+/obj/item/food/meat/steak/plain/human{
+ pixel_x = -6;
+ pixel_y = 0
+ },
+/obj/item/food/meat/steak/plain/human{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/cup/glass{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/lone/star,
+/area/ruin/huntinglodge)
+"Qy" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"QB" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"QG" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"QS" = (
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Rg" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Rl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"RB" = (
+/obj/effect/decal/cleanable/blood/gibs/body,
+/obj/effect/decal/cleanable/blood/trails,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"RH" = (
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#beada5"
+ },
+/obj/structure/railing{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Sf" = (
+/obj/structure/rack,
+/obj/item/gps/mining,
+/obj/item/gps/mining{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"Sg" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Sl" = (
+/obj/structure/chair/sofa/bench/right{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"So" = (
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Sp" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/gift{
+ pixel_x = -10;
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"SK" = (
+/obj/structure/table/wood,
+/obj/item/toy/talking{
+ pixel_x = 1;
+ pixel_y = 10
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"SL" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/chem_pile,
+/obj/effect/decal/cleanable/blood/footprints,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"SN" = (
+/mob/living/basic/raptor/green,
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"SO" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"SS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/light/small/dim/directional/east,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"SW" = (
+/obj/item/flashlight/lantern/on,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Th" = (
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Tp" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Tv" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"TC" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/gift{
+ pixel_x = -10;
+ pixel_y = -6
+ },
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"TI" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/gun/ballistic/shotgun/doublebarrel,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"TN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"TO" = (
+/turf/open/floor/iron/stairs/right{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"TV" = (
+/mob/living/basic/migo/hatsune,
+/turf/open/floor/light/colour_cycle,
+/area/ruin/huntinglodge)
+"Uv" = (
+/obj/effect/decal/cleanable/blood/gibs/down,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Ux" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table,
+/obj/item/knife/butcher,
+/obj/item/chainsaw{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/knife,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"UB" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/rainbow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/mob_spawn/corpse/human/miner/explorer,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"UJ" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"US" = (
+/obj/structure/railing{
+ color = "#beada5"
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Vb" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ pixel_x = -5;
+ pixel_y = -11
+ },
+/obj/effect/decal/cleanable/glass,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Vk" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"VC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/obj/item/gift,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"VE" = (
+/turf/open/floor/iron/stairs/left{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"VO" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"VW" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/obj/item/storage/cans/sixbeer{
+ pixel_x = -4;
+ pixel_y = -15
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Wn" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood/innards,
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/viscerator,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"Ws" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"WC" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"WX" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent{
+ pixel_x = 7;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/item/gift,
+/turf/open/floor/carpet/green,
+/area/ruin/huntinglodge)
+"Xa" = (
+/obj/effect/decal/cleanable/blood/gibs/up,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"Xd" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Xf" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"Xk" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Xl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_x = 0;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"Xs" = (
+/obj/structure/railing{
+ dir = 4;
+ color = "#beada5"
+ },
+/obj/structure/railing{
+ dir = 8;
+ color = "#beada5"
+ },
+/turf/open/floor/iron/stairs{
+ color = "#5d341f"
+ },
+/area/ruin/huntinglodge)
+"Xu" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"XF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/obj/machinery/griddle,
+/turf/open/floor/iron/checker,
+/area/ruin/huntinglodge)
+"XL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/chem_pile,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"XN" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/blood,
+/obj/machinery/light/warm/dim/directional/south,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"XY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/wood/large,
+/area/ruin/huntinglodge)
+"Yr" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Yu" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Yy" = (
+/obj/item/ammo_casing/c45{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"YD" = (
+/obj/effect/spawner/structure/window/reinforced{
+ color = "#beada5"
+ },
+/obj/structure/curtain/cloth/fancy/mechanical/start_closed,
+/turf/open/floor/plating,
+/area/ruin/huntinglodge)
+"YQ" = (
+/turf/open/misc/hay/icemoon,
+/area/ruin/huntinglodge)
+"YR" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"YZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/mob/living/basic/viscerator,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/huntinglodge)
+"Zg" = (
+/obj/machinery/door/airlock/wood{
+ color = "#beada5"
+ },
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/structure/fans/tiny,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+"Zi" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/ammo_casing/shotgun/buckshot/spent,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/dim/directional/west,
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/tile,
+/area/ruin/huntinglodge)
+"Zk" = (
+/obj/effect/mob_spawn/corpse/human/skeleton/cultist,
+/turf/open/misc/asteroid/snow/icemoon/do_not_chasm,
+/area/icemoon/surface/outdoors/nospawn)
+"Zs" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 9
+ },
+/turf/open/floor/stone,
+/area/icemoon/surface/outdoors/nospawn)
+"ZA" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/obj/machinery/light/small/dim/directional/east,
+/turf/open/floor/stone,
+/area/ruin/huntinglodge)
+"ZB" = (
+/obj/structure/table/wood/fancy,
+/obj/item/storage/fancy/candle_box{
+ pixel_x = -1;
+ pixel_y = 5
+ },
+/obj/effect/spawner/random/entertainment/lighter{
+ pixel_x = 6;
+ pixel_y = -1
+ },
+/turf/open/floor/carpet,
+/area/ruin/huntinglodge)
+"ZI" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/item/bodypart/head/ethereal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/wood,
+/area/ruin/huntinglodge)
+"ZN" = (
+/turf/open/floor/iron/stairs/left{
+ color = "#5d341f";
+ dir = 8
+ },
+/area/ruin/huntinglodge)
+"ZT" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy{
+ pixel_x = 5;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = -10;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"ZV" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = 2;
+ pixel_y = 7
+ },
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = -5;
+ pixel_y = 0
+ },
+/obj/effect/spawner/random/entertainment/plushie{
+ pixel_x = 8;
+ pixel_y = 1
+ },
+/obj/item/stack/wrapping_paper,
+/turf/open/floor/carpet/red,
+/area/ruin/huntinglodge)
+"ZW" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/herringbone,
+/area/ruin/huntinglodge)
+
+(1,1,1) = {"
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(2,1,1) = {"
+EJ
+EJ
+CA
+CA
+fK
+EJ
+EJ
+EJ
+fK
+DF
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+Zs
+HK
+wO
+HK
+wO
+wO
+gZ
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(3,1,1) = {"
+EJ
+CA
+CA
+fK
+fK
+fK
+fK
+fK
+fK
+fK
+fK
+EJ
+EJ
+EJ
+Zs
+wO
+oW
+fK
+ON
+fK
+Th
+fb
+EY
+bV
+So
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(4,1,1) = {"
+EJ
+CA
+CA
+fK
+ta
+fK
+Jb
+hV
+Gp
+Jb
+fK
+fK
+Zs
+HK
+be
+ta
+fK
+Jb
+Gp
+Jb
+fK
+fK
+Mb
+As
+ry
+gZ
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(5,1,1) = {"
+EJ
+CA
+fK
+DF
+fK
+Jb
+Jb
+Gj
+AX
+Jb
+Jb
+fK
+NW
+fK
+fK
+fK
+Jb
+Jb
+eE
+Jb
+Gp
+Gp
+Jb
+fK
+hE
+ry
+fe
+gZ
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(6,1,1) = {"
+EJ
+EJ
+fK
+fK
+mA
+Jb
+mX
+dc
+KB
+oF
+Jb
+fP
+ZA
+fK
+DF
+fK
+Jb
+Jk
+dQ
+Iz
+og
+Mc
+Jb
+Jb
+fK
+fK
+fK
+NW
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(7,1,1) = {"
+EJ
+EJ
+EJ
+fK
+fK
+Jb
+oT
+Vb
+Bm
+OY
+Jb
+dC
+Jb
+fK
+fK
+Jb
+Jb
+Jb
+Jb
+Jb
+TC
+lc
+Dp
+Jb
+Jb
+Jb
+fK
+NW
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(8,1,1) = {"
+EJ
+EJ
+EJ
+fK
+fK
+Jb
+Jb
+Hm
+Jb
+Jb
+Jb
+mo
+Jb
+Jb
+fK
+Jb
+TN
+xM
+xQ
+Jb
+DX
+Sp
+Ig
+mq
+kJ
+Gp
+aU
+NW
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(9,1,1) = {"
+EJ
+EJ
+fK
+fK
+Jb
+Jb
+Oq
+BI
+Gn
+Jb
+Jb
+Vk
+tk
+Jb
+Jb
+Jb
+lU
+sX
+Ds
+Jb
+gB
+NN
+xv
+qZ
+Hi
+zr
+fK
+NW
+DF
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(10,1,1) = {"
+EJ
+EJ
+ta
+Jb
+Jb
+XY
+eX
+Ip
+xB
+vH
+Jb
+Yr
+Jb
+Jb
+Jb
+iZ
+pl
+IZ
+Iw
+Jb
+QS
+MQ
+lO
+Pa
+YR
+Gp
+fK
+NW
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(11,1,1) = {"
+EJ
+EJ
+mA
+Jb
+wI
+Ei
+yt
+wC
+cy
+SL
+Yr
+Hq
+zN
+Hq
+VE
+DO
+rS
+yB
+tY
+Kc
+kD
+fO
+EK
+Jb
+Jb
+Jb
+fK
+ry
+gZ
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(12,1,1) = {"
+EJ
+EJ
+fK
+Jb
+wV
+yR
+BE
+qL
+Qp
+Oa
+Jb
+Iq
+Jb
+FX
+PU
+hZ
+eQ
+nI
+Lt
+Uv
+Sg
+Hr
+tT
+Jb
+fK
+fK
+fK
+fK
+NW
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(13,1,1) = {"
+EJ
+EJ
+fK
+Jb
+Cy
+Nw
+vr
+hf
+HC
+Tp
+QB
+xh
+zN
+nt
+TO
+VC
+If
+jN
+NL
+Jb
+xH
+LQ
+kH
+Jb
+CA
+fK
+fK
+Zs
+fi
+sU
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(14,1,1) = {"
+EJ
+fK
+DF
+Jb
+Jb
+dr
+gM
+if
+Ar
+yk
+Jb
+Jb
+Jb
+Jb
+Jb
+qp
+hl
+WX
+Pi
+Jb
+YD
+Yr
+YD
+Jb
+CA
+CA
+Zs
+be
+Fz
+Xu
+jl
+EJ
+EJ
+EJ
+EJ
+"}
+(15,1,1) = {"
+EJ
+EJ
+fK
+CA
+Jb
+Jb
+vW
+AG
+fB
+Jb
+Jb
+Nu
+TV
+gY
+Jb
+Jb
+Jj
+pF
+Jb
+Jb
+Xl
+wP
+kf
+Jb
+Jb
+CA
+NW
+fK
+DF
+jr
+du
+EJ
+EJ
+EJ
+EJ
+"}
+(16,1,1) = {"
+EJ
+EJ
+fK
+CA
+CA
+Jb
+Jb
+Zg
+Jb
+Jb
+Jb
+Gy
+Jb
+Jb
+Jb
+Jb
+ZN
+hm
+Jb
+kf
+ca
+xz
+gA
+hP
+Jb
+CA
+ry
+gZ
+zM
+qH
+be
+EJ
+EJ
+EJ
+EJ
+"}
+(17,1,1) = {"
+EJ
+fK
+fK
+fK
+ta
+Mf
+aE
+Dq
+NP
+Jb
+et
+yW
+Xs
+KU
+Jb
+Bl
+kR
+YZ
+Jb
+kf
+SS
+ej
+kf
+Jb
+Jb
+CA
+fK
+Yy
+gS
+be
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(18,1,1) = {"
+EJ
+fK
+fK
+fK
+fK
+fK
+fK
+Tv
+fK
+PS
+Oz
+US
+xE
+TI
+Gp
+Hw
+Qy
+XN
+Jb
+Jb
+Jb
+uU
+Jb
+Jb
+fK
+fK
+fK
+Ho
+NW
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(19,1,1) = {"
+EJ
+DF
+Jb
+Jb
+Jb
+fK
+fK
+yN
+fK
+Gp
+ws
+RH
+CL
+kP
+Yr
+Pd
+Xd
+Yu
+Gp
+fK
+dP
+ac
+VO
+fK
+fK
+fK
+fK
+Zs
+be
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(20,1,1) = {"
+EJ
+Jb
+Jb
+YQ
+Jb
+Jb
+fK
+NW
+fK
+Gp
+CC
+xG
+vO
+ZW
+Gp
+Xk
+Rg
+kl
+hV
+GN
+Zk
+EY
+rI
+Aw
+GU
+fe
+wO
+be
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(21,1,1) = {"
+EJ
+Jb
+nK
+SN
+YQ
+Jb
+fK
+vK
+mA
+Jb
+Jb
+eD
+bR
+NE
+Jb
+vv
+jF
+aA
+Gp
+DE
+vc
+fK
+ta
+fK
+OZ
+fK
+fK
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(22,1,1) = {"
+EJ
+Jb
+Sf
+YQ
+YQ
+YQ
+kn
+Xf
+fK
+fK
+Jb
+Gp
+Jb
+Jb
+Jb
+Jb
+ZN
+hm
+Jb
+Jb
+fK
+DF
+fK
+fK
+Gl
+fK
+fK
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(23,1,1) = {"
+EJ
+Jb
+uZ
+YQ
+Jb
+OH
+Cv
+cO
+fK
+ta
+lv
+fK
+fK
+Jb
+Jb
+Zi
+kk
+JQ
+pN
+Jb
+Jb
+fK
+fK
+PK
+Kl
+oY
+fK
+fK
+DF
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(24,1,1) = {"
+EJ
+Jb
+pE
+cS
+UJ
+YQ
+AF
+ry
+gZ
+fK
+fK
+DF
+fK
+Jb
+GA
+qO
+nC
+vg
+jp
+IH
+Jb
+Jb
+Gp
+Gp
+bs
+Gp
+Jb
+fK
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(25,1,1) = {"
+EJ
+Jb
+nK
+SN
+YQ
+Jb
+QG
+fK
+Hv
+fe
+gZ
+fK
+Jb
+Jb
+XL
+MJ
+lJ
+SK
+Rl
+yG
+Jb
+Fw
+UB
+Ea
+Ej
+mr
+Jb
+Jb
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(26,1,1) = {"
+EJ
+Jb
+Jb
+YQ
+Jb
+Jb
+QG
+fK
+Xf
+DF
+NW
+fK
+Gp
+ZB
+kI
+Ok
+ZV
+lL
+Nl
+lE
+CS
+eB
+SO
+GD
+Wn
+Ia
+mm
+Jb
+CE
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(27,1,1) = {"
+EJ
+CA
+Jb
+Jb
+Jb
+fK
+QG
+SW
+ry
+wO
+VW
+fK
+Gp
+tq
+Mw
+Dc
+Lv
+ye
+JZ
+pr
+hK
+CD
+mb
+Nj
+iq
+ic
+ZI
+Jb
+fK
+DF
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(28,1,1) = {"
+CA
+CA
+fK
+fK
+fK
+fK
+Zk
+qU
+Sl
+GF
+xy
+fK
+Gp
+wd
+Ah
+Jo
+Ao
+HL
+qW
+Of
+Jb
+hb
+EG
+EB
+DH
+EG
+Jb
+Jb
+fK
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+"}
+(29,1,1) = {"
+CA
+CA
+CA
+fK
+fK
+DF
+fK
+fK
+DF
+fK
+fK
+DF
+Jb
+Jb
+aw
+cC
+gu
+ZT
+mG
+eh
+Jb
+Jb
+Jb
+Yr
+Jb
+Jb
+Jb
+fK
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(30,1,1) = {"
+EJ
+CA
+CA
+fK
+fK
+fK
+fK
+fK
+fK
+DF
+fK
+fK
+CA
+Jb
+lC
+WC
+td
+OA
+pX
+cQ
+Jb
+AV
+Xa
+jQ
+ww
+Jb
+fK
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(31,1,1) = {"
+EJ
+CA
+CA
+CA
+CA
+CA
+fK
+fK
+fK
+fK
+DF
+CA
+CA
+Jb
+Jb
+jK
+FN
+DM
+pJ
+Jb
+Jb
+XF
+RB
+yO
+bX
+Jb
+CE
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(32,1,1) = {"
+EJ
+EJ
+CA
+CA
+CA
+CA
+CA
+CA
+CA
+fK
+fK
+CA
+CA
+CA
+Jb
+Es
+nX
+Ot
+Ot
+Jb
+pU
+uc
+jQ
+Hx
+cJ
+Jb
+fK
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(33,1,1) = {"
+EJ
+EJ
+EJ
+EJ
+CA
+CA
+CA
+CA
+CA
+CA
+CA
+CA
+CA
+CA
+Jb
+Gp
+Gp
+Gp
+Gp
+Jb
+Jb
+Ux
+jQ
+Ws
+Jb
+Jb
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(34,1,1) = {"
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+CA
+CA
+CA
+CA
+fK
+lv
+EJ
+EJ
+EJ
+EJ
+lv
+Jb
+Jb
+dC
+Jb
+Jb
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
+(35,1,1) = {"
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+EJ
+"}
diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
index 4bdf2af01f19d..a52a428a8258a 100644
--- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
+++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
@@ -573,13 +573,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"cC" = (
/obj/structure/alien/weeds/creature,
-/mob/living/basic/creature{
- desc = "Awh its so sm-OH GOD WHAT THE FUCK.";
- health = 25;
- maxHealth = 25;
- name = "hatchling";
- current_size = 0.85
- },
+/mob/living/basic/creature/hatchling,
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost)
"cD" = (
@@ -765,9 +759,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"dl" = (
/obj/structure/alien/weeds/creature,
-/mob/living/basic/creature{
- name = "Miss Tiggles"
- },
+/mob/living/basic/creature/tiggles,
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost)
"dm" = (
diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm
new file mode 100644
index 0000000000000..994589f0e51e0
--- /dev/null
+++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm
@@ -0,0 +1,283 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/marker_beacon/burgundy,
+/turf/template_noop,
+/area/space/nearstation)
+"d" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"j" = (
+/obj/structure/lattice/catwalk,
+/turf/template_noop,
+/area/space/nearstation)
+"m" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"n" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 4
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"o" = (
+/obj/structure/fluff/sat_dish{
+ pixel_y = -15;
+ pixel_x = -11
+ },
+/obj/structure/fluff/sat_dish{
+ pixel_y = -9;
+ pixel_x = 12
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"p" = (
+/obj/structure/fluff/tram_rail/end,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"s" = (
+/obj/structure/fluff/sat_dish{
+ pixel_x = 15;
+ dir = 8;
+ pixel_y = -7
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"t" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"x" = (
+/obj/structure/fluff/tram_rail/anchor,
+/turf/template_noop,
+/area/space/nearstation)
+"z" = (
+/obj/structure/fluff/commsbuoy_broadcaster,
+/turf/open/floor/iron/recharge_floor/Airless,
+/area/space/nearstation)
+"C" = (
+/obj/structure/fluff/sat_dish{
+ pixel_y = 11;
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"D" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"E" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"F" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"G" = (
+/turf/template_noop,
+/area/space/nearstation)
+"I" = (
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"K" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"L" = (
+/turf/closed/wall/mineral/titanium,
+/area/space/nearstation)
+"M" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/space/unpowered)
+"N" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/space/unpowered)
+"O" = (
+/obj/structure/fluff/commsbuoy_receiver,
+/turf/open/floor/iron/recharge_floor/Airless,
+/area/space/nearstation)
+"P" = (
+/obj/structure/fluff/tram_rail/end,
+/turf/template_noop,
+/area/space/nearstation)
+"S" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"U" = (
+/obj/structure/fluff/commsbuoy_processor,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"X" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"Y" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/fluff/sat_dish{
+ pixel_y = 9;
+ dir = 1;
+ pixel_x = 8
+ },
+/obj/structure/fluff/sat_dish{
+ pixel_y = 15;
+ dir = 1;
+ pixel_x = -11
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"Z" = (
+/turf/open/floor/iron/solarpanel/airless,
+/area/space/nearstation)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+n
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+n
+o
+N
+C
+K
+a
+a
+a
+"}
+(3,1,1) = {"
+m
+K
+s
+N
+X
+O
+Z
+Z
+a
+"}
+(4,1,1) = {"
+I
+S
+M
+N
+c
+L
+j
+Z
+Z
+"}
+(5,1,1) = {"
+I
+F
+N
+N
+G
+p
+a
+a
+a
+"}
+(6,1,1) = {"
+x
+U
+j
+N
+M
+D
+a
+a
+a
+"}
+(7,1,1) = {"
+x
+t
+X
+N
+N
+Y
+Z
+Z
+a
+"}
+(8,1,1) = {"
+I
+d
+a
+N
+j
+X
+Z
+Z
+Z
+"}
+(9,1,1) = {"
+P
+P
+a
+z
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+E
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+P
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm
new file mode 100644
index 0000000000000..4fa47033077dc
--- /dev/null
+++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm
@@ -0,0 +1,1209 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aJ" = (
+/obj/machinery/door/airlock/titanium{
+ name = "Comms Buoy Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/cutaiwire,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"aL" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"bj" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/space/nt_commsbuoy)
+"dO" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/nt_commsbuoy)
+"dX" = (
+/obj/machinery/computer/terminal/nt_commsbuoy,
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"et" = (
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"ew" = (
+/obj/structure/fluff{
+ name = "telecommunication hub";
+ desc = "A mighty piece of hardware used to send/receive massive amounts of data.";
+ icon = 'icons/obj/machines/telecomms.dmi';
+ icon_state = "hub"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"eX" = (
+/obj/structure/lattice/catwalk,
+/turf/template_noop,
+/area/space/nearstation)
+"fx" = (
+/obj/structure/fluff{
+ icon = 'icons/obj/machines/wallmounts.dmi';
+ icon_state = "pod_off";
+ name = "radio dish controller";
+ desc = "A console for adjusting the satellite's radio dishes manually. The screen won't even power on without proper authorization, which you know you're never getting.";
+ pixel_y = 30
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"fJ" = (
+/turf/template_noop,
+/area/template_noop)
+"gw" = (
+/obj/structure/sign/nanotrasen{
+ pixel_x = -32
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"hb" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/end,
+/turf/template_noop,
+/area/space/nearstation)
+"hk" = (
+/obj/structure/table,
+/obj/item/paper/fluff/ruins/nt_commsbuoy/inspection{
+ pixel_y = 3;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/cup/glass/mug/nanotrasen{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"hn" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"hH" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/space{
+ pixel_y = 5;
+ pixel_x = -10
+ },
+/obj/item/clothing/suit/space{
+ pixel_y = 1;
+ pixel_x = 5
+ },
+/obj/item/clothing/head/helmet/space{
+ pixel_x = -7;
+ pixel_y = -5
+ },
+/obj/item/clothing/head/helmet/space{
+ pixel_y = -10;
+ pixel_x = 8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"in" = (
+/obj/structure/fluff{
+ icon = 'icons/obj/machines/wallmounts.dmi';
+ icon_state = "pod_off";
+ name = "radio dish controller";
+ desc = "A console for adjusting the satellite's radio dishes manually. The screen won't even power on without proper authorization, which you know you're never getting.";
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/blood/gibs/old,
+/obj/effect/mob_spawn/corpse/human/engineer,
+/obj/item/keycard/nt_commsbuoy{
+ pixel_y = 9;
+ pixel_x = 3
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"io" = (
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"it" = (
+/obj/machinery/computer/terminal/nt_commsbuoy/blackbox,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"iv" = (
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/transmitter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/crystal,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/analyzer,
+/obj/item/stock_parts/subspace/amplifier,
+/obj/structure/closet/crate/centcom,
+/obj/item/storage/box/lights/bulbs,
+/obj/effect/spawner/random/exotic/technology,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"jy" = (
+/obj/structure/sign/nanotrasen{
+ pixel_y = -32
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"jz" = (
+/obj/structure/sign/nanotrasen{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"kZ" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"lu" = (
+/obj/machinery/porta_turret/syndicate/energy,
+/turf/open/floor/mineral/titanium/yellow,
+/area/ruin/space/nt_commsbuoy)
+"lB" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"lT" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"lY" = (
+/obj/structure/table,
+/obj/structure/noticeboard/directional/north,
+/obj/item/paper/fluff/ruins/nt_commsbuoy/table_of_contents,
+/obj/machinery/light/small/directional/east,
+/obj/item/gps/spaceruin{
+ pixel_y = 4;
+ pixel_x = 5
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"mu" = (
+/obj/structure/fluff/fake_camera{
+ dir = 9
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"nn" = (
+/obj/structure/frame/computer{
+ dir = 1
+ },
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"oA" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"pC" = (
+/obj/machinery/door/puzzle/keycard/nt_commsbuoy,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"pR" = (
+/turf/open/floor/mineral/titanium/white/airless,
+/area/space/nearstation)
+"qi" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"ri" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"rl" = (
+/obj/structure/fluff{
+ icon = 'icons/mob/simple/hivebot.dmi';
+ icon_state = "def_radar-off";
+ name = "radio dish component";
+ desc = "Remarkable Nanotrasen technology. This does... something to make the radio dish work.";
+ pixel_y = 16
+ },
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"tq" = (
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 9
+ },
+/obj/structure/rack,
+/obj/effect/spawner/random/engineering/tool_advanced,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"tx" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/space/nearstation)
+"tO" = (
+/obj/structure/fluff{
+ icon = 'icons/obj/machines/wallmounts.dmi';
+ icon_state = "airlock_control_standby";
+ name = "radio dish component";
+ desc = "Remarkable Nanotrasen technology. This does... something to make the radio dish work.";
+ pixel_y = 32;
+ pixel_x = 6
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"uG" = (
+/obj/structure/fluff/commsbuoy_receiver,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"uH" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail/end{
+ dir = 4
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"vr" = (
+/obj/machinery/door/airlock/external/ruin{
+ name = "Comms Buoy External Airlock"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"wS" = (
+/obj/structure/lattice,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"xI" = (
+/obj/structure/cable,
+/obj/machinery/power/smes/full,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"yk" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 4
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"zt" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/mapping_helpers/airlock/cutaiwire,
+/obj/machinery/door/airlock/titanium{
+ name = "Comms Buoy Airlock"
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"zA" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail/anchor{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"zO" = (
+/obj/structure/lattice,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"Ad" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"AA" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"AD" = (
+/obj/machinery/computer/terminal/nt_commsbuoy/relay{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"AE" = (
+/obj/structure/sign/warning/vacuum/external/directional/east,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"Br" = (
+/obj/structure/cable,
+/turf/open/floor/mineral/titanium/yellow,
+/area/ruin/space/nt_commsbuoy)
+"CN" = (
+/obj/effect/mob_spawn/corpse/human/nanotrasensoldier,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"DW" = (
+/obj/structure/fluff/sat_dish{
+ dir = 8;
+ pixel_y = -5;
+ pixel_x = 17
+ },
+/obj/structure/fluff/sat_dish{
+ pixel_y = -10;
+ pixel_x = -5
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"EA" = (
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"EQ" = (
+/obj/structure/fluff/sat_dish{
+ pixel_y = -18;
+ pixel_x = 6
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"ES" = (
+/turf/open/floor/mineral/titanium/white,
+/area/ruin/space/nt_commsbuoy)
+"FC" = (
+/turf/closed/wall/mineral/iron,
+/area/ruin/space/nt_commsbuoy)
+"FH" = (
+/obj/structure/sign/nanotrasen{
+ pixel_x = -32
+ },
+/obj/structure/rack,
+/obj/item/clothing/suit/space/syndicate/orange{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/helmet/space/syndicate/orange{
+ pixel_x = 9;
+ pixel_y = -5
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"FK" = (
+/obj/structure/fluff/tram_rail/end,
+/turf/template_noop,
+/area/space/nearstation)
+"Gd" = (
+/obj/structure/fluff/commsbuoy_processor,
+/obj/structure/sign/nanotrasen{
+ pixel_x = 32
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"Gq" = (
+/obj/structure/sign/warning/radiation/directional/south,
+/turf/open/floor/mineral/titanium/yellow,
+/area/ruin/space/nt_commsbuoy)
+"Gw" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/mapping_helpers/apc/cell_5k,
+/obj/effect/mapping_helpers/apc/full_charge,
+/obj/effect/mapping_helpers/apc/unlocked,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"HC" = (
+/obj/structure/fluff/commsbuoy_broadcaster,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"II" = (
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"Jp" = (
+/obj/structure/cable,
+/obj/machinery/power/rtg/advanced,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"Jv" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"Kr" = (
+/obj/machinery/power/rtg/advanced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"Lc" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"LI" = (
+/obj/machinery/telecomms/relay/preset/telecomms,
+/obj/structure/fluff/fake_camera{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"Mc" = (
+/obj/effect/decal/cleanable/greenglow/radioactive,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"Mp" = (
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"Qb" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/cutaiwire,
+/obj/machinery/door/airlock/titanium{
+ name = "Comms Buoy Airlock"
+ },
+/turf/open/floor/mineral/titanium/yellow,
+/area/ruin/space/nt_commsbuoy)
+"Qd" = (
+/obj/effect/decal/cleanable/blood/trails{
+ dir = 6
+ },
+/obj/item/paper/fluff/ruins/nt_commsbuoy/torn_page,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"Re" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"RY" = (
+/obj/structure/fluff/tram_rail,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"TS" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/end,
+/turf/template_noop,
+/area/space/nearstation)
+"UR" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"Vg" = (
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"VI" = (
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/turf/template_noop,
+/area/template_noop)
+"Ws" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"WI" = (
+/obj/structure/fluff{
+ name = "comms buoy blackbox recorder";
+ desc = "A recording device that logs recent events and communications in the event of a catastrophic failiure or accident. This one is haphazardly adjusted to print the readout onto the accompanying console.";
+ icon = 'icons/obj/machines/telecomms.dmi';
+ icon_state = "blackbox"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/ruin/space/nt_commsbuoy)
+"Xi" = (
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"Yp" = (
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"Yr" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/space/nt_commsbuoy)
+"YN" = (
+/obj/structure/cable,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+"YY" = (
+/turf/open/floor/plating,
+/area/ruin/space/nt_commsbuoy)
+
+(1,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(2,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+uG
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(3,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+hn
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(4,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+fJ
+hn
+fJ
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(5,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+Yr
+pR
+Yr
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(6,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(7,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+FC
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(8,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+bj
+bj
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(9,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+fx
+Mp
+hk
+bj
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(10,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+dX
+et
+AD
+bj
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(11,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+bj
+aJ
+bj
+bj
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(12,1,1) = {"
+fJ
+yk
+fJ
+fJ
+fJ
+fJ
+bj
+tq
+gw
+et
+EA
+bj
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(13,1,1) = {"
+fJ
+UR
+fJ
+fJ
+fJ
+DW
+bj
+it
+et
+et
+bj
+bj
+bj
+Yr
+fJ
+fJ
+fJ
+fJ
+"}
+(14,1,1) = {"
+fJ
+aL
+fJ
+yk
+EQ
+Yr
+bj
+WI
+et
+Gq
+bj
+YY
+iv
+bj
+fJ
+fJ
+yk
+fJ
+"}
+(15,1,1) = {"
+fJ
+wS
+hn
+zO
+hn
+bj
+bj
+ew
+et
+Br
+Qb
+Xi
+xI
+bj
+fJ
+fJ
+lT
+fJ
+"}
+(16,1,1) = {"
+fJ
+ri
+yk
+UR
+fJ
+eX
+bj
+LI
+et
+Br
+bj
+Mc
+YN
+bj
+fJ
+oA
+lT
+fJ
+"}
+(17,1,1) = {"
+fJ
+FK
+zO
+wS
+fJ
+hn
+bj
+Gd
+io
+Gw
+bj
+Kr
+Jp
+bj
+fJ
+Vg
+Ad
+fJ
+"}
+(18,1,1) = {"
+fJ
+fJ
+lT
+hb
+fJ
+fJ
+Yr
+bj
+bj
+pC
+bj
+bj
+bj
+Yr
+fJ
+Vg
+Jv
+fJ
+"}
+(19,1,1) = {"
+fJ
+fJ
+Re
+fJ
+fJ
+fJ
+fJ
+bj
+et
+et
+et
+EA
+bj
+fJ
+fJ
+Vg
+aL
+fJ
+"}
+(20,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+jz
+ES
+ES
+jy
+bj
+fJ
+fJ
+uH
+TS
+fJ
+"}
+(21,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+mu
+ES
+ES
+et
+bj
+fJ
+fJ
+qi
+lT
+fJ
+"}
+(22,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+et
+ES
+ES
+et
+bj
+Yr
+fJ
+qi
+UR
+fJ
+"}
+(23,1,1) = {"
+fJ
+fJ
+Yr
+Yr
+fJ
+fJ
+bj
+lu
+et
+ES
+ES
+et
+lu
+bj
+fJ
+HC
+aL
+fJ
+"}
+(24,1,1) = {"
+fJ
+fJ
+fJ
+Yr
+Yr
+fJ
+bj
+tO
+et
+ES
+ES
+et
+Lc
+bj
+eX
+tx
+zA
+fJ
+"}
+(25,1,1) = {"
+fJ
+rl
+hn
+pR
+bj
+FC
+bj
+in
+et
+ES
+ES
+et
+nn
+bj
+Ws
+tx
+RY
+fJ
+"}
+(26,1,1) = {"
+fJ
+fJ
+fJ
+Yr
+Yr
+fJ
+bj
+dX
+CN
+ES
+dO
+Yp
+bj
+bj
+fJ
+tx
+zA
+fJ
+"}
+(27,1,1) = {"
+fJ
+fJ
+Yr
+Yr
+fJ
+fJ
+bj
+lY
+kZ
+AE
+lB
+et
+bj
+fJ
+fJ
+qi
+aL
+fJ
+"}
+(28,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+bj
+bj
+zt
+bj
+Yr
+fJ
+fJ
+AA
+TS
+fJ
+"}
+(29,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+FH
+CN
+Qd
+bj
+fJ
+fJ
+fJ
+Vg
+Re
+fJ
+"}
+(30,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+bj
+II
+YY
+hH
+bj
+fJ
+fJ
+fJ
+FK
+fJ
+fJ
+"}
+(31,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+Yr
+bj
+vr
+bj
+Yr
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
+(32,1,1) = {"
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+VI
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+fJ
+"}
diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm
new file mode 100644
index 0000000000000..18f2117135c4d
--- /dev/null
+++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm
@@ -0,0 +1,299 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 4
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"d" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"f" = (
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"g" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ruin/space/unpowered)
+"h" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"i" = (
+/obj/structure/lattice,
+/obj/structure/sign/poster/contraband/self_ai_liberation/directional/north,
+/turf/template_noop,
+/area/space/nearstation)
+"j" = (
+/obj/structure/sign/poster/contraband/syndicate_recruitment/directional/west,
+/obj/structure/fluff/commsbuoy_broadcaster,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"m" = (
+/obj/structure/billboard/nanotrasen/defaced,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"o" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"r" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"s" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/marker_beacon/burgundy,
+/turf/template_noop,
+/area/space/nearstation)
+"u" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/sign/poster/contraband/free_key/directional/south,
+/turf/template_noop,
+/area/space/nearstation)
+"v" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"w" = (
+/obj/structure/fluff/tram_rail/anchor{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/end{
+ dir = 8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"x" = (
+/obj/structure/fluff/tram_rail/end,
+/turf/template_noop,
+/area/space/nearstation)
+"B" = (
+/obj/structure/fluff/commsbuoy_processor,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"C" = (
+/obj/structure/fluff/sat_dish{
+ pixel_y = -15;
+ pixel_x = -11
+ },
+/obj/structure/fluff/sat_dish{
+ pixel_y = -9;
+ pixel_x = 12
+ },
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"D" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"E" = (
+/turf/open/floor/iron/solarpanel/airless,
+/area/space/nearstation)
+"F" = (
+/obj/structure/lattice,
+/obj/structure/fluff/tram_rail{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"G" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"J" = (
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"K" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/space/unpowered)
+"O" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/space/nearstation)
+"P" = (
+/obj/structure/fluff/commsbuoy_receiver,
+/turf/open/floor/plating/reinforced/airless,
+/area/space/nearstation)
+"Q" = (
+/obj/structure/fluff/tram_rail,
+/turf/template_noop,
+/area/space/nearstation)
+"S" = (
+/obj/structure/fluff/sat_dish{
+ pixel_y = 11;
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"T" = (
+/obj/structure/fluff/sat_dish{
+ pixel_x = 17;
+ dir = 8;
+ pixel_y = -8
+ },
+/turf/template_noop,
+/area/space/nearstation)
+"W" = (
+/obj/structure/lattice/catwalk,
+/turf/template_noop,
+/area/space/nearstation)
+"X" = (
+/obj/structure/fluff/tram_rail/end{
+ dir = 1
+ },
+/obj/structure/fluff/tram_rail/anchor,
+/turf/template_noop,
+/area/space/nearstation)
+"Y" = (
+/obj/structure/fluff/tram_rail/anchor,
+/turf/template_noop,
+/area/space/nearstation)
+"Z" = (
+/obj/structure/fluff/tram_rail/anchor{
+ dir = 1
+ },
+/turf/template_noop,
+/area/space/nearstation)
+
+(1,1,1) = {"
+a
+c
+a
+a
+a
+c
+a
+a
+"}
+(2,1,1) = {"
+a
+F
+C
+K
+S
+o
+a
+a
+"}
+(3,1,1) = {"
+h
+f
+T
+K
+i
+P
+E
+a
+"}
+(4,1,1) = {"
+Y
+w
+g
+K
+s
+O
+E
+E
+"}
+(5,1,1) = {"
+x
+d
+K
+K
+g
+G
+W
+E
+"}
+(6,1,1) = {"
+h
+B
+u
+K
+K
+m
+E
+E
+"}
+(7,1,1) = {"
+Y
+r
+v
+K
+K
+v
+W
+E
+"}
+(8,1,1) = {"
+Q
+D
+a
+K
+g
+J
+E
+E
+"}
+(9,1,1) = {"
+Q
+x
+a
+j
+c
+E
+E
+a
+"}
+(10,1,1) = {"
+x
+a
+a
+X
+Z
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+x
+f
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+G
+a
+a
+a
+"}
diff --git a/_maps/icebox.json b/_maps/icebox.json
index caa2c41d93675..ea24dd3360455 100644
--- a/_maps/icebox.json
+++ b/_maps/icebox.json
@@ -14,7 +14,6 @@
},
"traits": [
{
- "Up": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
@@ -23,8 +22,6 @@
"No Parallax": true
},
{
- "Down": true,
- "Up": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
@@ -33,7 +30,6 @@
"No Parallax": true
},
{
- "Down": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm
index 06be9312ae9f9..465d8fab85f23 100644
--- a/_maps/map_files/Birdshot/birdshot.dmm
+++ b/_maps/map_files/Birdshot/birdshot.dmm
@@ -1,10 +1,4 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aae" = (
-/obj/item/kirbyplants/random,
-/obj/machinery/camera/directional/north,
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"aal" = (
/obj/machinery/camera/directional/east{
c_tag = "Atmospherics Tank - N2"
@@ -71,6 +65,19 @@
/obj/machinery/power/tracker,
/turf/open/space/basic,
/area/station/solars/aft)
+"abv" = (
+/obj/structure/table,
+/obj/item/paper/crumpled{
+ pixel_x = -27;
+ pixel_y = 2
+ },
+/obj/item/storage/medkit/regular{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"abB" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
@@ -152,20 +159,6 @@
},
/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,
-/obj/machinery/airlock_controller/incinerator_atmos{
- pixel_x = -40;
- pixel_y = -8
- },
-/turf/open/floor/engine,
-/area/station/maintenance/disposal/incinerator)
"aem" = (
/obj/machinery/power/terminal,
/obj/structure/cable,
@@ -205,21 +198,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"aeH" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{
- dir = 4
- },
-/obj/machinery/light/small/directional/north,
-/obj/machinery/button/door/incinerator_vent_atmos_aux{
- pixel_x = 8;
- pixel_y = 24
- },
-/obj/machinery/button/door/incinerator_vent_atmos_main{
- pixel_x = 8;
- pixel_y = 36
- },
-/turf/open/floor/plating,
-/area/station/maintenance/disposal/incinerator)
"aeX" = (
/obj/structure/window/spawner/directional/east,
/obj/item/kirbyplants/random,
@@ -347,6 +325,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
"ahf" = (
@@ -395,6 +374,17 @@
/obj/effect/turf_decal/siding/yellow,
/turf/open/floor/wood/tile,
/area/station/command/bridge)
+"ahI" = (
+/obj/structure/table,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/item/folder/yellow{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"ahW" = (
/obj/structure/railing{
dir = 1
@@ -518,6 +508,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"amq" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/spawner/random/maintenance,
+/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/cargo/storage)
"amE" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -542,6 +539,15 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/freezer,
/area/station/service/kitchen/coldroom)
+"amX" = (
+/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)
"anb" = (
/obj/effect/turf_decal/siding/thinplating_new/terracotta,
/obj/effect/turf_decal/siding/red/corner{
@@ -552,6 +558,14 @@
},
/turf/open/floor/wood/tile,
/area/station/command/bridge)
+"and" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/supply,
+/obj/machinery/door/airlock/mining{
+ name = "Mining Office"
+ },
+/turf/open/floor/plating,
+/area/station/cargo/miningfoundry)
"ani" = (
/obj/effect/turf_decal/weather/dirt{
dir = 1
@@ -601,6 +615,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"api" = (
+/obj/machinery/skill_station,
+/turf/open/floor/wood/parquet,
+/area/station/service/library)
"apk" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/dark_red{
@@ -644,6 +662,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/science/lab)
+"apP" = (
+/obj/effect/spawner/random/trash,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"apZ" = (
/turf/open/floor/engine/helium,
/area/station/ai_monitored/turret_protected/ai)
@@ -816,11 +839,6 @@
/obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north,
/turf/open/floor/light/colour_cycle/dancefloor_b,
/area/station/maintenance/starboard/central)
-"atx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/closet_maintenance,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"atB" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -1103,10 +1121,6 @@
},
/turf/closed/wall,
/area/station/hallway/primary/central/aft)
-"axj" = (
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"axq" = (
/turf/open/floor/plating/airless,
/area/station/science/ordnance/bomb)
@@ -1140,6 +1154,15 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"axP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/brown/anticorner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"axX" = (
/obj/effect/turf_decal/siding/yellow,
/obj/effect/turf_decal/tile/yellow/diagonal_centre,
@@ -1194,17 +1217,6 @@
},
/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,
@@ -1266,13 +1278,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/wood/large,
/area/station/command/corporate_suite)
-"azK" = (
-/obj/effect/turf_decal/siding/red,
-/obj/item/kirbyplants/random,
-/obj/item/storage/toolbox/mechanical,
-/obj/machinery/light/cold/directional/east,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"azN" = (
/obj/structure/chair{
dir = 4
@@ -1389,6 +1394,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"aBt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"aBu" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -1430,6 +1443,18 @@
},
/turf/open/floor/carpet/blue,
/area/station/commons/dorms)
+"aBQ" = (
+/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/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"aBV" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/neutral{
@@ -1484,16 +1509,6 @@
},
/turf/open/floor/plating/airless,
/area/station/science/ordnance/bomb)
-"aDJ" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/directions/vault/directional/west{
- dir = 2
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"aEa" = (
/obj/effect/turf_decal/stripes/white/line,
/turf/open/floor/tram,
@@ -1677,23 +1692,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/central/lesser)
-"aGI" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/cell_charger{
- pixel_x = -1;
- pixel_y = 4
- },
-/obj/item/stock_parts/power_store/cell/high{
- pixel_x = -1;
- pixel_y = 4
- },
-/obj/item/assembly/timer{
- pixel_x = 14;
- pixel_y = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
"aGU" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron,
@@ -1722,17 +1720,6 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/grass,
/area/station/security/prison/garden)
-"aHS" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/neutral/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/line{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"aIb" = (
/obj/machinery/door/airlock{
name = "Maintenance"
@@ -1809,6 +1796,10 @@
"aJq" = (
/turf/closed/mineral/random/stationside,
/area/space/nearstation)
+"aJD" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"aJE" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/wood{
@@ -1902,9 +1893,6 @@
/obj/machinery/light/cold/directional/south,
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
-"aLm" = (
-/turf/closed/wall/rust,
-/area/station/cargo/drone_bay)
"aLr" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -1980,6 +1968,18 @@
/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible,
/turf/open/floor/plating,
/area/station/science/ordnance/testlab)
+"aMI" = (
+/obj/machinery/mineral/ore_redemption{
+ dir = 4;
+ input_dir = 8;
+ output_dir = 4
+ },
+/obj/machinery/door/window/right/directional/east{
+ name = "Ore Redemtion Window"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/textured_large,
+/area/station/cargo/office)
"aNd" = (
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
@@ -2005,6 +2005,14 @@
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/iron/dark/small,
/area/station/medical/storage)
+"aNE" = (
+/obj/machinery/computer/cargo{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/cargo/storage)
"aNJ" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/left/directional/north{
@@ -2700,18 +2708,6 @@
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
/area/station/engineering/supermatter)
-"bbK" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/item/kirbyplants/organic/applebush{
- pixel_y = 5
- },
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"bbT" = (
/obj/structure/chair/sofa/bench/left{
dir = 8
@@ -2725,6 +2721,15 @@
},
/turf/open/floor/iron,
/area/station/maintenance/port/aft)
+"bbV" = (
+/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/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"bcr" = (
/obj/effect/turf_decal/stripes/end,
/turf/open/floor/plating/airless,
@@ -2761,6 +2766,12 @@
dir = 4
},
/area/station/science/xenobiology)
+"bdi" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"bdN" = (
/obj/structure/falsewall,
/turf/open/floor/plating,
@@ -2794,14 +2805,6 @@
},
/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
@@ -2836,6 +2839,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/herringbone,
/area/station/service/abandoned_gambling_den/gaming)
+"bfS" = (
+/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)
"bfU" = (
/obj/machinery/atmospherics/components/binary/pump/on{
name = "Air to Distro staging"
@@ -2853,6 +2864,23 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron/white/small,
/area/station/science/server)
+"bgl" = (
+/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/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/light_switch/directional/north,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"bgn" = (
/obj/machinery/door/airlock/maintenance{
name = "Atmospherics Maintenance"
@@ -2962,6 +2990,11 @@
/obj/machinery/holopad,
/turf/open/floor/iron/white/small,
/area/station/science/lobby)
+"biV" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"bja" = (
/obj/structure/railing/corner/end/flip{
dir = 8
@@ -2987,6 +3020,19 @@
},
/turf/open/floor/iron/white/side,
/area/station/hallway/primary/central/aft)
+"bjf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/delivery/white,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/machinery/camera/autoname/directional/south,
+/obj/structure/sign/poster/official/random/directional/south,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/sorting)
"bjh" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/west,
@@ -3005,6 +3051,9 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"bjt" = (
+/turf/open/floor/engine/vacuum,
+/area/station/engineering/atmos)
"bjL" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/structure/table,
@@ -3175,6 +3224,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/stairs,
/area/station/maintenance/department/engine/atmos)
+"bmO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery/white,
+/turf/closed/wall,
+/area/station/maintenance/port/fore)
"bmT" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 4
@@ -3305,6 +3364,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
+"boG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"boI" = (
/obj/machinery/mecha_part_fabricator/maint{
name = "forgotten exosuit fabricator"
@@ -3450,6 +3520,18 @@
name = "Holodeck Projector Floor"
},
/area/station/holodeck/rec_center)
+"bqA" = (
+/obj/effect/turf_decal/weather/dirt,
+/obj/effect/turf_decal/weather/dirt{
+ dir = 1
+ },
+/obj/structure/flora/bush/flowers_yw,
+/obj/structure/flora/bush/large/style_random{
+ pixel_x = -20;
+ pixel_y = 3
+ },
+/turf/open/floor/grass,
+/area/station/service/chapel)
"bqD" = (
/mob/living/basic/slime,
/turf/open/floor/engine,
@@ -3527,6 +3609,14 @@
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible,
/turf/closed/wall/r_wall,
/area/station/engineering/atmos)
+"brO" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"brZ" = (
/obj/machinery/door/airlock{
name = "Maintenance"
@@ -3536,6 +3626,16 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/station/maintenance/aft)
+"bst" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/dark,
+/area/station/engineering/atmos/storage)
"bsu" = (
/obj/structure/barricade/wooden/crude,
/obj/effect/mapping_helpers/broken_floor,
@@ -3729,29 +3829,23 @@
/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
- },
-/obj/machinery/disposal/bin,
-/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)
+"bwW" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 4
+ },
+/obj/effect/spawner/random/food_or_drink/donkpockets{
+ pixel_y = 6
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/engineering/break_room)
"bxa" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -3889,6 +3983,13 @@
},
/turf/open/floor/wood,
/area/station/engineering/atmos/pumproom)
+"bzW" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"bzZ" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
@@ -3989,30 +4090,6 @@
},
/turf/open/floor/iron,
/area/station/security/processing)
-"bCh" = (
-/obj/effect/turf_decal/stripes{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/obj/effect/turf_decal/stripes{
- dir = 8
- },
-/obj/machinery/door/airlock/mining{
- name = "Bitrunning Den"
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
-/turf/open/floor/iron/dark/smooth_half{
- dir = 1
- },
-/area/station/cargo/bitrunning/den)
"bCn" = (
/obj/effect/turf_decal/tile/blue,
/obj/structure/extinguisher_cabinet/directional/west,
@@ -4054,16 +4131,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/science/lower)
-"bCZ" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"bDg" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1
@@ -4081,6 +4148,16 @@
/obj/structure/cable,
/turf/open/floor/iron/diagonal,
/area/station/engineering/lobby)
+"bDi" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "O2 to Airmix"
+ },
+/obj/machinery/light/no_nightlight/directional/north,
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"bDj" = (
/obj/effect/landmark/start/medical_doctor,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
@@ -4136,6 +4213,10 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"bEv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"bEw" = (
/obj/structure/sign/directions/supply{
dir = 1;
@@ -4284,13 +4365,6 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
-"bGU" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "Filing Room"
- },
-/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{
@@ -4334,6 +4408,12 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
+"bHw" = (
+/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/port/greater)
"bHy" = (
/obj/structure/chair/office/light,
/obj/effect/landmark/start/scientist,
@@ -4361,6 +4441,11 @@
/obj/structure/window/spawner/directional/south,
/turf/open/misc/sandy_dirt,
/area/station/science/research)
+"bIu" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"bIJ" = (
/obj/effect/turf_decal/weather/dirt{
dir = 4
@@ -4395,27 +4480,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/station/service/chapel)
-"bJH" = (
-/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
- },
-/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,
-/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
-/turf/open/floor/iron,
-/area/station/engineering/atmos/office)
"bJK" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -4444,16 +4508,6 @@
/obj/effect/turf_decal/weather/dirt,
/turf/open/floor/grass,
/area/station/service/chapel)
-"bKz" = (
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/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/north,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"bKE" = (
/obj/effect/turf_decal/siding/red{
dir = 1
@@ -4509,6 +4563,14 @@
/obj/machinery/light/no_nightlight/directional/north,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"bLG" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/station/cargo/office)
"bLS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -4648,13 +4710,6 @@
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/misc/sandy_dirt,
/area/station/hallway/secondary/entry)
-"bOY" = (
-/obj/structure/sign/poster/random/directional/east,
-/obj/machinery/conveyor{
- id = "mining"
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
"bPd" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{
dir = 4
@@ -4771,6 +4826,9 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth,
/area/station/security/checkpoint/customs/auxiliary)
+"bRA" = (
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/cargo/lobby)
"bRK" = (
/obj/effect/turf_decal/siding/thinplating_new/light{
dir = 4
@@ -4840,6 +4898,12 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input,
/turf/open/floor/engine/vacuum,
/area/station/maintenance/disposal/incinerator)
+"bUq" = (
+/obj/structure/cable,
+/obj/item/reagent_containers/pill/maintenance,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"bUr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/blue{
@@ -4972,12 +5036,6 @@
/obj/machinery/chem_heater/withbuffer,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"bXb" = (
-/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/department/electrical)
"bXi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -5135,25 +5193,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
-"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
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
-/turf/open/floor/iron,
-/area/station/engineering/atmos/office)
"cam" = (
/obj/machinery/flasher/directional/east{
id = "AI";
@@ -5249,6 +5288,15 @@
"cbm" = (
/turf/closed/wall/rust,
/area/station/ai_monitored/aisat/exterior)
+"cbq" = (
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/north,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"cbt" = (
/obj/structure/cable,
/obj/structure/table/bronze,
@@ -5346,6 +5394,13 @@
/obj/machinery/light/cold/dim/directional/east,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
+"ccO" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 1
+ },
+/obj/effect/spawner/random/vending/snackvend,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"cdg" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/grass,
@@ -5354,6 +5409,16 @@
/obj/machinery/telecomms/server/presets/medical,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"cdp" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "CO2 to Pure"
+ },
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"cdz" = (
/obj/effect/turf_decal/tile/yellow,
/obj/machinery/light/cold/dim/directional/west,
@@ -5371,14 +5436,6 @@
},
/turf/open/floor/grass,
/area/station/service/chapel)
-"cdC" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/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{
@@ -5391,6 +5448,20 @@
/obj/structure/window/spawner/directional/south,
/turf/open/space/basic,
/area/space/nearstation)
+"ceD" = (
+/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/service/janitor)
"ceN" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 4
@@ -5636,6 +5707,22 @@
/obj/effect/turf_decal/tile/purple/opposingcorners,
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
+"cjc" = (
+/obj/structure/chair/stool/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
+"cjf" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/small,
+/area/station/cargo/lobby)
"cjm" = (
/obj/structure/closet/firecloset,
/obj/machinery/status_display/evac/directional/south,
@@ -5713,6 +5800,14 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/noslip,
/area/station/maintenance/department/medical/central)
+"cky" = (
+/obj/machinery/airalarm/directional/north,
+/obj/item/kirbyplants/organic/applebush{
+ pixel_y = 5
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"ckL" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5733,16 +5828,6 @@
},
/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/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/engineering/atmos)
"ckV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -6112,6 +6197,18 @@
},
/turf/open/floor/iron/small,
/area/station/security/brig)
+"csj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"csl" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -6142,18 +6239,6 @@
/obj/machinery/light/cold/directional/west,
/turf/open/floor/iron/small,
/area/station/medical/medbay/lobby)
-"csA" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "sci-entrance"
- },
-/obj/machinery/door/airlock/maintenance{
- name = "Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"csE" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
@@ -6224,6 +6309,13 @@
/obj/machinery/light/cold/directional/north,
/turf/open/floor/iron,
/area/station/security/prison/rec)
+"cuZ" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating_new,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"cvc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -6403,6 +6495,25 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/small,
/area/station/command/heads_quarters/ce)
+"cyQ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/rack,
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -8;
+ pixel_y = 11
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/pickaxe,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"cyU" = (
/obj/effect/spawner/random/structure/table,
/obj/effect/spawner/random/maintenance,
@@ -6434,6 +6545,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
+"czh" = (
+/obj/machinery/light/floor,
+/obj/structure/flora/bush/flowers_br,
+/obj/structure/flora/bush/flowers_br/style_3,
+/turf/open/floor/grass,
+/area/station/hallway/primary/central/fore)
"czq" = (
/obj/structure/curtain/cloth,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -6446,13 +6563,6 @@
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{
@@ -6588,6 +6698,15 @@
},
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
+"cCC" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"cCD" = (
/obj/structure/cable,
/obj/machinery/door/airlock/maintenance/external{
@@ -6707,6 +6826,15 @@
dir = 1
},
/area/station/maintenance/starboard/greater)
+"cDQ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/station/service/chapel/office)
"cDV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
@@ -6727,6 +6855,11 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"cEp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"cED" = (
/obj/structure/railing/corner,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
@@ -6911,6 +7044,13 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/dark,
/area/station/service/lawoffice)
+"cHD" = (
+/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible,
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"cHG" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -7161,6 +7301,12 @@
/obj/machinery/door/poddoor/incinerator_atmos_aux,
/turf/open/floor/plating,
/area/station/maintenance/disposal/incinerator)
+"cMH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/maintenance/central/greater)
"cMS" = (
/obj/structure/cable,
/obj/structure/chair/stool/directional/north,
@@ -7186,6 +7332,21 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"cNl" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
+"cNw" = (
+/obj/effect/turf_decal/siding/red,
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"cNR" = (
/obj/structure/chair/office{
dir = 4
@@ -7206,6 +7367,16 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"cOa" = (
+/obj/structure/table,
+/obj/item/screwdriver{
+ pixel_y = -6
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 7
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"cOd" = (
/obj/structure/flora/bush/flowers_yw/style_random,
/obj/structure/flora/rock/pile/style_2{
@@ -7216,6 +7387,13 @@
/obj/structure/window/spawner/directional/west,
/turf/open/misc/sandy_dirt,
/area/station/commons/fitness/recreation/entertainment)
+"cOs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/table,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"cOC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -7349,15 +7527,6 @@
},
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/maint)
-"cQV" = (
-/obj/machinery/door/airlock/engineering/glass{
- name = "Engineering Storage"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment,
-/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,
@@ -7602,6 +7771,13 @@
dir = 1
},
/area/station/hallway/primary/aft)
+"cUV" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"cUY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -7652,16 +7828,6 @@
},
/turf/open/floor/iron/dark/herringbone,
/area/station/security/execution/education)
-"cVO" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/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{
@@ -7678,6 +7844,11 @@
dir = 4
},
/area/station/maintenance/fore/lesser)
+"cWC" = (
+/obj/item/reagent_containers/cup/watering_can/wood,
+/obj/structure/table,
+/turf/open/floor/plating,
+/area/station/maintenance/starboard/greater)
"cWM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -7831,11 +8002,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
-"cYT" = (
-/obj/structure/hedge,
-/obj/structure/sign/poster/contraband/random/directional/east,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"cYW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/structure/steam_vent,
@@ -7964,6 +8130,13 @@
dir = 1
},
/area/station/science/lower)
+"day" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"daC" = (
/obj/structure/hedge,
/obj/effect/turf_decal/siding/thinplating_new{
@@ -8015,10 +8188,6 @@
"dbF" = (
/turf/open/floor/plating/rust,
/area/station/ai_monitored/turret_protected/aisat/maint)
-"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/structure/disposalpipe/segment{
@@ -8035,6 +8204,11 @@
/obj/machinery/firealarm/directional/west,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"dcu" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/north,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"dcx" = (
/obj/effect/turf_decal/siding/white{
dir = 10
@@ -8238,10 +8412,12 @@
/obj/machinery/status_display/ai/directional/north,
/turf/open/floor/circuit/red,
/area/station/ai_monitored/turret_protected/ai)
-"dfN" = (
-/obj/structure/window/spawner/directional/west,
-/obj/structure/window/spawner/directional/south,
-/turf/open/floor/grass,
+"dfM" = (
+/obj/structure/rack,
+/obj/item/storage/medkit/regular,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
/area/station/cargo/storage)
"dfT" = (
/obj/effect/turf_decal/bot{
@@ -8280,6 +8456,25 @@
/obj/structure/cable,
/turf/open/floor/iron/white/corner,
/area/station/science/lower)
+"dgt" = (
+/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/private)
+"dgy" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"dgV" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 5
@@ -8436,6 +8631,13 @@
/obj/effect/landmark/start/mime,
/turf/open/floor/iron/smooth,
/area/station/service/greenroom)
+"diN" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/station/cargo/office)
"diP" = (
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
@@ -8536,6 +8738,12 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/security/tram)
+"dkD" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/item/clothing/suit/hooded/wintercoat/engineering,
+/obj/structure/cable,
+/turf/open/floor/iron/small,
+/area/station/engineering/break_room)
"dkI" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -8610,6 +8818,9 @@
/obj/structure/tram,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
+"dmO" = (
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
"dmT" = (
/obj/machinery/camera/directional/north{
c_tag = "Xenobiology - Cell 2";
@@ -8645,10 +8856,6 @@
/obj/machinery/light_switch/directional/south,
/turf/open/floor/stone,
/area/station/service/abandoned_gambling_den)
-"dny" = (
-/obj/structure/cable,
-/turf/open/floor/carpet/lone,
-/area/station/service/chapel/office)
"dnK" = (
/obj/item/kirbyplants/random,
/obj/item/storage/briefcase{
@@ -8679,12 +8886,12 @@
/obj/machinery/door/airlock/maintenance{
name = "Maintenance"
},
-/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
"dob" = (
@@ -8715,13 +8922,6 @@
/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,
@@ -8778,14 +8978,6 @@
},
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
-"dpz" = (
-/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light_switch/directional/west,
-/obj/effect/landmark/event_spawn,
-/obj/machinery/portable_atmospherics/pump/lil_pump,
-/turf/open/floor/iron/dark,
-/area/station/science/ordnance)
"dpH" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{
dir = 8
@@ -8808,6 +9000,23 @@
/obj/item/clothing/head/utility/chefhat,
/turf/open/floor/iron/dark/small,
/area/station/commons/fitness/locker_room)
+"dqF" = (
+/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/private)
"dqO" = (
/turf/open/floor/iron/dark/small,
/area/station/security/checkpoint/customs/auxiliary)
@@ -9061,6 +9270,15 @@
},
/turf/open/floor/iron/smooth,
/area/station/security/checkpoint/customs)
+"dvP" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/white/corner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/corner{
+ dir = 1
+ },
+/area/station/cargo/storage)
"dvY" = (
/obj/effect/turf_decal/siding/wood{
dir = 10
@@ -9086,6 +9304,9 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
+"dwy" = (
+/turf/open/floor/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"dwC" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -9264,11 +9485,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"dzH" = (
-/obj/machinery/portable_atmospherics/canister/plasma,
-/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
-/turf/open/floor/engine/plasma,
-/area/station/engineering/atmos)
"dAn" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
@@ -9337,6 +9553,10 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/security/evidence)
+"dAZ" = (
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
"dBh" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -9349,6 +9569,14 @@
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"dBn" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/sign/departments/cargo/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"dBr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -9444,16 +9672,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
-"dDi" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"dDk" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/chapel{
@@ -9519,6 +9737,12 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"dEp" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/camera/autoname/directional/west,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"dEq" = (
/obj/effect/turf_decal/siding/thinplating_new/light,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -9552,19 +9776,18 @@
dir = 1
},
/area/station/science/ordnance/testlab)
-"dEQ" = (
-/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"dEY" = (
/obj/effect/turf_decal/siding/thinplating_new/light{
dir = 5
},
/turf/open/floor/iron/white/small,
/area/station/service/hydroponics)
+"dFn" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"dFA" = (
/obj/effect/turf_decal/tile/brown/opposingcorners,
/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{
@@ -9667,6 +9890,12 @@
},
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
+"dIw" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/dark,
+/area/station/engineering/atmospherics_engine)
"dIQ" = (
/obj/effect/turf_decal/weather/dirt,
/obj/structure/flora/bush/flowers_yw/style_3,
@@ -9782,6 +10011,11 @@
},
/turf/open/floor/engine/n2o,
/area/station/engineering/atmos)
+"dLl" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/curtain/bounty/start_closed,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"dLn" = (
/obj/structure/chair/office,
/turf/open/floor/iron/dark/herringbone,
@@ -9846,6 +10080,13 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/plating,
/area/station/construction/mining/aux_base)
+"dMC" = (
+/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)
"dMM" = (
/obj/effect/spawner/random/engineering/tracking_beacon,
/turf/open/floor/iron,
@@ -9925,6 +10166,19 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/commons/storage/tools)
+"dOH" = (
+/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/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"dOP" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
dir = 1
@@ -10046,17 +10300,10 @@
/obj/effect/turf_decal/siding/wood/end,
/turf/open/floor/stone,
/area/station/service/chapel)
-"dRD" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+"dRz" = (
+/obj/docking_port/stationary/syndicate/northeast,
+/turf/open/space/basic,
+/area/space)
"dRT" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -10145,6 +10392,22 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"dTi" = (
+/obj/machinery/light/cold/directional/west,
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/station/science/ordnance)
+"dTj" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/machinery/door/airlock{
+ name = "Cargo Maintenance"
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"dTo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/obj/effect/turf_decal/stripes/line{
@@ -10174,11 +10437,6 @@
/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{
@@ -10342,6 +10600,14 @@
/obj/machinery/door/firedoor,
/turf/open/floor/catwalk_floor/iron,
/area/station/science/lower)
+"dXu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"dXO" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/obj/structure/disposalpipe/segment{
@@ -10462,13 +10728,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
-"dZm" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"dZn" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -10569,6 +10828,11 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/wood/tile,
/area/station/service/bar)
+"ebn" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/iron/dark/side,
+/area/station/hallway/primary/central/fore)
"ebE" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -10586,6 +10850,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/herringbone,
/area/station/commons/dorms)
+"ebM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"ebU" = (
/obj/structure/table/reinforced,
/obj/structure/reagent_dispensers/servingdish,
@@ -10665,6 +10942,19 @@
},
/turf/open/floor/iron,
/area/station/service/hydroponics)
+"edA" = (
+/obj/machinery/conveyor_switch/oneway{
+ dir = 8;
+ id = "QMLoad";
+ name = "Loading Conveyor";
+ pixel_x = -13;
+ pixel_y = 19
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"edD" = (
/obj/machinery/light/small/directional/west,
/obj/item/kirbyplants/random,
@@ -10758,10 +11048,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"efn" = (
-/obj/effect/spawner/random/structure/crate_loot,
-/turf/open/floor/plating,
-/area/station/maintenance/department/electrical)
"efy" = (
/obj/item/kirbyplants/organic/plant21,
/obj/machinery/status_display/ai/directional/west,
@@ -10817,11 +11103,22 @@
},
/turf/open/floor/iron,
/area/station/service/hydroponics)
+"egg" = (
+/obj/structure/water_source/puddle,
+/turf/open/misc/asteroid,
+/area/station/maintenance/starboard/greater)
"egr" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/science/xenobiology)
+"egA" = (
+/obj/machinery/vending/autodrobe,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/turf/open/floor/iron/small,
+/area/station/commons/fitness/locker_room)
"egC" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
dir = 4
@@ -10861,6 +11158,18 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/chapel,
/area/station/maintenance/starboard/greater)
+"egW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/machinery/light/cold/directional/south,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"ehd" = (
/obj/item/stack/cable_coil,
/obj/item/electronics/airlock,
@@ -10898,6 +11207,19 @@
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"ehu" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/button/door/directional/east{
+ id = "qm_warehouse_aft";
+ name = "Warehouse Door Control";
+ pixel_x = -24;
+ pixel_y = -23;
+ req_access = list("cargo")
+ },
+/obj/machinery/light/small/dim/directional/west,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"ehT" = (
/obj/machinery/door/airlock{
id_tag = "commiss2";
@@ -10928,6 +11250,16 @@
/obj/structure/broken_flooring/singular/directional/south,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"eib" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "QMLoad2";
+ name = "Unloading Conveyor";
+ pixel_x = -13;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"eip" = (
/obj/machinery/power/port_gen/pacman,
/obj/machinery/power/terminal{
@@ -11197,14 +11529,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
-"elN" = (
-/obj/effect/landmark/start/hangover,
-/obj/machinery/light/small/directional/north,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/aft)
"elR" = (
/obj/structure/table,
/obj/structure/window/spawner/directional/south,
@@ -11234,6 +11558,9 @@
/obj/machinery/holopad,
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/rd)
+"emz" = (
+/turf/closed/wall/r_wall/rust,
+/area/station/maintenance/department/electrical)
"emB" = (
/obj/machinery/door/airlock/maintenance{
name = "Maintenance"
@@ -11297,6 +11624,16 @@
"enG" = (
/turf/open/floor/iron/dark,
/area/station/science/ordnance)
+"enI" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Atmospherics Maintenance"
+ },
+/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)
"enV" = (
/obj/structure/closet/secure_closet/research_director,
/obj/item/radio/intercom/directional/north,
@@ -11322,13 +11659,6 @@
/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,
@@ -11544,6 +11874,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"eti" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 8
+ },
+/area/station/cargo/storage)
"etl" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{
dir = 5
@@ -11565,6 +11904,10 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/circuit,
/area/station/maintenance/port/aft)
+"etJ" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/stone,
+/area/station/service/chapel)
"etZ" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted,
/obj/effect/turf_decal/siding/wideplating/dark/corner{
@@ -11756,6 +12099,26 @@
/obj/structure/sink/directional/east,
/turf/open/floor/iron/white,
/area/station/medical/virology)
+"eyx" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 8
+ },
+/obj/structure/sign/directions/supply/directional/west{
+ pixel_x = 0;
+ pixel_y = 39
+ },
+/obj/structure/sign/directions/vault/directional/west{
+ dir = 2;
+ pixel_x = 0;
+ pixel_y = 30
+ },
+/turf/open/floor/iron/small,
+/area/station/hallway/primary/central/fore)
"eyB" = (
/obj/structure/cable,
/obj/machinery/door/firedoor,
@@ -11954,17 +12317,6 @@
},
/turf/open/floor/iron,
/area/station/commons/storage/art)
-"eBC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"eBH" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -12014,6 +12366,23 @@
},
/turf/open/floor/iron/small,
/area/station/engineering/main)
+"eCO" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
+"eCV" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"eDh" = (
/obj/effect/spawner/structure/window/survival_pod,
/turf/open/floor/engine,
@@ -12034,6 +12403,7 @@
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer"
},
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
"eDr" = (
@@ -12149,6 +12519,13 @@
/obj/machinery/camera/directional/west,
/turf/open/floor/iron/smooth,
/area/station/commons/storage/tools)
+"eEG" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/storage)
"eEL" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
@@ -12342,18 +12719,6 @@
/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
@@ -12383,13 +12748,14 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/turret_protected/ai)
-"eIF" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/structure/table,
+"eII" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/status_display/evac/directional/east,
+/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron,
-/area/station/cargo/sorting)
+/area/station/hallway/primary/central/fore)
"eIM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/sorting/mail/flip{
@@ -12436,6 +12802,20 @@
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
+"eJi" = (
+/obj/structure/table/wood,
+/obj/item/hand_labeler_refill{
+ pixel_x = -4;
+ pixel_y = 26
+ },
+/obj/structure/sign/poster/official/random/directional/south,
+/obj/machinery/fax{
+ fax_name = "Quartermaster's Office";
+ name = "Quartermaster's Fax Machine";
+ pixel_y = 7
+ },
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"eJm" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/bot,
@@ -12461,14 +12841,6 @@
/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,
-/obj/machinery/airlock_sensor/incinerator_atmos{
- pixel_y = -20
- },
-/turf/open/floor/engine,
-/area/station/maintenance/disposal/incinerator)
"eKf" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets/donkpocketpizza,
@@ -12497,6 +12869,11 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"eKV" = (
+/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
+/obj/machinery/portable_atmospherics/pump,
+/turf/open/floor/iron/dark,
+/area/station/science/ordnance)
"eKW" = (
/obj/machinery/door/airlock/maintenance{
name = "Bathroom"
@@ -12577,6 +12954,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/circuit/red,
/area/station/ai_monitored/turret_protected/ai)
+"eNa" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"eNl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -12687,6 +13077,12 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningfoundry)
+"ePr" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"ePt" = (
/obj/structure/flora/grass/jungle/a/style_4,
/turf/open/floor/grass,
@@ -12754,6 +13150,17 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/commons/dorms)
+"eQI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/stripes/corner,
+/obj/effect/turf_decal/stripes/white/corner,
+/obj/machinery/camera/autoname/directional/east,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"eQQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -12802,6 +13209,16 @@
/obj/machinery/door/firedoor,
/turf/open/floor/catwalk_floor/iron,
/area/station/science/lower)
+"eSA" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/hallway/primary/central/fore)
"eSV" = (
/obj/structure/bed/maint,
/turf/open/floor/iron/small,
@@ -12855,6 +13272,12 @@
/obj/effect/turf_decal/siding/wood/corner,
/turf/open/floor/wood/tile,
/area/station/service/bar)
+"eTL" = (
+/obj/structure/cable,
+/turf/open/floor/iron/stairs{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"eTT" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -13061,6 +13484,11 @@
/obj/machinery/light/cold/directional/west,
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
+"eXl" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"eXo" = (
/turf/closed/wall/r_wall,
/area/station/tcommsat/server)
@@ -13158,6 +13586,10 @@
},
/turf/open/misc/sandy_dirt,
/area/station/maintenance/port/lesser)
+"eZd" = (
+/obj/effect/spawner/random/structure/crate_loot,
+/turf/open/floor/plating,
+/area/station/maintenance/department/electrical)
"eZi" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -13473,6 +13905,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/small,
/area/station/security/brig)
+"fgo" = (
+/obj/item/pickaxe,
+/turf/open/floor/plating,
+/area/station/maintenance/department/electrical)
"fgp" = (
/turf/open/floor/iron/dark/side,
/area/station/security/execution/transfer)
@@ -13608,6 +14044,10 @@
/obj/item/plate,
/turf/open/floor/iron/cafeteria,
/area/station/security/prison/mess)
+"fiE" = (
+/obj/effect/turf_decal/siding/red,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"fiK" = (
/obj/structure/cable,
/obj/structure/disposalpipe/sorting/mail/flip{
@@ -13677,12 +14117,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
-"fkd" = (
-/obj/structure/chair/stool/directional/south,
-/obj/machinery/holopad,
-/obj/effect/landmark/start/cargo_technician,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"fkj" = (
/obj/machinery/porta_turret/ai{
dir = 4
@@ -13804,6 +14238,13 @@
/obj/item/flashlight/lantern,
/turf/open/floor/plating/rust,
/area/station/maintenance/starboard/greater)
+"fma" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"fme" = (
/obj/effect/turf_decal/weather/dirt{
dir = 1
@@ -14077,6 +14518,13 @@
/obj/machinery/door/window/brigdoor/right/directional/north,
/turf/open/floor/iron/textured_large,
/area/station/security/checkpoint/customs)
+"frY" = (
+/obj/structure/closet/secure_closet/security/cargo,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"frZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -14154,18 +14602,6 @@
},
/turf/open/floor/wood/tile,
/area/station/maintenance/aft)
-"fts" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/computer/order_console/bitrunning{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/end{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"ftv" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/structure/table/reinforced,
@@ -14199,6 +14635,18 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
+"ftI" = (
+/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/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ftT" = (
/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
/obj/machinery/camera/directional/west{
@@ -14334,6 +14782,15 @@
},
/turf/open/floor/iron/dark,
/area/station/security/processing)
+"fvX" = (
+/obj/structure/table,
+/obj/item/restraints/handcuffs/cable/red{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"fwc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -14409,14 +14866,14 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
+"fxc" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"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/visible,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"fxF" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -14428,6 +14885,14 @@
/obj/structure/table,
/turf/open/floor/iron/kitchen/small,
/area/station/maintenance/aft)
+"fxO" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/station/cargo/storage)
"fxW" = (
/obj/machinery/restaurant_portal/restaurant,
/obj/effect/turf_decal/siding/wood{
@@ -14570,6 +15035,13 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"fAn" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"fAr" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/structure/barricade/wooden/crude,
@@ -14693,9 +15165,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
-"fCd" = (
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"fCf" = (
/obj/effect/turf_decal/caution{
dir = 4
@@ -14725,6 +15194,16 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/chemistry)
+"fCK" = (
+/obj/machinery/door/airlock/mining{
+ name = "Mining Office"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/mapping_helpers/airlock/access/all/supply,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"fCS" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/machinery/airalarm/directional/east,
@@ -15092,6 +15571,14 @@
/obj/machinery/vending/wardrobe/science_wardrobe,
/turf/open/floor/iron/white,
/area/station/science/research)
+"fHX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/stairs{
+ dir = 8
+ },
+/area/station/cargo/storage)
"fIe" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{
dir = 6
@@ -15116,6 +15603,13 @@
/obj/machinery/light/floor,
/turf/open/floor/stone,
/area/station/service/bar)
+"fIq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/station/cargo/office)
"fIw" = (
/obj/effect/landmark/navigate_destination/dockescpod,
/turf/open/floor/plating,
@@ -15313,22 +15807,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
-"fLF" = (
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=8";
- location = "QM #2"
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/camera/autoname/directional/south,
-/obj/machinery/light/small/directional/south,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"fLI" = (
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/iron/dark/small,
@@ -15365,6 +15843,15 @@
/obj/structure/disposalpipe/segment,
/turf/closed/wall,
/area/station/commons/fitness/recreation/entertainment)
+"fMf" = (
+/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)
"fMg" = (
/obj/structure/chair/stool/directional/north,
/turf/open/floor/iron/smooth,
@@ -15643,6 +16130,14 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/small,
/area/station/service/janitor)
+"fQv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"fQA" = (
/obj/effect/spawner/random/structure/chair_maintenance{
dir = 8
@@ -15739,9 +16234,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood/parquet,
/area/station/service/library)
-"fSe" = (
-/turf/closed/wall/rust,
-/area/station/cargo/miningfoundry)
"fSf" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -15978,6 +16470,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"fWj" = (
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/north,
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"fWr" = (
/obj/structure/closet/crate,
/obj/structure/barricade/wooden/crude,
@@ -16522,10 +17023,12 @@
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/iron,
/area/station/hallway/primary/aft)
-"ggr" = (
-/obj/item/pickaxe,
-/turf/open/floor/plating,
-/area/station/maintenance/department/electrical)
+"ggn" = (
+/obj/effect/decal/cleanable/oil,
+/obj/machinery/byteforge,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/cargo/bitrunning/den)
"ggw" = (
/obj/effect/turf_decal/stripes/white/end{
dir = 1
@@ -16554,6 +17057,14 @@
},
/turf/open/floor/wood,
/area/station/engineering/atmospherics_engine)
+"ggK" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/pdapainter/supply,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"ggN" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 9
@@ -16682,6 +17193,12 @@
/obj/machinery/nuclearbomb/beer,
/turf/open/floor/iron/freezer,
/area/station/command/corporate_suite)
+"giA" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"giU" = (
/obj/effect/turf_decal/siding/thinplating_new/terracotta{
dir = 1
@@ -16801,11 +17318,6 @@
/obj/machinery/suit_storage_unit/atmos,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/office)
-"gls" = (
-/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)
"glM" = (
/obj/effect/turf_decal/trimline/neutral/line,
/obj/effect/turf_decal/trimline/neutral/line{
@@ -16919,6 +17431,15 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"gnO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"gnQ" = (
/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden,
/obj/effect/spawner/structure/window,
@@ -17087,6 +17608,12 @@
/obj/structure/spider/stickyweb,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
+"gqw" = (
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"gqS" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
/obj/effect/turf_decal/siding/wideplating,
@@ -17204,6 +17731,20 @@
},
/turf/open/floor/iron/white/corner,
/area/station/hallway/secondary/exit/departure_lounge)
+"guq" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/spawner/random/structure/steam_vent,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
+"gus" = (
+/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,
+/area/station/cargo/warehouse)
"guz" = (
/obj/structure/cable,
/obj/item/kirbyplants/random,
@@ -17379,15 +17920,6 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/dark/small,
/area/station/tcommsat/server)
-"gxr" = (
-/obj/machinery/door/airlock/mining{
- name = "Mining Office"
- },
-/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/miningfoundry)
"gxs" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research/glass{
@@ -17424,10 +17956,6 @@
/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,
-/area/station/cargo/storage)
"gxP" = (
/obj/structure/flora/bush/large/style_random,
/obj/structure/window/spawner/directional/east,
@@ -17662,6 +18190,12 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/small,
/area/station/hallway/primary/fore)
+"gBs" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/qm)
"gBu" = (
/turf/closed/wall/r_wall,
/area/station/security/prison/mess)
@@ -17854,6 +18388,37 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"gEa" = (
+/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{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/office)
+"gEb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/folder/yellow{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/storage/dice{
+ pixel_x = -10;
+ pixel_y = 11
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"gEc" = (
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
@@ -17880,16 +18445,6 @@
"gEH" = (
/turf/closed/wall/r_wall,
/area/station/security/evidence)
-"gEJ" = (
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/iron,
-/area/station/cargo/office)
"gEM" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -17911,6 +18466,25 @@
},
/turf/open/floor/iron/smooth,
/area/station/command/bridge)
+"gFi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/button/door/directional/east{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -24;
+ pixel_y = 24;
+ req_access = list("cargo")
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"gFm" = (
/obj/machinery/light/dim/directional/south,
/obj/effect/turf_decal/tile/neutral,
@@ -18004,12 +18578,6 @@
},
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/captain/private)
-"gGw" = (
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/newscaster/directional/west,
-/obj/structure/chair,
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"gGx" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -18026,6 +18594,14 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"gGA" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/storage)
"gGB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -18114,6 +18690,25 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/station/command/gateway)
+"gIr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/conveyor_switch/oneway{
+ id = "packageSort2";
+ name = "Sort and Deliver";
+ pixel_x = 8;
+ pixel_y = 12
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"gIs" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -18187,6 +18782,26 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron,
/area/station/security)
+"gJb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "packageSort2"
+ },
+/obj/machinery/door/window/left/directional/west{
+ name = "Crate Security Door";
+ req_access = list("shipping")
+ },
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"gJo" = (
/turf/open/floor/iron/stairs{
dir = 8
@@ -18259,18 +18874,6 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
-"gKK" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/airlock/maintenance{
- name = "Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"gKL" = (
/turf/closed/wall/r_wall,
/area/station/engineering/break_room)
@@ -18350,6 +18953,15 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"gLS" = (
+/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)
"gLV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -18489,13 +19101,6 @@
},
/turf/open/floor/iron/small,
/area/station/engineering/break_room)
-"gNC" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"gNH" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 6
@@ -18513,12 +19118,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"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,
@@ -18557,6 +19156,13 @@
},
/turf/open/floor/iron,
/area/station/science/xenobiology)
+"gOS" = (
+/obj/machinery/rnd/production/techfab/department/cargo,
+/obj/effect/turf_decal/delivery/white,
+/obj/machinery/light_switch/directional/south,
+/obj/machinery/light/warm/directional/south,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/sorting)
"gOX" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
@@ -18595,11 +19201,24 @@
/obj/structure/fermenting_barrel,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
-"gPT" = (
-/obj/effect/spawner/random/structure/grille,
-/obj/effect/spawner/random/structure/girder,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+"gPO" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/machinery/disposal/delivery_chute{
+ name = "Service Deliveries"
+ },
+/obj/structure/sign/departments/botany/directional/north,
+/obj/effect/turf_decal/tile/green/fourcorners,
+/obj/structure/plasticflaps{
+ name = "Service Deliveries"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery/white,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/sorting)
"gPY" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/turf_decal/stripes/white/line{
@@ -18614,14 +19233,6 @@
/obj/structure/sign/warning/chem_diamond,
/turf/closed/wall,
/area/station/medical/chemistry)
-"gQm" = (
-/obj/structure/window/spawner/directional/east,
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/bot_white,
-/obj/machinery/light/small/directional/north,
-/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,
@@ -18629,29 +19240,6 @@
/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,
-/obj/effect/turf_decal/bot_white,
-/obj/item/clothing/gloves/color/fyellow,
-/obj/item/stack/package_wrap{
- pixel_y = 5
- },
-/obj/item/stack/package_wrap{
- pixel_y = 2
- },
-/obj/item/storage/box{
- desc = "It smells of monkey business...";
- name = "Empty Gorillacube Box"
- },
-/obj/item/weldingtool,
-/obj/item/radio{
- pixel_y = 3;
- pixel_x = -6
- },
-/obj/item/assembly/signaler,
-/turf/open/floor/iron/smooth,
-/area/station/commons/storage/tools)
"gRm" = (
/obj/structure/flora/bush/flowers_br,
/obj/structure/flora/bush/flowers_pp/style_random,
@@ -18737,19 +19325,19 @@
/obj/item/stack/sheet/mineral/titanium,
/turf/open/floor/tram,
/area/station/maintenance/department/medical/central)
+"gSA" = (
+/obj/machinery/vending/wardrobe/cargo_wardrobe,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"gSD" = (
/obj/machinery/mass_driver/chapelgun{
dir = 8
},
/turf/open/floor/plating,
/area/station/service/chapel/funeral)
-"gSX" = (
-/obj/machinery/computer/piratepad_control/civilian{
- dir = 1
- },
-/obj/structure/sign/departments/cargo/directional/west,
-/turf/open/floor/iron/dark,
-/area/station/hallway/primary/central/fore)
"gTb" = (
/turf/open/floor/iron/dark/side{
dir = 8
@@ -18779,6 +19367,15 @@
},
/turf/open/floor/carpet/executive,
/area/station/command/meeting_room)
+"gTj" = (
+/obj/structure/cable,
+/turf/closed/wall,
+/area/station/maintenance/port/greater)
+"gTw" = (
+/obj/machinery/light/small/dim/directional/north,
+/obj/effect/spawner/random/structure/crate,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"gTH" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -18890,12 +19487,6 @@
/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/maintenance/department/engine/atmos)
"gUV" = (
/obj/structure/cable,
/obj/structure/chair/stool/directional/south{
@@ -18991,6 +19582,18 @@
/obj/machinery/status_display/ai/directional/north,
/turf/open/floor/iron/cafeteria,
/area/station/science/breakroom)
+"gXB" = (
+/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/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"gXL" = (
/obj/structure/cable,
/obj/machinery/door/airlock{
@@ -19077,6 +19680,16 @@
dir = 4
},
/area/station/hallway/secondary/entry)
+"gZR" = (
+/obj/structure/sign/poster/random/directional/south,
+/obj/machinery/conveyor{
+ id = "mining";
+ dir = 10
+ },
+/obj/machinery/bouldertech/refinery,
+/obj/structure/sign/poster/random/directional/east,
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"gZS" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/west,
@@ -19106,19 +19719,18 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"had" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/junction/flip{
- dir = 4
- },
-/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)
+"hao" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"haq" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -19570,16 +20182,6 @@
/obj/structure/lattice,
/turf/open/misc/asteroid/airless,
/area/space/nearstation)
-"hfC" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/corner,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"hfI" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -19589,22 +20191,6 @@
},
/turf/open/floor/wood/tile,
/area/station/tcommsat/server)
-"hfZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/station/commons/storage/tools)
-"hgd" = (
-/obj/structure/table,
-/obj/item/screwdriver{
- pixel_y = -6
- },
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 7
- },
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
"hgf" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/green{
@@ -19628,6 +20214,16 @@
},
/turf/open/floor/iron/smooth,
/area/station/maintenance/solars/starboard/aft)
+"hgp" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"hgu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -19708,12 +20304,13 @@
/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{
+"hhy" = (
+/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
dir = 4
},
-/turf/closed/wall/r_wall,
-/area/station/maintenance/department/engine/atmos)
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible,
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"hhL" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -19800,6 +20397,21 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/small,
/area/station/medical/morgue)
+"hjA" = (
+/obj/structure/table,
+/obj/machinery/status_display/supply{
+ pixel_x = 1;
+ pixel_y = 32
+ },
+/obj/machinery/fax/auto_name{
+ pixel_x = -1;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"hjQ" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
@@ -19807,6 +20419,19 @@
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
+"hjS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/delivery/white,
+/obj/effect/spawner/random/food_or_drink/donkpockets{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/sorting)
"hkd" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 8
@@ -19927,6 +20552,18 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/storage)
+"hlP" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/wrapping_paper{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
"hlX" = (
/obj/machinery/door/airlock/public/glass{
name = "Old Command Hallway"
@@ -19950,27 +20587,6 @@
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/tram,
/area/station/security/tram)
-"hmh" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/station/commons/storage/tools)
-"hmj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/tank/internals/emergency_oxygen{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/gps{
- pixel_y = 5;
- pixel_x = 13
- },
-/obj/item/storage/toolbox/emergency/old,
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
"hmk" = (
/obj/structure/chair/stool/directional/east,
/turf/open/floor/iron/smooth,
@@ -20016,26 +20632,12 @@
dir = 1
},
/area/station/service/bar/backroom)
-"hmQ" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/crowbar/large{
- pixel_y = 18
- },
-/obj/item/clothing/head/costume/pirate{
- pixel_x = 15;
- pixel_y = -3
- },
-/obj/item/clothing/suit/hazardvest{
- pixel_x = -3;
- pixel_y = -2
- },
-/obj/item/wrench{
- pixel_y = 15
+"hmR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
},
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"hnf" = (
/obj/item/bikehorn/rubberducky{
pixel_x = -6;
@@ -20137,16 +20739,13 @@
/obj/structure/flora/bush/flowers_pp/style_random,
/turf/open/misc/sandy_dirt,
/area/station/medical/medbay/lobby)
-"hoV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/structure/railing/corner/end{
- dir = 4
+"hpb" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
+/obj/machinery/vending/cigarette,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"hpe" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
@@ -20196,11 +20795,6 @@
dir = 8
},
/area/station/science/lobby)
-"hqH" = (
-/obj/item/reagent_containers/cup/watering_can/wood,
-/obj/structure/table,
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/greater)
"hqM" = (
/obj/structure/toiletbong{
dir = 1
@@ -20415,12 +21009,10 @@
},
/obj/effect/turf_decal/delivery/white,
/obj/structure/rack,
-/obj/item/hand_labeler,
/obj/item/stack/cable_coil/five,
/obj/item/pickaxe,
/obj/item/wrench,
/obj/item/radio/off,
-/obj/structure/sign/poster/official/random/directional/west,
/turf/open/floor/iron/smooth,
/area/station/commons/storage/tools)
"huj" = (
@@ -20630,13 +21222,6 @@
/obj/machinery/status_display/evac/directional/west,
/turf/open/floor/iron/diagonal,
/area/station/engineering/lobby)
-"hyb" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"hyi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20660,12 +21245,25 @@
"hyE" = (
/turf/closed/wall,
/area/station/maintenance/starboard/aft)
-"hyO" = (
+"hyS" = (
+/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/structure/disposalpipe/segment,
-/obj/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
+/turf/open/floor/iron,
+/area/station/engineering/atmos/office)
"hyW" = (
/obj/effect/turf_decal/weather/dirt{
dir = 10
@@ -20691,9 +21289,6 @@
},
/turf/open/floor/iron/dark/herringbone,
/area/station/ai_monitored/command/nuke_storage)
-"hzm" = (
-/turf/closed/wall/rust,
-/area/station/cargo/miningoffice)
"hzp" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/trimline/neutral/line,
@@ -20707,6 +21302,16 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"hzr" = (
+/obj/structure/closet/secure_closet/detective,
+/obj/machinery/requests_console/directional/north{
+ department = "Detective's Office";
+ name = "Detective Requests Console"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/detectiveboard/directional/west,
+/turf/open/floor/wood,
+/area/station/security/detectives_office)
"hzK" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
@@ -20765,6 +21370,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
+"hAO" = (
+/obj/machinery/computer/piratepad_control/civilian{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/camera/autoname/directional/south,
+/obj/machinery/status_display/supply{
+ pixel_y = -32
+ },
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/lobby)
"hAW" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -20998,17 +21616,6 @@
/obj/machinery/light/cold/directional/north,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"hEi" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"hEl" = (
/obj/structure/table/rolling,
/obj/effect/turf_decal/siding/yellow,
@@ -21113,12 +21720,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/station/maintenance/disposal/incinerator)
-"hGa" = (
-/obj/machinery/camera/directional/east{
- c_tag = "Atmospherics Tank - Mix"
- },
-/turf/open/floor/engine/vacuum,
-/area/station/engineering/atmos)
"hGb" = (
/turf/closed/wall/r_wall,
/area/station/science/ordnance/storage)
@@ -21144,6 +21745,11 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
+"hGA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"hGE" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -21192,6 +21798,16 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"hHX" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/quartermaster,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
"hIi" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -21312,14 +21928,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/small,
/area/station/security/detectives_office)
-"hKV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"hKX" = (
/turf/closed/mineral/random/stationside,
/area/station/hallway/primary/fore)
@@ -21342,10 +21950,6 @@
"hLc" = (
/turf/open/floor/plating,
/area/station/science/xenobiology)
-"hLm" = (
-/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
@@ -21562,13 +22166,6 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"hPd" = (
-/obj/structure/hedge,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/turf/open/floor/iron/dark/side,
-/area/station/cargo/office)
"hPi" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -21733,6 +22330,17 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
+"hSn" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"hSK" = (
/obj/structure/cable,
/obj/effect/turf_decal/siding/white{
@@ -21924,13 +22532,6 @@
/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/visible,
-/turf/open/floor/iron,
-/area/station/engineering/atmos)
"hWk" = (
/obj/machinery/vending/coffee,
/obj/structure/extinguisher_cabinet/directional/south,
@@ -22024,6 +22625,14 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
+"hXM" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/start/depsec/supply,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"hXU" = (
/turf/closed/wall,
/area/station/security/execution/education)
@@ -22082,6 +22691,21 @@
dir = 8
},
/area/station/science/lab)
+"hYQ" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/machinery/disposal/delivery_chute{
+ name = "Security Deliveries"
+ },
+/obj/structure/sign/departments/security/directional/north,
+/obj/effect/turf_decal/tile/red/fourcorners,
+/obj/structure/plasticflaps{
+ name = "Security Deliveries"
+ },
+/obj/effect/turf_decal/delivery/white,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/sorting)
"hYS" = (
/obj/effect/turf_decal/tile/yellow/diagonal_centre,
/obj/structure/railing,
@@ -22122,18 +22746,6 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/meeting_room)
-"hZe" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/sign/poster/random/directional/east,
-/obj/machinery/conveyor{
- id = "mining"
- },
-/obj/machinery/brm,
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
"hZP" = (
/obj/structure/cable,
/obj/structure/sign/poster/official/random/directional/north,
@@ -22419,6 +23031,11 @@
/obj/structure/broken_flooring/singular/directional/east,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"idB" = (
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plating,
+/area/station/maintenance/disposal/incinerator)
"idF" = (
/obj/effect/turf_decal/siding/wood{
dir = 10
@@ -22456,6 +23073,22 @@
/obj/machinery/telecomms/message_server/preset,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"iek" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/delivery_chute{
+ name = "Engineering Deliveries"
+ },
+/obj/structure/sign/departments/engineering/directional/north,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/structure/plasticflaps{
+ name = "Engineering Deliveries"
+ },
+/obj/effect/turf_decal/delivery/white,
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/sorting)
"ieY" = (
/obj/structure/disposalpipe/segment,
/obj/effect/mapping_helpers/broken_floor,
@@ -22702,6 +23335,24 @@
},
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
+"iiR" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/conveyor_switch/oneway{
+ pixel_x = 4;
+ pixel_y = 10;
+ id = "mining"
+ },
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 6
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"iiW" = (
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_dark,
@@ -22941,15 +23592,6 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"ina" = (
-/obj/structure/table,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
-"ind" = (
-/obj/machinery/light/floor,
-/obj/structure/flora/bush/flowers_br,
-/turf/open/floor/grass,
-/area/station/hallway/primary/central/fore)
"inh" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/neutral/line{
@@ -23005,6 +23647,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/dorms)
+"ioJ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/effect/spawner/random/engineering/tracking_beacon,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ioQ" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
@@ -23049,17 +23698,6 @@
/mob/living/basic/pet/dog/pug/mcgriff,
/turf/open/floor/iron,
/area/station/security/warden)
-"ipd" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/button/door/directional/east{
- id = "qm_warehouse";
- name = "Warehouse Door Control";
- pixel_x = -24;
- pixel_y = -24;
- req_access = list("cargo")
- },
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"ipf" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -23177,13 +23815,6 @@
},
/turf/open/floor/stone,
/area/station/service/abandoned_gambling_den)
-"iqj" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/stairs{
- dir = 1
- },
-/area/station/maintenance/port/fore)
"iqp" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -23193,10 +23824,6 @@
/obj/machinery/holopad,
/turf/open/floor/iron/smooth,
/area/station/command/bridge)
-"iqq" = (
-/obj/structure/closet,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/office)
"iqB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -23228,6 +23855,14 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"iqM" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"ira" = (
/obj/structure/tank_dispenser/oxygen,
/obj/machinery/light/small/directional/south,
@@ -23361,13 +23996,14 @@
"itb" = (
/turf/closed/wall/r_wall/rust,
/area/station/ai_monitored/turret_protected/aisat/maint)
-"itr" = (
-/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{
- dir = 4
+"itf" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible,
-/turf/open/floor/iron,
-/area/station/engineering/atmos)
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"itw" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -23537,6 +24173,16 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron/dark,
/area/station/science/robotics/lab)
+"ivC" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ivY" = (
/obj/structure/table/reinforced,
/obj/effect/spawner/random/techstorage/tcomms_all,
@@ -23729,6 +24375,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/open/floor/catwalk_floor,
/area/station/engineering/atmos/storage/gas)
"izF" = (
@@ -23756,6 +24403,11 @@
/obj/machinery/field/generator,
/turf/open/floor/iron/dark/small,
/area/station/engineering/storage_shared)
+"iAt" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"iAu" = (
/obj/structure/bed{
dir = 4
@@ -23814,6 +24466,15 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"iAL" = (
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"iAM" = (
/obj/effect/turf_decal/siding/wideplating/dark/corner{
dir = 1
@@ -23850,14 +24511,6 @@
},
/turf/open/floor/iron/white,
/area/station/security/medical)
-"iBo" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/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,
@@ -23976,6 +24629,16 @@
},
/turf/open/floor/wood/tile,
/area/station/command/meeting_room)
+"iDm" = (
+/obj/structure/cable,
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating_new,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"iDt" = (
/obj/effect/mapping_helpers/airlock/access/any/security/general,
/obj/machinery/door/airlock/security{
@@ -24031,20 +24694,13 @@
/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"
+"iEc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/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)
+/turf/open/floor/iron/small,
+/area/station/engineering/break_room)
"iEk" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -24134,10 +24790,42 @@
},
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"iFG" = (
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"iFP" = (
/obj/item/kirbyplants/random/fullysynthetic,
/turf/open/floor/plating/rust,
/area/station/maintenance/hallway/abandoned_command)
+"iGb" = (
+/obj/structure/window/spawner/directional/east,
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/bot_white,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/stack/package_wrap{
+ pixel_y = 5
+ },
+/obj/item/stack/package_wrap{
+ pixel_y = 2
+ },
+/obj/item/storage/box{
+ desc = "It smells of monkey business...";
+ name = "Empty Gorillacube Box"
+ },
+/obj/item/weldingtool,
+/obj/item/radio{
+ pixel_y = 3;
+ pixel_x = -6
+ },
+/obj/item/assembly/signaler,
+/turf/open/floor/iron/smooth,
+/area/station/commons/storage/tools)
"iGl" = (
/turf/open/floor/plating,
/area/station/maintenance/hallway/abandoned_command)
@@ -24212,6 +24900,14 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
+"iGW" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/landmark/start/hangover,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"iHa" = (
/obj/machinery/atmospherics/components/binary/pump/on{
name = "Gas to Cold Loop";
@@ -24322,6 +25018,20 @@
},
/turf/open/floor/iron/dark/textured_edge,
/area/station/command/heads_quarters/hop)
+"iIG" = (
+/obj/structure/rack,
+/obj/item/clothing/gloves/cargo_gauntlet{
+ pixel_y = -3
+ },
+/obj/item/clothing/gloves/cargo_gauntlet,
+/obj/item/clothing/gloves/cargo_gauntlet{
+ pixel_y = 3
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/cargo/storage)
"iIK" = (
/obj/effect/turf_decal/bot,
/obj/structure/rack,
@@ -24412,12 +25122,18 @@
/mob/living/basic/pet/dog/corgi/ian,
/turf/open/floor/iron/dark/textured_edge,
/area/station/command/heads_quarters/hop)
-"iJh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
+"iJp" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/cargo/bitrunning/den)
"iJq" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -24455,6 +25171,9 @@
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"iJH" = (
+/turf/closed/wall,
+/area/station/security/checkpoint/supply)
"iJI" = (
/obj/structure/table/glass,
/obj/item/folder/blue,
@@ -24511,6 +25230,14 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security/brig/entrance)
+"iKn" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"iKo" = (
/obj/structure/broken_flooring/corner/directional/south,
/obj/effect/spawner/random/trash/graffiti{
@@ -24566,16 +25293,6 @@
},
/turf/open/floor/iron/diagonal,
/area/station/command/heads_quarters/hop)
-"iLF" = (
-/obj/item/kirbyplants/organic/applebush,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/iron/dark/side{
- dir = 8
- },
-/area/station/hallway/primary/central/fore)
"iLH" = (
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
/obj/machinery/door/airlock/maintenance{
@@ -24915,6 +25632,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
+"iQM" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/sorting)
"iQT" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment{
@@ -25053,10 +25786,6 @@
},
/turf/open/floor/iron/dark/herringbone,
/area/station/ai_monitored/command/nuke_storage)
-"iTv" = (
-/obj/item/kirbyplants/random,
-/turf/open/floor/wood/parquet,
-/area/station/service/library)
"iTy" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -25133,6 +25862,15 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"iUA" = (
+/obj/machinery/conveyor{
+ id = "mining"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"iUH" = (
/obj/effect/turf_decal/tile/neutral,
/obj/machinery/camera/autoname/directional/south,
@@ -25141,6 +25879,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"iUI" = (
+/obj/structure/railing,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/thinplating_new,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"iUK" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 8
@@ -25259,16 +26005,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/maintenance/port/aft)
-"iWb" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"iWe" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
@@ -25489,6 +26225,11 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/dark/smooth_large,
/area/station/maintenance/central/lesser)
+"iZx" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"iZy" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -25574,6 +26315,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"jab" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"jar" = (
/obj/machinery/drone_dispenser,
/turf/open/misc/asteroid,
@@ -25620,15 +26365,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security)
-"jaN" = (
-/obj/structure/hedge,
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/status_display/supply{
- pixel_y = 32
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"jaP" = (
/obj/effect/mob_spawn/corpse/human/clown,
/turf/open/floor/plating/airless,
@@ -25880,6 +26616,11 @@
/obj/machinery/light/dim/directional/north,
/turf/open/floor/iron/smooth,
/area/station/security/evidence)
+"jfP" = (
+/turf/open/floor/iron/stairs{
+ dir = 8
+ },
+/area/station/cargo/storage)
"jfT" = (
/obj/effect/turf_decal/siding/thinplating_new/light{
dir = 1
@@ -25896,6 +26637,20 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/service/greenroom)
+"jgj" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/button/door/directional/east{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -24;
+ pixel_y = -24;
+ req_access = list("cargo")
+ },
+/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,
+/area/station/cargo/warehouse)
"jgq" = (
/obj/effect/turf_decal/weather/dirt{
dir = 8
@@ -25935,13 +26690,6 @@
"jhm" = (
/turf/open/floor/wood,
/area/station/service/abandoned_gambling_den)
-"jhs" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"jhB" = (
/obj/structure/sign/warning/electric_shock,
/turf/closed/wall/r_wall,
@@ -26112,13 +26860,6 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
-"jkS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"jkT" = (
/obj/structure/table/wood,
/obj/machinery/fax/auto_name,
@@ -26133,6 +26874,19 @@
/obj/structure/cable,
/turf/open/floor/plating/rust,
/area/station/engineering/supermatter/room)
+"jln" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/landmark/start/cargo_technician,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"jlt" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -26144,14 +26898,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security)
-"jlv" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"jlz" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -26236,6 +26982,13 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"jmC" = (
+/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)
"jmF" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/turf_decal/stripes/line{
@@ -26243,12 +26996,6 @@
},
/turf/open/floor/plating,
/area/station/construction/mining/aux_base)
-"jmK" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"jmN" = (
/obj/structure/table,
/obj/item/stack/rods/fifty,
@@ -26269,6 +27016,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"jmX" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"jmY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -26419,14 +27177,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/security/evidence)
-"jpR" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/three,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"jpW" = (
/obj/structure/cable,
/obj/structure/table/wood,
@@ -26452,39 +27202,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
-"jqu" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
-"jqA" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/conveyor{
- dir = 1;
- id = "packageSort2"
- },
-/obj/machinery/door/window/left/directional/west{
- name = "Crate Security Door";
- req_access = list("shipping")
- },
-/obj/machinery/camera/autoname/directional/east,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"jqD" = (
/obj/effect/turf_decal/siding/yellow,
/obj/effect/turf_decal/tile/yellow/diagonal_centre,
@@ -26523,6 +27240,14 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/chemistry)
+"jro" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/camera/autoname/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"jrs" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -26537,6 +27262,12 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"jry" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"jrD" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 4
@@ -26573,11 +27304,6 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"jrX" = (
-/turf/open/floor/iron/stairs{
- dir = 1
- },
-/area/station/cargo/office)
"jsa" = (
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron/white/side{
@@ -26636,13 +27362,6 @@
/obj/structure/steam_vent,
/turf/open/floor/plating,
/area/station/maintenance/aft)
-"jtd" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/status_display/evac/directional/east,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"jte" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -26663,6 +27382,10 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/diagonal,
/area/station/command/heads_quarters/hop)
+"jtB" = (
+/obj/effect/turf_decal/stripes/white/corner,
+/turf/open/floor/iron/dark/corner,
+/area/station/cargo/storage)
"jtD" = (
/obj/structure/closet/emcloset,
/turf/open/floor/iron/showroomfloor,
@@ -26691,30 +27414,11 @@
/obj/machinery/status_display/ai/directional/east,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
-"jug" = (
-/obj/machinery/door/airlock/hatch{
- name = "Tool Supply Corridor"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/turf/open/floor/catwalk_floor/iron_dark,
-/area/station/commons/storage/tools)
-"juJ" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/structure/table,
+"juo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/package_wrap{
- pixel_y = 5
- },
-/obj/item/storage/box/matches,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
-"juP" = (
-/obj/machinery/light/small/directional/south,
-/obj/machinery/status_display/evac/directional/south,
-/turf/open/floor/stone,
-/area/station/service/chapel)
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"juS" = (
/obj/structure/bed,
/obj/item/bedsheet/hop,
@@ -26722,6 +27426,14 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/grimy,
/area/station/command/heads_quarters/hop)
+"juU" = (
+/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light_switch/directional/west,
+/obj/effect/landmark/event_spawn,
+/obj/machinery/portable_atmospherics/pump/lil_pump,
+/turf/open/floor/iron/dark,
+/area/station/science/ordnance)
"jvd" = (
/obj/effect/turf_decal/siding/thinplating{
dir = 1
@@ -26737,17 +27449,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/small,
/area/station/command/heads_quarters/captain/private)
-"jvm" = (
-/obj/machinery/door/airlock/engineering/glass/critical{
- heat_proof = 1;
- name = "Supermatter Chamber"
- },
-/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter)
"jvB" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -26887,14 +27588,6 @@
"jxD" = (
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
-"jxJ" = (
-/obj/structure/hedge,
-/obj/machinery/status_display/supply{
- pixel_y = -32
- },
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"jxU" = (
/obj/effect/turf_decal/siding/blue{
dir = 9
@@ -27090,6 +27783,16 @@
/obj/machinery/light/small/dim/directional/south,
/turf/open/floor/iron/dark,
/area/station/engineering/lobby)
+"jAN" = (
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"jAR" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/machinery/airalarm/directional/east,
@@ -27136,6 +27839,42 @@
/obj/machinery/flasher/directional/north,
/turf/open/floor/circuit/red,
/area/station/ai_monitored/turret_protected/ai)
+"jBJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/left/directional/west{
+ name = "Cargo Desk";
+ req_access = list("shipping")
+ },
+/obj/structure/desk_bell{
+ pixel_x = 7
+ },
+/obj/item/paper_bin{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/cargo/office)
+"jBN" = (
+/obj/machinery/piratepad/civilian,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/light/cold/dim/directional/south,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/lobby)
"jBQ" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -27143,12 +27882,6 @@
},
/turf/open/floor/iron,
/area/station/security/execution/transfer)
-"jCi" = (
-/obj/structure/cable,
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"jCm" = (
/obj/effect/landmark/start/hangover,
/turf/open/misc/dirt/station,
@@ -27163,13 +27896,6 @@
/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,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"jCZ" = (
/obj/machinery/door/window/brigdoor/left/directional/west{
id = "Cell 1";
@@ -27191,16 +27917,6 @@
"jDi" = (
/turf/open/floor/iron/dark,
/area/station/engineering/atmospherics_engine)
-"jDm" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
"jDt" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -27319,27 +28035,6 @@
},
/turf/closed/wall,
/area/station/hallway/secondary/entry)
-"jEK" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/structure/table,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/fax{
- fax_name = "Cargo Office";
- name = "Cargo Office Fax Machine";
- pixel_y = 4
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
"jEQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -27356,6 +28051,19 @@
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"jFg" = (
+/obj/structure/table/wood/fancy/green,
+/obj/item/paperplane{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/obj/item/paperplane{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"jFh" = (
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
@@ -27440,6 +28148,15 @@
dir = 1
},
/area/station/hallway/secondary/entry)
+"jGC" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/white/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/corner{
+ dir = 8
+ },
+/area/station/cargo/storage)
"jGK" = (
/obj/structure/chair/wood,
/obj/structure/cable,
@@ -27533,6 +28250,11 @@
/mob/living/basic/sloth/citrus,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"jHC" = (
+/obj/effect/spawner/random/structure/crate,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"jHI" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 5
@@ -27551,6 +28273,21 @@
/obj/structure/chair/stool/directional/north,
/turf/open/floor/plating,
/area/station/maintenance/disposal/incinerator)
+"jHN" = (
+/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/department/electrical)
+"jHS" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering Storage"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment,
+/turf/open/floor/iron/smooth_half{
+ dir = 8
+ },
+/area/station/engineering/main)
"jHU" = (
/obj/structure/chair/sofa/bench/left{
dir = 8
@@ -27574,14 +28311,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
-"jIh" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"jIj" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -27600,6 +28329,12 @@
/obj/structure/window/spawner/directional/south,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"jIn" = (
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/vending/cytopro,
+/turf/open/floor/iron/white,
+/area/station/science/cytology)
"jIy" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -27621,73 +28356,48 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/cmo,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
-"jIH" = (
+"jJg" = (
+/obj/effect/turf_decal/siding/wideplating,
+/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/structure/railing{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
-"jIN" = (
-/obj/structure/disposalpipe/segment{
+/area/station/engineering/main)
+"jJw" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/white/line{
dir = 4
},
-/obj/effect/turf_decal/tile/brown{
+/turf/open/floor/iron/dark/side{
dir = 4
},
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/office)
-"jIY" = (
+/area/station/cargo/storage)
+"jJB" = (
/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/effect/turf_decal/tile/brown{
dir = 4
},
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/turf/open/floor/iron,
-/area/station/cargo/office)
-"jJc" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown{
+/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 4
},
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
-"jJd" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/green/opposingcorners,
-/obj/effect/turf_decal/tile/blue/opposingcorners{
- dir = 8
- },
-/obj/machinery/hydroponics/constructable,
+/obj/structure/cable,
/turf/open/floor/iron,
-/area/station/service/hydroponics)
-"jJg" = (
-/obj/effect/turf_decal/siding/wideplating,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/area/station/cargo/sorting)
+"jJO" = (
/obj/structure/disposalpipe/segment{
- dir = 6
+ dir = 5
},
+/obj/structure/chair/stool/directional/east,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/machinery/newscaster/directional/west,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood,
-/area/station/engineering/main)
+/area/station/maintenance/hallway/abandoned_recreation)
"jJP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -27727,6 +28437,14 @@
dir = 1
},
/area/station/science/xenobiology)
+"jKl" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"jKq" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -27737,21 +28455,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"jKu" = (
-/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/mining/glass{
- name = "Cargo Office"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/stairs{
- dir = 4
- },
-/area/station/cargo/office)
"jKJ" = (
/obj/machinery/door/window/right/directional/north,
/turf/open/floor/iron,
@@ -27778,20 +28481,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
-"jLr" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/neutral/line{
+"jLt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
-/obj/effect/turf_decal/trimline/neutral/line{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/white,
+/area/station/science/cytology)
"jLv" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -27850,12 +28546,6 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"jMb" = (
-/obj/effect/turf_decal/bot_white,
-/obj/structure/reagent_dispensers/fueltank,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/warehouse)
"jMp" = (
/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{
dir = 8
@@ -27881,15 +28571,6 @@
/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/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/engineering/atmos)
"jMX" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -27951,6 +28632,13 @@
/obj/machinery/status_display/evac/directional/west,
/turf/open/misc/sandy_dirt,
/area/station/hallway/primary/central/fore)
+"jNV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/smart/simple/orange/visible,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"jOb" = (
/obj/machinery/firealarm/directional/east,
/obj/effect/turf_decal/siding/wideplating/dark{
@@ -28033,6 +28721,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
+"jPl" = (
+/obj/machinery/button/ignition/incinerator/atmos,
+/turf/closed/wall/r_wall,
+/area/station/maintenance/disposal/incinerator)
"jPo" = (
/obj/structure/cable,
/obj/machinery/door/airlock/maintenance{
@@ -28082,6 +28774,14 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron/small,
/area/station/commons/fitness/locker_room)
+"jQG" = (
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"jQW" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -28420,11 +29120,6 @@
/obj/effect/mapping_helpers/airlock/access/all/security/general,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
-"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{
@@ -28530,19 +29225,6 @@
dir = 8
},
/area/station/hallway/secondary/dock)
-"jWZ" = (
-/obj/machinery/mineral/ore_redemption{
- dir = 4;
- input_dir = 8;
- output_dir = 4
- },
-/obj/machinery/door/window/right/directional/east{
- name = "Ore Redemtion Window"
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron/textured_large,
-/area/station/cargo/office)
"jXc" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -28706,21 +29388,9 @@
/obj/effect/mapping_helpers/airlock/access/all/command/teleporter,
/turf/open/floor/iron/dark/textured_half,
/area/station/command/teleporter)
-"jZc" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"jZl" = (
/turf/closed/wall/r_wall,
/area/station/engineering/atmospherics_engine)
-"jZn" = (
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark/side{
- dir = 1
- },
-/area/station/hallway/primary/central/fore)
"jZJ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/turf_decal/stripes/corner{
@@ -28929,16 +29599,6 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/white/small,
/area/station/science/server)
-"kee" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/item/food/grown/pineapple{
- pixel_x = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"kel" = (
/obj/machinery/light/cold/directional/south,
/obj/machinery/modular_computer/preset/id{
@@ -28973,22 +29633,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/station/science/lower)
-"keQ" = (
-/obj/effect/turf_decal/weather/dirt,
-/obj/effect/turf_decal/weather/dirt{
- dir = 1
- },
-/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,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/turf/open/floor/iron/dark/side,
-/area/station/cargo/office)
"kfv" = (
/obj/effect/turf_decal/stripes/red/line,
/obj/machinery/power/apc/auto_name/directional/east,
@@ -29061,6 +29705,16 @@
dir = 1
},
/area/station/hallway/primary/aft)
+"kgp" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"kgu" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/components/unary/passive_vent,
@@ -29113,6 +29767,24 @@
/obj/structure/tram,
/turf/open/floor/tram,
/area/station/security/tram)
+"khw" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/sorting)
"khD" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/reagent_dispensers/watertank,
@@ -29152,18 +29824,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"khZ" = (
-/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/dark,
-/area/station/cargo/office)
-"kia" = (
-/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/smooth,
-/area/station/cargo/warehouse)
"kii" = (
/obj/structure/flora/bush/flowers_yw/style_3{
pixel_y = -3
@@ -29183,6 +29843,12 @@
},
/turf/open/floor/grass/Airless,
/area/station/hallway/primary/central/aft)
+"kik" = (
+/obj/structure/chair/stool/directional/east,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"kit" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -29239,10 +29905,24 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/station/construction/mining/aux_base)
+"kiW" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"kiY" = (
/obj/structure/flora/tree/jungle/style_6,
/turf/open/floor/grass,
/area/station/service/chapel)
+"kjb" = (
+/obj/structure/hedge,
+/obj/structure/sign/poster/contraband/random/directional/east,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"kjg" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -29346,6 +30026,33 @@
/obj/machinery/light/small/dim/directional/east,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
+"kkD" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/obj/item/stack/package_wrap{
+ pixel_y = 2
+ },
+/obj/item/stack/package_wrap{
+ pixel_y = 6;
+ pixel_x = -1
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 5;
+ pixel_y = 0
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"kkK" = (
/obj/effect/spawner/random/structure/closet_maintenance,
/obj/effect/spawner/random/maintenance,
@@ -29401,6 +30108,13 @@
dir = 1
},
/area/station/engineering/atmos)
+"klA" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Plasma to Pure"
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"klF" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -29565,6 +30279,10 @@
"knv" = (
/turf/closed/wall,
/area/station/maintenance/department/engine/atmos)
+"knw" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/smooth_large,
+/area/station/engineering/supermatter/room)
"knB" = (
/obj/machinery/door/airlock{
id_tag = "Toilet2";
@@ -29582,12 +30300,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/port/aft)
-"knL" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/bot_white,
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"knO" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/airalarm/directional/east,
@@ -29596,6 +30308,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white/small,
/area/station/commons/toilet/restrooms)
+"knR" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"knV" = (
/obj/structure/closet/l3closet,
/obj/effect/turf_decal/stripes/line{
@@ -29638,19 +30355,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"kpT" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"kpU" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/turf/open/floor/iron/white,
@@ -29706,16 +30410,6 @@
},
/turf/open/floor/plating,
/area/station/medical/surgery/theatre)
-"kqL" = (
-/obj/structure/disposalpipe/junction/flip{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"kqM" = (
/obj/structure/cable,
/obj/item/reagent_containers/cup/bucket,
@@ -29742,38 +30436,11 @@
/obj/structure/cable,
/turf/open/floor/iron/small,
/area/station/medical/morgue)
-"kqQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"kqU" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/radio/intercom/directional/north,
/turf/open/floor/carpet/lone,
/area/station/service/abandoned_gambling_den)
-"kqW" = (
-/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/mining/glass{
- name = "Delivery Office"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "sci-entrance"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"kqX" = (
/turf/closed/wall,
/area/station/ai_monitored/aisat/exterior)
@@ -29889,15 +30556,12 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/iron/dark/diagonal,
/area/station/service/bar)
-"kso" = (
-/obj/structure/disposalpipe/junction{
- dir = 8
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
+"ksq" = (
+/obj/structure/chair/stool/directional/south,
+/obj/machinery/light/small/directional/north,
+/obj/structure/mirror/directional/north,
+/turf/open/floor/iron/grimy,
+/area/station/cargo/boutique)
"ksv" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 8
@@ -29905,33 +30569,6 @@
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/tram,
/area/station/maintenance/department/medical/central)
-"ksx" = (
-/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/mining/glass{
- name = "Cargo Office"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "sci-entrance"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
-"ksA" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"ksB" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -29943,6 +30580,10 @@
},
/turf/open/floor/catwalk_floor/iron,
/area/station/engineering/gravity_generator)
+"ksE" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"ksJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -30023,11 +30664,6 @@
},
/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)
"ktT" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -30044,28 +30680,6 @@
/obj/item/radio/intercom/prison/directional/west,
/turf/open/floor/iron/cafeteria,
/area/station/security/prison)
-"kua" = (
-/obj/structure/table,
-/obj/item/disk/cargo{
- pixel_x = 6
- },
-/obj/item/paper/crumpled{
- pixel_x = -7;
- pixel_y = 8
- },
-/obj/item/pen{
- pixel_x = -5
- },
-/obj/item/storage/fancy/cigarettes/cigpack_robust{
- pixel_x = 7;
- pixel_y = 15
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
-"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"
@@ -30213,6 +30827,20 @@
/obj/structure/window/spawner/directional/north,
/turf/open/space/basic,
/area/space/nearstation)
+"kxa" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/door/airlock/mining{
+ name = "Mining Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"kxb" = (
/obj/structure/table/reinforced/titaniumglass,
/obj/effect/turf_decal/bot,
@@ -30244,6 +30872,10 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
+"kxu" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/small,
+/area/station/cargo/lobby)
"kxE" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/airlock/research/glass{
@@ -30302,16 +30934,6 @@
/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,
@@ -30592,15 +31214,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"kFg" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"kFq" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -30635,22 +31248,6 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/smooth,
/area/station/cargo/sorting)
-"kFI" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/structure/table,
-/obj/effect/turf_decal/delivery/white,
-/obj/effect/spawner/random/food_or_drink/donkpockets{
- pixel_x = -9;
- pixel_y = 3
- },
-/obj/item/reagent_containers/cup/glass/waterbottle/large{
- pixel_x = 5;
- pixel_y = 20
- },
-/turf/open/floor/iron/smooth,
-/area/station/cargo/sorting)
"kFJ" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -30660,10 +31257,6 @@
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
/turf/open/floor/engine/n2o,
/area/station/engineering/atmos)
-"kFU" = (
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"kFY" = (
/turf/closed/wall/r_wall,
/area/station/medical/morgue)
@@ -30826,32 +31419,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"kIO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/table/reinforced,
-/obj/machinery/door/window/left/directional/west{
- name = "Cargo Desk";
- req_access = list("shipping")
- },
-/obj/structure/desk_bell{
- pixel_x = 7
- },
-/obj/item/paper_bin{
- pixel_x = -7;
- pixel_y = 6
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/item/pen{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/dark/textured_large,
-/area/station/cargo/office)
"kIQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -30874,17 +31441,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
-"kJb" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/dark/side{
- dir = 8
- },
-/area/station/hallway/primary/central/fore)
"kJj" = (
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment{
@@ -30908,6 +31464,14 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
/area/station/ai_monitored/security/armory)
+"kJu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/landmark/start/cargo_technician,
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"kJJ" = (
/obj/structure/cable,
/obj/effect/mapping_helpers/broken_floor,
@@ -30997,6 +31561,27 @@
"kMe" = (
/turf/open/floor/iron/smooth_large,
/area/station/engineering/supermatter/room)
+"kMg" = (
+/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
+ },
+/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,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
+/turf/open/floor/iron,
+/area/station/engineering/atmos/office)
"kMm" = (
/obj/structure/chair/sofa/right/brown{
dir = 1
@@ -31021,6 +31606,31 @@
/obj/machinery/holopad,
/turf/open/floor/iron/smooth,
/area/station/security/checkpoint/customs)
+"kMY" = (
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining{
+ name = "Bitrunning Den"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark/smooth_half{
+ dir = 1
+ },
+/area/station/cargo/bitrunning/den)
"kNf" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -31039,10 +31649,6 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
-"kNv" = (
-/obj/machinery/air_sensor/mix_tank,
-/turf/open/floor/engine/vacuum,
-/area/station/engineering/atmos)
"kNx" = (
/turf/open/floor/engine/o2,
/area/station/engineering/atmos)
@@ -31099,6 +31705,15 @@
/obj/structure/cable,
/turf/closed/wall/r_wall,
/area/station/maintenance/solars/port/aft)
+"kOA" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/sign/poster/random/directional/east,
+/obj/machinery/conveyor{
+ id = "mining"
+ },
+/obj/machinery/brm,
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"kOG" = (
/obj/structure/cable,
/obj/machinery/door/airlock/external{
@@ -31146,21 +31761,20 @@
/obj/machinery/light/cold/directional/south,
/turf/open/floor/iron/white/small,
/area/station/security/warden)
+"kPh" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/random/directional/north,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/aft)
"kPk" = (
/obj/structure/chair/sofa/bench{
dir = 1
},
/turf/open/floor/iron/dark/side,
/area/station/security/execution/transfer)
-"kPo" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"kPv" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -31205,6 +31819,15 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"kQj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"kQk" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -31219,6 +31842,9 @@
/obj/machinery/holopad,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"kRb" = (
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"kRi" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
dir = 4
@@ -31252,14 +31878,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"kRJ" = (
-/obj/structure/disposalpipe/segment,
-/obj/item/banner/cargo,
-/obj/effect/mapping_helpers/broken_floor,
-/obj/machinery/airalarm/directional/west,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"kRN" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/smooth_corner{
@@ -31295,11 +31913,6 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/dark/smooth_large,
/area/station/ai_monitored/turret_protected/ai_upload)
-"kSf" = (
-/obj/effect/mapping_helpers/broken_floor,
-/obj/machinery/holopad,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"kSj" = (
/obj/structure/chair/plastic{
dir = 8
@@ -31327,14 +31940,6 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
-"kSO" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/photocopier,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"kTm" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/siding/wood{
@@ -31449,20 +32054,6 @@
/obj/structure/chair/sofa/bench/left,
/turf/open/floor/stone,
/area/station/service/chapel)
-"kVn" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/red/fourcorners,
-/obj/machinery/recharger{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/radio/off{
- pixel_x = -6
- },
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"kVx" = (
/obj/effect/spawner/random/structure/closet_maintenance,
/obj/effect/spawner/random/maintenance,
@@ -31565,25 +32156,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
-"kXR" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"kXS" = (
/obj/structure/closet/emcloset,
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/plating,
/area/station/hallway/secondary/dock)
-"kYa" = (
-/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/brown/fourcorners,
-/obj/effect/landmark/navigate_destination/cargo,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"kYs" = (
/obj/machinery/mech_bay_recharge_port{
dir = 2
@@ -31599,10 +32176,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine,
/area/station/science/explab)
-"kYG" = (
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"kYI" = (
/obj/effect/turf_decal/sand/plating,
/obj/structure/chair/plastic{
@@ -31632,11 +32205,6 @@
},
/turf/open/floor/iron,
/area/station/science/cytology)
-"kYZ" = (
-/obj/structure/window/spawner/directional/east,
-/obj/structure/window/spawner/directional/south,
-/turf/open/floor/grass,
-/area/station/cargo/storage)
"kZh" = (
/obj/structure/table/glass,
/obj/effect/turf_decal/siding/thinplating_new/light{
@@ -31681,15 +32249,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/showroomfloor,
/area/station/medical/surgery/theatre)
-"kZB" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/machinery/light/cold/directional/north,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"kZC" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -31732,9 +32291,6 @@
},
/turf/open/floor/iron/small,
/area/station/hallway/primary/central/aft)
-"laD" = (
-/turf/open/floor/iron/dark,
-/area/station/hallway/primary/central/fore)
"laF" = (
/obj/structure/table,
/obj/effect/turf_decal/siding/thinplating_new/terracotta{
@@ -31763,15 +32319,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"laL" = (
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/effect/turf_decal/loading_area/white,
-/turf/open/floor/iron/dark/side{
- dir = 8
- },
-/area/station/hallway/primary/central/fore)
"laU" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -31788,35 +32335,10 @@
/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,
+"lbe" = (
/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
- },
-/obj/effect/turf_decal/stripes,
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/obj/machinery/light/small/directional/east,
-/obj/effect/landmark/start/bitrunner,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/cargo/bitrunning/den)
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
"lbG" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 1
@@ -31911,14 +32433,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
-"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)
@@ -32235,10 +32749,6 @@
/obj/item/camera,
/turf/open/floor/iron,
/area/station/security/prison/workout)
-"lhd" = (
-/obj/structure/water_source/puddle,
-/turf/open/floor/grass,
-/area/station/security/prison/garden)
"lhi" = (
/obj/machinery/airalarm/directional/north,
/obj/machinery/button/door/directional/north{
@@ -32541,19 +33051,22 @@
/obj/item/pen,
/turf/open/floor/iron,
/area/station/security/prison/rec)
-"lkI" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"lkJ" = (
/obj/structure/flora/rock/pile/jungle/style_4,
/turf/open/floor/grass,
/area/station/service/chapel)
+"lkL" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"lkN" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 1
@@ -32574,10 +33087,6 @@
"lkV" = (
/turf/closed/wall/r_wall,
/area/station/science/ordnance)
-"llg" = (
-/obj/effect/turf_decal/stripes/white/line,
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"llC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -32591,19 +33100,6 @@
},
/turf/open/floor/iron/dark/small,
/area/station/tcommsat/server)
-"llN" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"llP" = (
/obj/structure/cable,
/obj/structure/bed/medical{
@@ -32645,10 +33141,6 @@
/obj/effect/mapping_helpers/airlock/access/all/science/xenobio,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
-"lme" = (
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
"lmm" = (
/mob/living/basic/frog,
/obj/effect/turf_decal/weather/dirt{
@@ -32665,28 +33157,30 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"lmv" = (
-/obj/structure/disposalpipe/segment,
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
+"lmp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/chair/stool/directional/west,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"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,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
-"lmS" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"lmZ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
+/obj/effect/landmark/navigate_destination/bar,
+/obj/machinery/camera/autoname/directional/west,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"lnu" = (
/obj/machinery/holopad,
/turf/open/floor/iron/dark,
@@ -32737,6 +33231,17 @@
/obj/structure/ore_box,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"lnL" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"lnM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/window/brigdoor/right/directional/north{
@@ -32790,16 +33295,6 @@
},
/turf/open/floor/iron/dark,
/area/station/security/processing)
-"loj" = (
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/machinery/piratepad/civilian,
-/obj/effect/turf_decal/bot_white,
-/turf/open/floor/iron/dark/side{
- dir = 8
- },
-/area/station/hallway/primary/central/fore)
"lom" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -32924,14 +33419,6 @@
"lql" = (
/turf/open/floor/wood/parquet,
/area/station/service/library)
-"lqq" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/landmark/navigate_destination/chapel,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"lqt" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -32974,6 +33461,12 @@
/obj/effect/landmark/start/assistant,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
+"lrN" = (
+/obj/machinery/camera/directional/east{
+ c_tag = "Atmospherics Tank - Mix"
+ },
+/turf/open/floor/engine/vacuum,
+/area/station/engineering/atmos)
"lrP" = (
/obj/machinery/computer/security{
dir = 8
@@ -33008,6 +33501,10 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
+"lsH" = (
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"lsO" = (
/obj/machinery/status_display/evac/directional/south,
/turf/open/floor/iron/white/side{
@@ -33096,6 +33593,13 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/dorms)
+"lud" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light_switch/directional/south,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"lun" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/access/all/command/general,
@@ -33162,24 +33666,6 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
-"lvr" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/landmark/navigate_destination/bar,
-/obj/machinery/camera/autoname/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
-"lvu" = (
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron,
-/area/station/cargo/office)
"lvv" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -33227,6 +33713,13 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/iron/small,
/area/station/maintenance/department/engine/atmos)
+"lvN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"lvS" = (
/obj/machinery/porta_turret/ai{
dir = 4
@@ -33275,15 +33768,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance)
-"lwC" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/generic_maintenance_landmark,
-/obj/structure/table,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"lwI" = (
/obj/effect/turf_decal/tile/brown/opposingcorners,
/obj/machinery/computer/security/mining{
@@ -33342,17 +33826,10 @@
dir = 1
},
/area/station/commons/fitness/locker_room)
-"lxy" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/machinery/door/airlock/mining{
- name = "Mining Office"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+"lxE" = (
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"lxI" = (
/obj/effect/turf_decal/siding/wood/end,
/obj/effect/spawner/random/engineering/atmospherics_portable,
@@ -33457,13 +33934,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"lzA" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"lzB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -33494,51 +33964,10 @@
dir = 1
},
/area/station/command/bridge)
-"lzU" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/window/spawner/directional/west,
-/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
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = 2;
- pixel_y = 1
- },
-/obj/structure/railing{
- dir = 9
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
+"lAM" = (
+/obj/effect/spawner/random/structure/girder,
+/turf/open/floor/plating,
+/area/station/maintenance/department/electrical)
"lAO" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/effect/decal/cleanable/dirt,
@@ -33595,31 +34024,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/lobby)
-"lBn" = (
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/structure/table,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/item/radio,
-/obj/structure/railing{
- dir = 5
- },
-/obj/item/stamp{
- pixel_x = -12;
- pixel_y = 3
- },
-/obj/item/stamp/denied{
- pixel_x = -12;
- pixel_y = -2
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
"lBp" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -33681,14 +34085,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"lCg" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"lCh" = (
/obj/effect/turf_decal/tile/purple/opposingcorners,
/obj/effect/turf_decal/siding/green,
@@ -33810,16 +34206,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"lEm" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/effect/landmark/start/cargo_technician,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"lEs" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/tile/neutral/opposingcorners{
@@ -33870,26 +34256,16 @@
},
/turf/open/floor/wood/tile,
/area/station/maintenance/aft)
-"lEO" = (
-/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/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)
+"lFb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"lFg" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -33911,13 +34287,6 @@
/obj/machinery/exodrone_launcher,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
-"lFG" = (
-/obj/structure/disposalpipe/segment,
-/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)
"lGd" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/cleanable/dirt,
@@ -33930,10 +34299,6 @@
/obj/machinery/shower/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"lGk" = (
-/obj/machinery/pdapainter/supply,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"lGo" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/window/reinforced/spawner/directional/north,
@@ -33971,16 +34336,6 @@
/obj/machinery/light/cold/directional/north,
/turf/open/floor/iron,
/area/station/science/lower)
-"lGO" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/security/prison/garden)
-"lGT" = (
-/obj/structure/chair/stool/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
"lHb" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/computer/robotics,
@@ -34005,10 +34360,6 @@
},
/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)
"lHk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -34081,12 +34432,6 @@
/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,
@@ -34111,13 +34456,6 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
/turf/open/floor/iron/white/small,
/area/station/medical/medbay/lobby)
-"lIf" = (
-/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/grimy,
-/area/station/command/heads_quarters/qm)
"lIh" = (
/obj/structure/cable,
/obj/structure/disposalpipe/junction/flip{
@@ -34127,27 +34465,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/central)
-"lIn" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/chair/stool/directional/east,
-/obj/effect/landmark/start/quartermaster,
-/obj/structure/cable,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
-"lIq" = (
-/obj/structure/table/wood/fancy/green,
-/obj/item/paperplane{
- pixel_x = 7;
- pixel_y = 7
- },
-/obj/item/paperplane{
- pixel_x = -1;
- pixel_y = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"lIt" = (
/obj/effect/turf_decal/siding/thinplating_new/terracotta{
dir = 6
@@ -34155,12 +34472,6 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron/dark/small,
/area/station/maintenance/department/engine/atmos)
-"lIw" = (
-/obj/structure/chair/stool/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"lIL" = (
/obj/machinery/atmospherics/pipe/smart/simple/general/visible,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34202,18 +34513,18 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload_foyer)
-"lJV" = (
-/obj/structure/bed,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/bedsheet/qm,
-/obj/item/reagent_containers/cup/glass/bottle/tequila{
- pixel_x = -5;
- pixel_y = 2
+"lKf" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
},
-/obj/structure/sign/poster/contraband/random/directional/east,
-/obj/machinery/camera/autoname/directional/east,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/machinery/camera/autoname/directional/west,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"lKg" = (
/obj/machinery/firealarm/directional/east,
/turf/open/floor/wood,
@@ -34259,20 +34570,6 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
-"lKH" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/effect/turf_decal/stripes,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/obj/machinery/airalarm/directional/west,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/landmark/start/bitrunner,
-/turf/open/floor/iron/dark/smooth_half,
-/area/station/cargo/bitrunning/den)
"lKV" = (
/turf/open/floor/iron/smooth,
/area/station/commons/storage/tools)
@@ -34304,13 +34601,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/station/cargo/drone_bay)
-"lLq" = (
-/obj/machinery/firealarm/directional/east,
-/obj/effect/decal/cleanable/oil,
-/obj/machinery/byteforge,
-/obj/effect/turf_decal/box,
-/turf/open/floor/iron/dark/smooth_large,
-/area/station/cargo/bitrunning/den)
"lLr" = (
/obj/machinery/porta_turret/ai{
dir = 4
@@ -34386,14 +34676,6 @@
/obj/structure/holosign/barrier/atmos/tram,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
-"lMH" = (
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron/grimy,
-/area/station/service/library)
"lNf" = (
/obj/effect/turf_decal/siding/blue,
/turf/open/floor/iron/white/small,
@@ -34459,15 +34741,6 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron/diagonal,
/area/station/engineering/lobby)
-"lNN" = (
-/obj/structure/table,
-/obj/item/toy/foamblade,
-/obj/item/analyzer{
- pixel_y = 8;
- pixel_x = -9
- },
-/turf/open/floor/iron/dark/small,
-/area/station/commons/fitness/locker_room)
"lNQ" = (
/obj/effect/turf_decal/bot_white/right,
/obj/machinery/firealarm/directional/north,
@@ -34482,6 +34755,11 @@
/obj/effect/landmark/navigate_destination/court,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"lOg" = (
+/obj/effect/spawner/random/structure/grille,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"lOi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34535,6 +34813,30 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"lPv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_y = 3
+ },
+/obj/item/food/monkeycube/bee{
+ name = "monkey cube";
+ pixel_y = 17
+ },
+/obj/item/food/monkeycube/chicken{
+ pixel_y = 15;
+ pixel_x = 6;
+ name = "monkey cube";
+ desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!"
+ },
+/obj/item/wirecutters{
+ pixel_y = 6
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"lPC" = (
/obj/structure/bookcase/random,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -34551,12 +34853,6 @@
/obj/machinery/announcement_system,
/turf/open/floor/iron/grimy,
/area/station/tcommsat/server)
-"lPK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"lPO" = (
/obj/structure/table,
/obj/item/surgery_tray/full{
@@ -34619,12 +34915,6 @@
/obj/structure/broken_flooring/singular/directional/east,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"lRc" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"lRh" = (
/obj/effect/landmark/start/scientist,
/obj/machinery/light/small/directional/north,
@@ -34766,14 +35056,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/security/execution/transfer)
-"lTv" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"lTy" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 8
@@ -34792,14 +35074,6 @@
/obj/structure/chair/stool/directional/west,
/turf/open/floor/iron/small,
/area/station/maintenance/port/lesser)
-"lTN" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"lTU" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 10
@@ -34822,17 +35096,6 @@
"lUo" = (
/turf/open/floor/iron,
/area/station/science/lobby)
-"lUz" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 10
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"lUE" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -34876,15 +35139,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
-"lVv" = (
-/obj/structure/chair/stool/directional/south,
-/obj/effect/turf_decal/siding/yellow{
- dir = 1
- },
-/obj/effect/landmark/start/atmospheric_technician,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/engineering/break_room)
"lVy" = (
/obj/effect/turf_decal/tile/green/anticorner/contrasted{
dir = 8
@@ -34942,40 +35196,21 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
-"lWF" = (
-/obj/structure/disposalpipe/segment,
+"lWE" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/siding/red{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
-"lWR" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/wrapping_paper{
- pixel_x = -3;
- pixel_y = 5
- },
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
-"lWU" = (
-/obj/structure/table/wood,
+/obj/structure/table,
/obj/effect/decal/cleanable/dirt,
-/obj/item/folder/yellow{
- pixel_x = 3;
- pixel_y = 6
+/obj/item/tank/internals/emergency_oxygen{
+ pixel_x = 5;
+ pixel_y = 3
},
-/obj/item/dest_tagger{
- pixel_x = -11;
- pixel_y = 4
+/obj/item/gps{
+ pixel_y = 5;
+ pixel_x = 13
},
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
+/obj/item/storage/toolbox/emergency/old,
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"lWV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34993,10 +35228,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/station/security/checkpoint/supply)
-"lXf" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"lXg" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -35011,12 +35242,6 @@
dir = 4
},
/area/station/science/xenobiology)
-"lXn" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/closet/secure_closet/quartermaster,
-/obj/machinery/light_switch/directional/south,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"lXw" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -35045,6 +35270,15 @@
},
/turf/open/floor/wood/tile,
/area/station/science/lower)
+"lXM" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/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)
"lXR" = (
/obj/structure/disposalpipe/junction,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -35075,14 +35309,17 @@
/obj/machinery/light/warm/directional/north,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"lXY" = (
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+"lYe" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/window/spawner/directional/west,
+/obj/effect/turf_decal/stripes/end,
+/obj/structure/disposaloutlet{
dir = 1
},
-/obj/item/banner/cargo,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"lYf" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -35107,28 +35344,6 @@
},
/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,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"lYF" = (
/obj/effect/turf_decal/siding/yellow{
dir = 9
@@ -35269,17 +35484,6 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/hallway/secondary/dock)
-"lZP" = (
-/obj/structure/table,
-/obj/item/toy/eightball{
- pixel_x = -4
- },
-/obj/item/wirecutters{
- pixel_y = 17;
- pixel_x = 4
- },
-/turf/open/floor/iron/dark/small,
-/area/station/commons/fitness/locker_room)
"lZR" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/duct,
@@ -35292,6 +35496,12 @@
},
/turf/open/floor/grass,
/area/station/service/chapel)
+"mac" = (
+/obj/structure/hedge,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"mae" = (
/obj/structure/cable,
/turf/closed/wall,
@@ -35469,6 +35679,10 @@
/obj/effect/landmark/start/chief_medical_officer,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/cmo)
+"mdp" = (
+/obj/structure/water_source/puddle,
+/turf/open/floor/grass,
+/area/station/security/prison/garden)
"mdr" = (
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/tram,
@@ -35484,14 +35698,6 @@
/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{
- id = "mining";
- pixel_x = -10
- },
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"meh" = (
/obj/structure/railing{
dir = 4
@@ -35503,6 +35709,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"mek" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/holopad,
+/mob/living/basic/chick/permanent{
+ name = "Morgan"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"meu" = (
/turf/closed/wall,
/area/station/command/heads_quarters/captain)
@@ -35708,6 +35922,20 @@
/obj/item/clothing/under/costume/skeleton,
/turf/open/floor/eighties,
/area/station/service/abandoned_gambling_den/gaming)
+"mjh" = (
+/obj/structure/railing{
+ 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
+ },
+/obj/machinery/holopad,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable,
+/turf/open/floor/iron/small,
+/area/station/engineering/break_room)
"mjr" = (
/obj/machinery/vending/dinnerware,
/obj/machinery/requests_console/auto_name/directional/south,
@@ -35754,13 +35982,6 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
-"mjX" = (
-/obj/structure/closet/secure_closet/security/cargo,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"mka" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -35800,28 +36021,11 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron/white/textured_large,
/area/station/command/heads_quarters/cmo)
-"mkF" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"mkN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/maintenance/fore/greater)
-"mkO" = (
-/obj/structure/filingcabinet,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"mkZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/siding/wood{
@@ -35844,6 +36048,14 @@
/obj/structure/alien/weeds,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
+"mln" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/airlock_sensor/incinerator_atmos{
+ pixel_y = -20
+ },
+/turf/open/floor/engine,
+/area/station/maintenance/disposal/incinerator)
"mlp" = (
/obj/structure/chair/stool/bar/directional/south,
/obj/effect/turf_decal/siding/wood{
@@ -35851,13 +36063,6 @@
},
/turf/open/floor/wood,
/area/station/service/abandoned_gambling_den)
-"mlr" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/landmark/start/quartermaster,
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
"mls" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -35955,6 +36160,10 @@
},
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/electrical)
+"mmZ" = (
+/obj/effect/spawner/random/trash,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"mnb" = (
/obj/effect/turf_decal/stripes/white/corner{
dir = 4
@@ -36037,12 +36246,18 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/meeting_room)
-"mnZ" = (
-/obj/machinery/computer/cargo{
- dir = 4
+"mnU" = (
+/obj/structure/hedge,
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
-/turf/open/floor/plating,
-/area/station/cargo/storage)
+/obj/machinery/light_switch/directional/east,
+/obj/machinery/light/warm/directional/east,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"mog" = (
/obj/machinery/oven/range,
/obj/machinery/airalarm/directional/north,
@@ -36074,6 +36289,23 @@
/obj/machinery/door/firedoor,
/turf/open/floor/catwalk_floor/iron_white,
/area/station/science/research)
+"moq" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/sorting)
"mos" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/smooth,
@@ -36119,6 +36351,26 @@
},
/turf/open/floor/wood/parquet,
/area/station/medical/psychology)
+"mpL" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/crowbar/large{
+ pixel_y = 18
+ },
+/obj/item/clothing/head/costume/pirate{
+ pixel_x = 15;
+ pixel_y = -3
+ },
+/obj/item/clothing/suit/hazardvest{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/wrench{
+ pixel_y = 15
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"mpQ" = (
/obj/structure/bed{
dir = 4
@@ -36147,13 +36399,6 @@
},
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
-"mqz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/vending/wardrobe/curator_wardrobe,
-/turf/open/floor/iron/grimy,
-/area/station/service/library)
"mqH" = (
/obj/structure/cable,
/obj/effect/landmark/generic_maintenance_landmark,
@@ -36180,48 +36425,20 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
-"mrn" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"mrt" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
-"mrP" = (
-/obj/structure/disposalpipe/segment{
+"mrY" = (
+/obj/effect/turf_decal/siding/wood{
dir = 6
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/table,
-/obj/item/folder/red{
- pixel_y = 3
- },
-/obj/item/food/monkeycube/bee{
- name = "monkey cube";
- pixel_y = 17
- },
-/obj/item/food/monkeycube/chicken{
- pixel_y = 15;
- pixel_x = 6;
- name = "monkey cube";
- desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!"
- },
-/obj/item/wirecutters{
- pixel_y = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"msg" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -36241,12 +36458,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
-"msq" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/hallway/primary/central/fore)
"mss" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -36256,17 +36467,15 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"msy" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "Cargo Bay"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"msJ" = (
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
+"mta" = (
+/obj/structure/dresser,
+/obj/structure/sign/poster/contraband/random/directional/east,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"mtc" = (
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
@@ -36441,15 +36650,6 @@
/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{
@@ -36477,6 +36677,15 @@
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/turf/open/floor/iron,
/area/station/security/warden)
+"mxh" = (
+/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/iron,
+/area/station/cargo/lobby)
"mxp" = (
/obj/structure/table,
/obj/structure/railing/corner{
@@ -36623,10 +36832,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"mzv" = (
-/obj/docking_port/stationary/syndicate/northeast,
-/turf/open/space/basic,
-/area/space)
"mzx" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -36728,6 +36933,21 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
+"mCV" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
+"mCW" = (
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/item/banner/cargo,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"mDf" = (
/obj/structure/chair/wood{
dir = 8
@@ -36743,6 +36963,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"mDk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"mDl" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -36848,6 +37075,15 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/showroomfloor,
/area/station/security/prison/shower)
+"mFd" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/landmark/navigate_destination/chapel,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/primary/port)
"mFh" = (
/obj/effect/decal/cleanable/glass,
/obj/structure/table/reinforced/rglass,
@@ -36905,6 +37141,13 @@
/obj/structure/cable,
/turf/open/floor/eighties,
/area/station/service/abandoned_gambling_den/gaming)
+"mFQ" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"mGg" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -36972,6 +37215,12 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
+"mGI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/station/cargo/lobby)
"mGM" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/broken_flooring/singular/directional/south,
@@ -37063,6 +37312,20 @@
dir = 1
},
/area/station/science/lower)
+"mIp" = (
+/obj/effect/turf_decal/trimline/neutral/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/neutral/line{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"mIA" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -37093,13 +37356,6 @@
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/wood/tile,
/area/station/command/corporate_showroom)
-"mIE" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Public Shrine"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/stone,
-/area/station/hallway/primary/port)
"mIP" = (
/obj/structure/chair{
dir = 8
@@ -37238,15 +37494,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"mKB" = (
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=8";
- location = "QM #1"
- },
-/obj/effect/turf_decal/delivery,
-/mob/living/simple_animal/bot/mulebot,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"mKD" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/red{
@@ -37254,6 +37501,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
+"mKR" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/camera/autoname/directional/south,
+/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,
+/area/station/cargo/warehouse)
"mKY" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -37282,6 +37537,11 @@
},
/turf/open/floor/iron,
/area/station/security/processing)
+"mLz" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"mLA" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/west,
@@ -37411,6 +37671,14 @@
},
/turf/open/floor/wood/tile,
/area/station/command/meeting_room)
+"mOc" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Airlock"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
+/turf/open/floor/plating,
+/area/station/engineering/supermatter/room)
"mOk" = (
/obj/structure/table/glass,
/obj/item/folder/blue{
@@ -37520,16 +37788,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/smooth,
/area/station/command/bridge)
-"mQh" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/conveyor_switch/oneway{
- id = "QMLoad2";
- name = "Unloading Conveyor";
- pixel_x = -13;
- pixel_y = 3
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"mQz" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/structure/chair/office{
@@ -37581,6 +37839,12 @@
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"mRQ" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"mSa" = (
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
@@ -37635,11 +37899,6 @@
/obj/item/clothing/head/costume/foilhat,
/turf/open/floor/plating,
/area/station/cargo/boutique)
-"mTe" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/chair/stool/directional/north,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"mTl" = (
/turf/closed/wall,
/area/station/cargo/sorting)
@@ -37733,16 +37992,6 @@
},
/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{
@@ -37753,13 +38002,6 @@
/obj/structure/alien/weeds,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
-"mUt" = (
-/obj/structure/chair/stool/directional/south,
-/obj/structure/mirror/directional/north,
-/obj/machinery/light/small/directional/north,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/iron/grimy,
-/area/station/cargo/boutique)
"mUO" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
@@ -37871,6 +38113,17 @@
},
/turf/open/floor/iron/white/small,
/area/station/service/hydroponics)
+"mWU" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/chair{
+ dir = 4;
+ pixel_y = -2
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"mWY" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/structure/chair/sofa/bench/left{
@@ -37879,6 +38132,13 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron,
/area/station/security/processing)
+"mXb" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 10
+ },
+/obj/structure/flora/tree/jungle/style_2,
+/turf/open/floor/grass,
+/area/station/service/chapel)
"mXk" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/broken_flooring/singular/directional/east,
@@ -37961,6 +38221,15 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"mYE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/item/kirbyplants/random,
+/obj/machinery/firealarm/directional/south,
+/obj/item/storage/belt/utility,
+/turf/open/floor/iron/smooth,
+/area/station/commons/storage/tools)
"mYP" = (
/obj/structure/table,
/obj/item/storage/bag/tray/cafeteria{
@@ -38021,16 +38290,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"mZg" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"mZA" = (
/obj/effect/mapping_helpers/airlock/abandoned,
/obj/machinery/door/airlock/public/glass{
@@ -38066,6 +38325,9 @@
/obj/machinery/igniter/incinerator_ordmix,
/turf/open/floor/engine/vacuum,
/area/station/science/ordnance/burnchamber)
+"naB" = (
+/turf/closed/wall/rust,
+/area/station/cargo/lobby)
"naC" = (
/obj/structure/cable,
/obj/structure/broken_flooring/singular/directional/south,
@@ -38085,6 +38347,15 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/security/brig/entrance)
+"naK" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Engineering Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment,
+/turf/open/floor/iron/smooth_half{
+ dir = 8
+ },
+/area/station/maintenance/department/engine/atmos)
"naN" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock{
@@ -38111,10 +38382,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
-"nbN" = (
-/obj/effect/spawner/random/structure/girder,
-/turf/open/floor/plating,
-/area/station/maintenance/department/electrical)
"ncb" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
@@ -38293,6 +38560,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/security/prison)
+"nhk" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"nhl" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -38471,6 +38744,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
+"njv" = (
+/obj/structure/reagent_dispensers/wall/peppertank/directional/west,
+/obj/machinery/computer/records/security{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"njA" = (
/obj/machinery/photocopier,
/obj/structure/sign/poster/official/random/directional/north,
@@ -38526,6 +38809,14 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
+"nku" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"nkw" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/trimline/blue/filled/corner{
@@ -38649,26 +38940,29 @@
},
/turf/open/floor/iron/dark/textured_large,
/area/station/service/kitchen)
+"nmE" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"nmH" = (
/obj/structure/railing,
/obj/effect/turf_decal/siding/wideplating,
/turf/open/floor/wood,
/area/station/engineering/main)
-"nmX" = (
-/obj/machinery/power/apc/auto_name/directional/north,
+"nmV" = (
/obj/structure/cable,
-/turf/open/floor/mineral/titanium,
-/area/station/command/heads_quarters/ce)
-"nnc" = (
+/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
+"nmX" = (
+/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
+/turf/open/floor/mineral/titanium,
+/area/station/command/heads_quarters/ce)
"nnd" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
dir = 1
@@ -38818,21 +39112,6 @@
/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{
@@ -38918,20 +39197,6 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
-"nry" = (
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- dir = 8
- },
-/obj/structure/reagent_dispensers/wall/peppertank/directional/west,
-/obj/machinery/computer/records/security{
- dir = 4
- },
-/obj/machinery/requests_console/directional/south{
- department = "Security";
- name = "Security Requests Console"
- },
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"nsc" = (
/obj/structure/cable,
/obj/item/kirbyplants/organic/applebush,
@@ -38983,17 +39248,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"nsL" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/landmark/start/depsec/supply,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"nsO" = (
/obj/item/kirbyplants/random,
/obj/machinery/firealarm/directional/south,
@@ -39009,11 +39263,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
-"nsX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"nte" = (
/obj/structure/table/glass,
/obj/machinery/recharger,
@@ -39059,10 +39308,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"ntJ" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"ntK" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -39095,15 +39340,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/textured_half,
/area/station/commons/fitness/recreation/entertainment)
-"nua" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"num" = (
/obj/effect/turf_decal/sand/plating,
/turf/closed/wall,
@@ -39221,6 +39457,23 @@
},
/turf/open/floor/iron/recharge_floor,
/area/station/maintenance/port/aft)
+"nwb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
+"nwf" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"nwj" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -39255,14 +39508,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"nxo" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"nxD" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -39292,15 +39537,6 @@
/obj/machinery/keycard_auth/wall_mounted/directional/south,
/turf/open/floor/wood,
/area/station/command/heads_quarters/qm)
-"nxX" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"nyd" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -39360,14 +39596,6 @@
dir = 4
},
/area/station/science/lower)
-"nyE" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"nyH" = (
/turf/closed/wall,
/area/station/hallway/primary/aft)
@@ -39376,22 +39604,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/construction/mining/aux_base)
-"nyS" = (
-/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/command/glass{
- name = "Quartermaster's Office"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/qm,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/catwalk_floor/iron_smooth,
-/area/station/command/heads_quarters/qm)
"nyT" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -39412,6 +39624,18 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/dark,
/area/station/medical/pharmacy)
+"nzd" = (
+/obj/structure/filingcabinet,
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
+"nzy" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"nzA" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -39428,6 +39652,44 @@
"nzL" = (
/turf/closed/wall,
/area/station/science/ordnance/testlab)
+"nzO" = (
+/obj/structure/table,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/item/stamp/denied{
+ pixel_x = -1;
+ pixel_y = 8
+ },
+/obj/item/stamp{
+ pixel_x = -7;
+ pixel_y = 0
+ },
+/obj/item/radio{
+ pixel_x = 9;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
+"nzS" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/obj/machinery/button/door/incinerator_vent_atmos_aux{
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/obj/machinery/button/door/incinerator_vent_atmos_main{
+ pixel_x = 8;
+ pixel_y = 36
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/disposal/incinerator)
"nzU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -39798,12 +40060,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/grass,
/area/station/medical/virology)
-"nGu" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"nGA" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -39827,6 +40083,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
+"nHb" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/vending/wardrobe/curator_wardrobe,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"nHd" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -39835,37 +40100,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
-"nHp" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/poster/official/random/directional/north,
-/obj/item/radio{
- desc = "An old handheld radio. You could use it, if you really wanted to.";
- icon_state = "radio";
- name = "old radio";
- pixel_x = -6;
- pixel_y = 10
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
-"nHq" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/yellow{
- pixel_x = 13;
- pixel_y = 1
- },
-/obj/item/flashlight/lamp{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/clothing/ears/earmuffs{
- pixel_x = 15;
- pixel_y = 7
- },
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/engineering/break_room)
"nHu" = (
/obj/effect/spawner/random/structure/closet_maintenance,
/turf/open/floor/plating,
@@ -40008,6 +40242,17 @@
},
/turf/open/floor/plating,
/area/station/command/meeting_room)
+"nJK" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/obj/effect/turf_decal/siding/thinplating_new/light{
+ dir = 9
+ },
+/obj/machinery/light/small/dim/directional/north,
+/obj/effect/turf_decal/delivery/white{
+ color = "#52B4E9"
+ },
+/turf/open/floor/iron/white/small,
+/area/station/service/hydroponics)
"nJU" = (
/obj/machinery/conveyor{
dir = 4;
@@ -40027,13 +40272,6 @@
/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/visible,
-/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,
@@ -40048,6 +40286,14 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"nLi" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"nLk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -40062,12 +40308,6 @@
},
/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{
@@ -40091,6 +40331,23 @@
},
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
+"nLQ" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/cell_charger{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/item/stock_parts/power_store/cell/high{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/item/assembly/timer{
+ pixel_x = 14;
+ pixel_y = 6
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"nMk" = (
/obj/machinery/power/emitter/welded{
dir = 1
@@ -40119,13 +40376,6 @@
/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
-"nMV" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"nMW" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/red/line{
@@ -40222,19 +40472,17 @@
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/turf/open/floor/iron,
/area/station/security/brig/entrance)
+"nPg" = (
+/obj/effect/spawner/random/trash,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"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,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"nPu" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
@@ -40364,20 +40612,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/smooth,
/area/station/engineering/break_room)
-"nQE" = (
-/obj/structure/railing{
- 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
- },
-/obj/machinery/holopad,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable,
-/turf/open/floor/iron/small,
-/area/station/engineering/break_room)
"nQH" = (
/obj/structure/closet{
name = "Paramedic Supplies"
@@ -40401,12 +40635,6 @@
/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,
@@ -40474,12 +40702,6 @@
"nST" = (
/turf/open/floor/iron/small,
/area/station/maintenance/department/engine)
-"nSY" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"nTa" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -40489,22 +40711,6 @@
},
/turf/open/floor/iron/textured_half,
/area/station/hallway/primary/central/fore)
-"nTi" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/button/door/directional/east{
- id = "qm_warehouse";
- name = "Warehouse Door Control";
- pixel_x = -24;
- pixel_y = 24;
- req_access = list("cargo")
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"nTt" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/machinery/computer/shuttle/mining/common{
@@ -40571,13 +40777,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
-"nUx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"nUK" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/barricade/wooden/crude,
@@ -40792,12 +40991,6 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/smooth,
/area/station/maintenance/solars/port/aft)
-"nYQ" = (
-/obj/machinery/vending/wardrobe/cargo_wardrobe,
-/obj/machinery/camera/autoname/directional/south,
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"nZh" = (
/obj/structure/table,
/obj/item/stock_parts/scanning_module{
@@ -40906,6 +41099,23 @@
/obj/item/stock_parts/power_store/cell/high,
/turf/open/floor/iron/dark,
/area/station/science/robotics/lab)
+"oba" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow{
+ pixel_x = 13;
+ pixel_y = 1
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = 15;
+ pixel_y = 7
+ },
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/engineering/break_room)
"obb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -40926,6 +41136,10 @@
},
/turf/open/floor/iron/smooth,
/area/station/engineering/break_room)
+"obk" = (
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"obq" = (
/obj/structure/cable,
/obj/structure/lattice/catwalk,
@@ -40939,13 +41153,6 @@
/obj/machinery/power/apc/auto_name/directional/east,
/turf/open/floor/iron/white/small,
/area/station/science/ordnance/storage)
-"obH" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/structure/chair/stool/directional/south,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"obN" = (
/obj/structure/cable,
/obj/effect/spawner/random/maintenance,
@@ -40984,16 +41191,6 @@
/obj/machinery/computer/records/security,
/turf/open/floor/iron,
/area/station/security/brig/entrance)
-"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,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron/dark,
-/area/station/engineering/atmos/storage)
"odh" = (
/obj/effect/landmark/atmospheric_sanity/ignore_area,
/turf/open/floor/plating,
@@ -41030,12 +41227,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"oem" = (
-/obj/effect/turf_decal/stripes/white/line{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"oer" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
@@ -41118,6 +41309,15 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/small,
/area/station/command/heads_quarters/captain/private)
+"ogq" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/cold/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"ogr" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -41186,15 +41386,6 @@
dir = 1
},
/area/station/hallway/secondary/entry)
-"ohb" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/item/reagent_containers/pill,
-/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{
@@ -41202,13 +41393,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/storage)
-"ohj" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"ohk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41278,12 +41462,6 @@
/obj/machinery/light/cold/directional/east,
/turf/open/floor/iron/dark/small,
/area/station/security/checkpoint/customs)
-"ohN" = (
-/obj/item/radio/intercom/directional/north,
-/obj/machinery/firealarm/directional/west,
-/obj/machinery/vending/cytopro,
-/turf/open/floor/iron/white,
-/area/station/science/cytology)
"oig" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/turf_decal/stripes/corner{
@@ -41299,6 +41477,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"oim" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/structure/sign/warning/no_smoking/directional/east,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ois" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -41308,16 +41493,6 @@
/obj/item/storage/bag/xeno,
/turf/open/floor/iron/dark/small,
/area/station/science/xenobiology)
-"oiw" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/official/random/directional/south,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"oix" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -41332,13 +41507,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
-"oiL" = (
-/obj/machinery/computer/cargo{
- dir = 1
- },
-/obj/machinery/light_switch/directional/south,
-/turf/open/floor/plating,
-/area/station/cargo/office)
"oiP" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 1
@@ -41836,13 +42004,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
-"otG" = (
-/obj/structure/filingcabinet/filingcabinet,
-/obj/machinery/status_display/supply{
- pixel_y = -32
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"otJ" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/neutral/line{
@@ -41976,13 +42137,6 @@
dir = 1
},
/area/station/command/gateway)
-"owl" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"owm" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -42020,13 +42174,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/aft)
-"owM" = (
-/obj/effect/turf_decal/stripes/white/line{
- dir = 5
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"owP" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/delivery/white,
@@ -42086,13 +42233,20 @@
},
/turf/open/floor/wood/parquet,
/area/station/service/library)
-"oxw" = (
+"oxt" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 9
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"oyn" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/public/glass{
@@ -42100,18 +42254,15 @@
},
/turf/open/floor/iron/textured_half,
/area/station/maintenance/hallway/abandoned_command)
-"oyp" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"oyq" = (
/obj/machinery/light/warm/directional/south,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"oyv" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"oyz" = (
/obj/structure/flora/grass/jungle/b/style_3,
/obj/effect/turf_decal/weather/dirt{
@@ -42120,6 +42271,13 @@
/obj/structure/cable,
/turf/open/floor/grass,
/area/station/service/chapel)
+"oyH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/red,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"oyQ" = (
/turf/closed/wall,
/area/station/science/auxlab/firing_range)
@@ -42139,10 +42297,6 @@
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"oyZ" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"ozn" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -42245,6 +42399,20 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmospherics_engine)
+"oBO" = (
+/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,
+/obj/machinery/airlock_controller/incinerator_atmos{
+ pixel_x = -40;
+ pixel_y = -8
+ },
+/turf/open/floor/engine,
+/area/station/maintenance/disposal/incinerator)
"oBP" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -42320,9 +42488,6 @@
/obj/machinery/air_sensor/helium_tank,
/turf/open/floor/engine/helium,
/area/station/ai_monitored/turret_protected/ai)
-"oCG" = (
-/turf/closed/wall/rust,
-/area/station/cargo/bitrunning/den)
"oCM" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/broken_flooring/pile/directional/east,
@@ -42418,6 +42583,15 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"oEL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"oFc" = (
/obj/effect/spawner/random/trash,
/obj/machinery/light/small/directional/west,
@@ -42433,23 +42607,6 @@
dir = 4
},
/area/station/maintenance/starboard/greater)
-"oFi" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/conveyor{
- dir = 1;
- id = "packageSort2"
- },
-/obj/structure/window/spawner/directional/west,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"oFu" = (
/turf/closed/wall,
/area/station/security/office)
@@ -42740,10 +42897,6 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"oJR" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"oKb" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 8
@@ -42812,6 +42965,12 @@
},
/turf/open/floor/iron/white/small,
/area/station/commons/toilet/restrooms)
+"oLE" = (
+/obj/structure/chair/stool/directional/west,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/sign/poster/official/random/directional/north,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"oLV" = (
/obj/machinery/camera/autoname/directional/south,
/obj/structure/cable,
@@ -42871,13 +43030,11 @@
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)
+"oNQ" = (
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/station/service/chapel/office)
"oNX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -42893,6 +43050,13 @@
/obj/effect/spawner/random/engineering/atmospherics_portable,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
+"oOf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"oOg" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/north,
@@ -42915,6 +43079,14 @@
},
/turf/open/floor/plating,
/area/station/construction/mining/aux_base)
+"oOm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/stool/directional/east,
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/sign/poster/official/random/directional/north,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"oOp" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/light/cold/directional/east,
@@ -43004,34 +43176,9 @@
/obj/structure/cable,
/turf/open/floor/iron/small,
/area/station/hallway/secondary/service)
-"oPi" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/button/door/directional/east{
- id = "qm_warehouse_aft";
- name = "Warehouse Door Control";
- pixel_x = -24;
- pixel_y = -23;
- req_access = list("cargo")
- },
-/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{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"oPy" = (
/obj/structure/bookcase/random,
/obj/structure/sign/painting/library{
@@ -43112,6 +43259,16 @@
/obj/effect/turf_decal/siding/wideplating,
/turf/open/floor/wood,
/area/station/engineering/atmos/pumproom)
+"oQP" = (
+/obj/effect/turf_decal/trimline/neutral/line{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/neutral/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"oRj" = (
/obj/effect/turf_decal/siding/yellow{
dir = 8
@@ -43224,16 +43381,6 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
-"oSg" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/siding/red/corner,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"oSv" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/computer/rdconsole{
@@ -43241,12 +43388,12 @@
},
/turf/open/floor/iron/smooth,
/area/station/command/bridge)
-"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)
+"oSB" = (
+/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)
"oTf" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -43514,10 +43661,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"oYf" = (
-/obj/machinery/button/ignition/incinerator/atmos,
-/turf/closed/wall/r_wall,
-/area/station/maintenance/disposal/incinerator)
"oYi" = (
/obj/effect/turf_decal/trimline/neutral/line,
/obj/effect/turf_decal/trimline/neutral/line{
@@ -43623,6 +43766,18 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
+"oZZ" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/start/depsec/supply,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"pan" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -43741,6 +43896,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"pbV" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"pca" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/red/line{
@@ -43880,17 +44041,10 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
-"pep" = (
-/obj/structure/cable,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "sci-entrance"
- },
-/obj/machinery/door/airlock/maintenance{
- name = "Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+"peE" = (
+/obj/structure/closet,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"peN" = (
/obj/structure/lattice,
/obj/machinery/camera/motion/directional/north{
@@ -44098,21 +44252,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/showroomfloor,
/area/station/command/corporate_showroom)
-"pih" = (
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/obj/structure/window/spawner/directional/west,
-/obj/effect/turf_decal/stripes/end,
-/obj/structure/disposaloutlet{
- dir = 1
- },
-/obj/machinery/status_display/supply{
- pixel_x = 32
- },
-/obj/machinery/light/cold/directional/east,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"pil" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock{
@@ -44196,23 +44335,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"pjG" = (
-/obj/machinery/light_switch/directional/north,
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
-"pjL" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"pjT" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -44363,6 +44485,12 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/science/auxlab/firing_range)
+"pmD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/tile/red/half/contrasted,
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"pmE" = (
/obj/effect/turf_decal/tile/yellow/diagonal_centre,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -44427,11 +44555,6 @@
/obj/structure/flora/bush/jungle/c/style_random,
/turf/open/floor/grass,
/area/station/service/chapel)
-"pnO" = (
-/obj/structure/cable,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
-/area/station/maintenance/disposal/incinerator)
"pnQ" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 6
@@ -44514,19 +44637,6 @@
},
/turf/open/floor/iron/dark/small,
/area/station/hallway/primary/fore)
-"poM" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/conveyor_switch/oneway{
- dir = 8;
- id = "QMLoad";
- name = "Loading Conveyor";
- pixel_x = -13;
- pixel_y = 19
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"poU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -44588,6 +44698,16 @@
/obj/effect/spawner/random/engineering/atmospherics_portable,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
+"ppP" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"ppQ" = (
/obj/effect/turf_decal/stripes/box,
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
@@ -44619,15 +44739,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/storage)
-"pqv" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/spawner/random/trash,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"pqK" = (
/obj/structure/cable,
/obj/machinery/door/window/left/directional/south,
@@ -44656,10 +44767,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
-"prd" = (
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron/smooth_large,
-/area/station/engineering/supermatter/room)
"prf" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -44821,6 +44928,10 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"puk" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/station/cargo/lobby)
"pus" = (
/obj/effect/turf_decal/box/red/corners,
/obj/effect/turf_decal/stripes/white/line{
@@ -44878,16 +44989,6 @@
},
/turf/open/floor/iron/white/side,
/area/station/science/research)
-"pwJ" = (
-/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/light/small/directional/north,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"pwN" = (
/turf/open/floor/iron/dark/small,
/area/station/service/chapel/storage)
@@ -44959,13 +45060,6 @@
/obj/machinery/light/floor,
/turf/open/floor/grass,
/area/station/service/chapel)
-"pyA" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"pyF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -44983,6 +45077,13 @@
"pzd" = (
/turf/closed/wall,
/area/station/commons/fitness/recreation/entertainment)
+"pzk" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"pzy" = (
/obj/structure/table,
/obj/item/storage/box/prisoner{
@@ -45094,6 +45195,22 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"pBo" = (
+/obj/structure/table/wood,
+/obj/item/folder/white{
+ pixel_x = -3;
+ pixel_y = 0
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/structure/sign/poster/official/random/directional/north,
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"pBu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/neutral{
@@ -45448,28 +45565,11 @@
/obj/structure/alien/weeds,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
-"pHo" = (
-/obj/structure/rack,
-/obj/item/storage/medkit/regular,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"pHq" = (
/obj/machinery/camera/autoname/directional/south,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"pHs" = (
-/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/red{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"pHw" = (
/obj/structure/table,
/obj/effect/decal/cleanable/dirt,
@@ -45548,30 +45648,16 @@
},
/turf/open/floor/iron/dark/small,
/area/station/commons/fitness/locker_room)
-"pIi" = (
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/rack,
-/obj/item/clothing/ears/earmuffs{
- pixel_x = -3;
- pixel_y = -2
- },
-/obj/item/clothing/ears/earmuffs{
- pixel_x = -8;
- pixel_y = 11
- },
-/obj/item/clothing/ears/earmuffs{
- pixel_x = 4;
- pixel_y = 6
- },
-/obj/item/pickaxe,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/white/corner{
- dir = 8
+"pIg" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/station/cargo/miningfoundry)
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"pIn" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -45581,6 +45667,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
+"pIo" = (
+/obj/machinery/computer/order_console/bitrunning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/cargo/bitrunning/den)
"pIp" = (
/obj/machinery/light/small/directional/west,
/obj/effect/turf_decal/stripes/white/line{
@@ -45627,12 +45719,6 @@
/obj/effect/landmark/start/cargo_technician,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"pJn" = (
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/iron/stairs{
- dir = 8
- },
-/area/station/cargo/storage)
"pJr" = (
/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/plating,
@@ -45667,13 +45753,6 @@
/obj/machinery/firealarm/directional/west,
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
-"pJQ" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"pKi" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -45845,6 +45924,26 @@
},
/turf/open/floor/plating,
/area/station/engineering/gravity_generator)
+"pMX" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/station/service/chapel/office)
+"pNa" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/sorting)
"pNh" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -45892,18 +45991,6 @@
},
/turf/closed/wall,
/area/station/commons/fitness/locker_room)
-"pOg" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/holopad,
-/turf/open/floor/iron,
-/area/station/cargo/office)
"pOi" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -46021,16 +46108,6 @@
/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,
@@ -46143,6 +46220,10 @@
/obj/effect/mapping_helpers/airlock/access/any/security/general,
/turf/open/floor/iron/textured_half,
/area/station/security/checkpoint/customs/auxiliary)
+"pRO" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"pRQ" = (
/obj/effect/turf_decal/tile/blue/half/contrasted,
/turf/open/floor/iron/white,
@@ -46190,15 +46271,6 @@
},
/turf/open/floor/plating,
/area/station/science/ordnance/testlab)
-"pSI" = (
-/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,
@@ -46260,6 +46332,12 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"pTK" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/station/maintenance/department/engine/atmos)
"pTZ" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -46282,6 +46360,7 @@
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer"
},
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
"pUx" = (
@@ -46397,6 +46476,12 @@
},
/turf/open/floor/iron/dark/side,
/area/station/science/xenobiology)
+"pVV" = (
+/obj/machinery/camera/autoname/directional/west,
+/turf/open/floor/iron/stairs{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"pWl" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -46633,10 +46718,11 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"pZu" = (
-/obj/structure/hedge,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
+"pZt" = (
+/obj/structure/chair/stool/directional/west,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"pZv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral{
@@ -46647,18 +46733,22 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"pZz" = (
-/obj/structure/rack,
-/obj/item/clothing/gloves/cargo_gauntlet{
- pixel_y = -3
+"pZC" = (
+/obj/structure/table/wood,
+/obj/item/folder{
+ pixel_x = 1;
+ pixel_y = 4
},
-/obj/item/clothing/gloves/cargo_gauntlet,
-/obj/item/clothing/gloves/cargo_gauntlet{
- pixel_y = 3
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
},
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/structure/sign/poster/official/tactical_game_cards/directional/north,
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"pZK" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -47034,15 +47124,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white/small,
/area/station/commons/toilet/restrooms)
-"qgK" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+"qgX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/item/kirbyplants/random,
-/obj/machinery/firealarm/directional/south,
-/obj/item/storage/belt/utility,
-/turf/open/floor/iron/smooth,
-/area/station/commons/storage/tools)
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
+"qgZ" = (
+/turf/open/floor/carpet/lone,
+/area/station/service/chapel/office)
"qhh" = (
/obj/structure/cable,
/obj/structure/table/glass,
@@ -47061,16 +47153,6 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron/white,
/area/station/science/cytology)
-"qht" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "CO2 to Pure"
- },
-/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
- dir = 4
- },
-/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,
@@ -47100,6 +47182,15 @@
},
/turf/open/floor/iron/dark/diagonal,
/area/station/service/bar)
+"qhU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"qhV" = (
/obj/structure/table,
/obj/machinery/fax{
@@ -47199,11 +47290,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/station/hallway/secondary/exit/departure_lounge)
-"qjn" = (
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/table,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"qjp" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
@@ -47293,6 +47379,13 @@
/obj/machinery/power/terminal,
/turf/open/floor/iron/smooth_large,
/area/station/engineering/supermatter/room)
+"qkC" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"qkK" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -47368,7 +47461,7 @@
/obj/machinery/door/airlock/maintenance{
name = "Atmospherics Maintenance"
},
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
"qmz" = (
@@ -47443,6 +47536,16 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/white/small,
/area/station/science/ordnance/storage)
+"qnU" = (
+/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/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"qoj" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/window/right/directional/west{
@@ -47527,6 +47630,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
+"qqB" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ location = "QM #2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"qqC" = (
/obj/structure/chair/comfy/carp{
dir = 1
@@ -47565,6 +47681,15 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/science/xenobiology)
+"qrJ" = (
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
+"qrW" = (
+/obj/machinery/portable_atmospherics/canister/plasma,
+/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
+/turf/open/floor/engine/plasma,
+/area/station/engineering/atmos)
"qsg" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/power/terminal,
@@ -47620,15 +47745,6 @@
"qtd" = (
/turf/open/floor/wood/tile,
/area/station/command/corporate_showroom)
-"qto" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"qtE" = (
/obj/structure/bed{
dir = 4
@@ -47653,18 +47769,16 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
-"qul" = (
-/obj/machinery/light/small/directional/east,
-/obj/machinery/light_switch/directional/east,
-/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch,
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/white/corner{
- dir = 4
+"qtW" = (
+/obj/machinery/door/morgue{
+ name = "Private Study";
+ req_access = list("library")
},
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/maintenance/central/greater)
"quq" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/closet/crate/cardboard,
@@ -47830,15 +47944,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/tcommsat/server)
-"qxF" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/plating/elevatorshaft,
-/area/station/engineering/break_room)
"qxN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -48168,6 +48273,34 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/dark,
/area/station/science/xenobiology)
+"qCG" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/obj/item/radio{
+ desc = "An old handheld radio. You could use it, if you really wanted to.";
+ icon_state = "radio";
+ name = "old radio";
+ pixel_x = -4;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_x = 15;
+ pixel_y = 8
+ },
+/obj/effect/spawner/random/food_or_drink/donuts{
+ pixel_x = 8;
+ pixel_y = 0
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"qCJ" = (
/obj/structure/cable,
/obj/effect/turf_decal/siding/wood{
@@ -48320,11 +48453,6 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
-"qDP" = (
-/obj/structure/chair/stool/directional/north,
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"qEe" = (
/turf/open/floor/iron/white/side{
dir = 8
@@ -48752,24 +48880,32 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron,
/area/station/security/courtroom)
-"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/structure/cable,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"qMG" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable,
/turf/open/floor/iron/small,
/area/station/maintenance/department/electrical)
+"qMI" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/white/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/corner{
+ dir = 4
+ },
+/area/station/cargo/storage)
"qMK" = (
/turf/closed/wall,
/area/station/command/bridge)
+"qMM" = (
+/obj/machinery/firealarm/directional/south,
+/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/cargo/storage)
"qMP" = (
/obj/structure/closet/firecloset,
/obj/structure/sign/poster/official/random/directional/north,
@@ -48940,13 +49076,6 @@
dir = 1
},
/area/station/science/lower)
-"qQP" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"qQR" = (
/obj/structure/table/wood,
/obj/machinery/light/small/directional/south,
@@ -48978,9 +49107,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
-"qRq" = (
-/turf/closed/wall/rust,
-/area/station/security/checkpoint/supply)
"qRs" = (
/obj/structure/chair/stool/directional/north,
/obj/machinery/light/small/directional/south,
@@ -49061,27 +49187,17 @@
/obj/machinery/portable_atmospherics/canister/nitrogen,
/turf/open/floor/iron/smooth_large,
/area/station/science/ordnance/storage)
+"qSF" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"qSH" = (
/obj/effect/turf_decal/bot_white,
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/iron/smooth_large,
/area/station/cargo/warehouse)
-"qSS" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/red/fourcorners,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
- },
-/obj/item/pen{
- pixel_x = 1;
- pixel_y = 9
- },
-/obj/item/book/manual/wiki/security_space_law,
-/obj/item/radio/intercom/directional/east,
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/iron/smooth,
-/area/station/security/checkpoint/supply)
"qSZ" = (
/obj/structure/hedge,
/obj/machinery/light/cold/directional/west,
@@ -49153,6 +49269,11 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/wood,
/area/station/cargo/boutique)
+"qTS" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"qUa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -49519,6 +49640,17 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/iron/dark/small,
/area/station/security/tram)
+"qYq" = (
+/obj/machinery/door/airlock/wood{
+ desc = "Sessions held every Friday.";
+ name = "The Sunfinder Society"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
+/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/port/greater)
"qYr" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -49568,6 +49700,12 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
+"qYG" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"qYK" = (
/obj/structure/disposalpipe/trunk,
/obj/structure/window/reinforced/spawner/directional/west,
@@ -49660,6 +49798,26 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/science/ordnance/storage)
+"qZX" = (
+/obj/effect/decal/cleanable/molten_object,
+/obj/effect/landmark/event_spawn,
+/obj/structure/table,
+/obj/item/reagent_containers/cup/bottle/welding_fuel{
+ pixel_y = -3;
+ pixel_x = 13
+ },
+/obj/item/stack/sheet/iron/ten{
+ pixel_y = -6;
+ pixel_x = -2
+ },
+/obj/item/hand_labeler{
+ pixel_y = -15
+ },
+/obj/item/reagent_containers/cup/watering_can{
+ pixel_y = 12
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
"raf" = (
/obj/structure/reagent_dispensers/water_cooler,
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
@@ -49764,6 +49922,14 @@
},
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
+"rbT" = (
+/obj/effect/landmark/navigate_destination/cargo,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"rbW" = (
/obj/machinery/door/airlock{
name = "Maintenance"
@@ -49923,6 +50089,24 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
+"rev" = (
+/obj/machinery/requests_console/directional/south{
+ department = "Security";
+ name = "Security Requests Console"
+ },
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/off{
+ pixel_x = -6
+ },
+/obj/machinery/recharger{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"rex" = (
/obj/effect/turf_decal/tile/neutral/full,
/obj/effect/decal/cleanable/dirt,
@@ -50022,6 +50206,11 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/glass,
/area/station/command/heads_quarters/rd)
+"rfP" = (
+/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)
"rfT" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 5
@@ -50125,6 +50314,12 @@
/obj/structure/chair/office,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
+"rhF" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"rhH" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -50140,15 +50335,6 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron/grimy,
/area/station/commons/vacant_room/office)
-"rie" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/start/cargo_technician,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
-"rif" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"rig" = (
/obj/machinery/door/poddoor/massdriver_chapel,
/turf/open/floor/plating,
@@ -50329,6 +50515,14 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
+"rmc" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/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/cargo/sorting)
"rmk" = (
/obj/effect/turf_decal/weather/dirt,
/obj/structure/flora/bush/jungle/c/style_3{
@@ -50391,13 +50585,6 @@
/obj/structure/thermoplastic/light,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
-"roi" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"roq" = (
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/wood/tile,
@@ -50504,9 +50691,6 @@
},
/turf/open/floor/iron/dark,
/area/station/security/office)
-"rqq" = (
-/turf/open/floor/catwalk_floor/iron_dark,
-/area/station/cargo/office)
"rqt" = (
/obj/machinery/airalarm/directional/north,
/obj/effect/decal/cleanable/dirt,
@@ -50552,10 +50736,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
-"rrq" = (
-/obj/structure/closet,
-/turf/open/floor/plating,
-/area/station/cargo/office)
"rrt" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
@@ -50569,6 +50749,12 @@
},
/turf/open/floor/iron/small,
/area/station/engineering/atmos/pumproom)
+"rrJ" = (
+/obj/structure/filingcabinet/filingcabinet,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"rrQ" = (
/obj/item/kirbyplants/random/fullysynthetic,
/obj/effect/turf_decal/tile/dark_red/half/contrasted,
@@ -50679,6 +50865,17 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/small,
/area/station/ai_monitored/command/storage/eva)
+"rtH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 8
+ },
+/area/station/cargo/storage)
"rtI" = (
/turf/open/floor/iron/white/corner{
dir = 8
@@ -50761,14 +50958,6 @@
"ruD" = (
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
-"ruR" = (
-/obj/machinery/door/airlock/engineering{
- name = "Engine Airlock"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
-/turf/open/floor/plating,
-/area/station/engineering/supermatter/room)
"ruS" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -51040,6 +51229,16 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"ryX" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ location = "QM #1"
+ },
+/obj/effect/turf_decal/delivery,
+/mob/living/simple_animal/bot/mulebot,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rza" = (
/obj/structure/disposalpipe/junction{
dir = 1
@@ -51089,15 +51288,17 @@
dir = 1
},
/area/station/hallway/secondary/entry)
-"rzL" = (
-/obj/structure/sign/poster/random/directional/south,
-/obj/machinery/conveyor{
- id = "mining";
- dir = 10
+"rzX" = (
+/obj/structure/hedge,
+/obj/machinery/status_display/supply{
+ pixel_y = -32
},
-/obj/machinery/bouldertech/refinery,
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/storage)
"rzZ" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/spawner/random/maintenance,
@@ -51168,10 +51369,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/science/ordnance/testlab)
-"rBh" = (
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"rBq" = (
/obj/structure/cable,
/obj/structure/table/reinforced,
@@ -51256,18 +51453,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet/lone,
/area/station/service/abandoned_gambling_den)
-"rDc" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/yellow{
- dir = 4
- },
-/obj/effect/spawner/random/food_or_drink/donkpockets{
- pixel_y = 6
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/engineering/break_room)
"rDj" = (
/obj/structure/chair/sofa/bench/left{
dir = 8
@@ -51278,6 +51463,14 @@
dir = 4
},
/area/station/hallway/secondary/entry)
+"rDs" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Filing Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/structure/cable,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/cargo/lobby)
"rDv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/light/cold/directional/west,
@@ -51357,6 +51550,11 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"rEV" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/security/prison/garden)
"rEW" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -51377,25 +51575,6 @@
dir = 1
},
/area/station/command/heads_quarters/hop)
-"rFa" = (
-/obj/structure/disposalpipe/trunk{
- dir = 2
- },
-/obj/machinery/disposal/delivery_chute{
- name = "Service Deliveries"
- },
-/obj/structure/sign/departments/botany/directional/north,
-/obj/effect/turf_decal/tile/green/fourcorners,
-/obj/structure/plasticflaps{
- name = "Service Deliveries"
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/effect/turf_decal/delivery/white,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rFb" = (
/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
/obj/effect/turf_decal/tile/yellow,
@@ -51408,6 +51587,12 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"rFm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"rFn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral,
@@ -51425,6 +51610,17 @@
dir = 4
},
/area/station/science/ordnance/testlab)
+"rFv" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/thinplating_new/end{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/station/cargo/storage)
"rFy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -51456,41 +51652,16 @@
dir = 6
},
/area/station/science/research)
-"rFP" = (
-/obj/structure/disposalpipe/trunk{
- dir = 2
- },
-/obj/machinery/disposal/delivery_chute{
- name = "Security Deliveries"
- },
-/obj/structure/sign/departments/security/directional/north,
-/obj/effect/turf_decal/tile/red/fourcorners,
-/obj/structure/plasticflaps{
- name = "Security Deliveries"
- },
-/obj/effect/turf_decal/delivery/white,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
+"rFU" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/carpet/lone,
+/area/station/service/chapel/office)
"rFV" = (
/obj/effect/turf_decal/trimline/blue/filled/corner,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
-"rFW" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/machinery/disposal/delivery_chute{
- name = "Engineering Deliveries"
- },
-/obj/structure/sign/departments/engineering/directional/north,
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/obj/structure/plasticflaps{
- name = "Engineering Deliveries"
- },
-/obj/effect/turf_decal/delivery/white,
-/obj/machinery/light/cold/directional/north,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rGp" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -51501,19 +51672,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white/small,
/area/station/science/ordnance/storage)
-"rGq" = (
-/obj/structure/disposalpipe/trunk,
-/obj/machinery/disposal/delivery_chute{
- name = "Science Deliveries"
- },
-/obj/structure/sign/departments/science/directional/north,
-/obj/effect/turf_decal/tile/purple/fourcorners,
-/obj/structure/plasticflaps{
- name = "Science Deliveries"
- },
-/obj/effect/turf_decal/delivery/white,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rGB" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -51530,10 +51688,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"rGN" = (
-/obj/effect/spawner/random/structure/crate,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"rGO" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -51661,6 +51815,30 @@
},
/turf/open/floor/grass,
/area/station/science/xenobiology)
+"rJB" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
+"rJL" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
+"rJQ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rJW" = (
/obj/machinery/suit_storage_unit/hos,
/obj/effect/decal/cleanable/dirt,
@@ -51674,6 +51852,11 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"rKn" = (
+/obj/structure/cable,
+/obj/item/banner/cargo,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"rKv" = (
/obj/structure/broken_flooring/singular/directional/east,
/turf/open/floor/iron,
@@ -51719,6 +51902,13 @@
},
/turf/open/floor/engine,
/area/station/science/explab)
+"rLp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rLr" = (
/obj/machinery/door/poddoor/incinerator_ordmix,
/turf/open/floor/engine/vacuum,
@@ -51974,6 +52164,15 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"rPM" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/station/cargo/storage)
"rPT" = (
/obj/structure/chair/stool/bar/directional/east,
/obj/effect/turf_decal/siding/red/corner{
@@ -52071,6 +52270,17 @@
dir = 1
},
/area/station/security/courtroom)
+"rRl" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/chair/stool/directional/east,
+/obj/effect/landmark/start/quartermaster,
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"rRq" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
@@ -52149,6 +52359,15 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood/tile,
/area/station/command/corporate_showroom)
+"rSM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"rST" = (
/turf/closed/wall,
/area/station/cargo/storage)
@@ -52191,20 +52410,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
-"rTD" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/green/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rTJ" = (
/obj/effect/turf_decal/trimline/blue/filled/corner{
dir = 4
@@ -52216,17 +52421,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
-"rTU" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rUb" = (
/obj/structure/hedge,
/obj/machinery/status_display/evac/directional/east,
@@ -52250,17 +52444,6 @@
/obj/item/assembly/mousetrap/armed,
/turf/open/floor/stone,
/area/station/service/abandoned_gambling_den)
-"rUt" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"rUI" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -52356,15 +52539,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"rVQ" = (
-/obj/structure/disposalpipe/trunk,
-/obj/structure/window/spawner/directional/west,
-/obj/effect/turf_decal/stripes/end{
- dir = 1
- },
-/obj/machinery/disposal/delivery_chute,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"rVT" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -52372,6 +52546,11 @@
},
/turf/open/floor/iron/dark,
/area/station/security/processing)
+"rWa" = (
+/obj/structure/closet,
+/obj/machinery/camera/autoname/directional/east,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"rWm" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -52419,6 +52598,13 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron/grimy,
/area/station/command/heads_quarters/ce)
+"rWK" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/red/corner,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rWM" = (
/obj/structure/table,
/obj/item/exodrone{
@@ -52453,6 +52639,19 @@
dir = 1
},
/area/station/cargo/bitrunning/den)
+"rWR" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/delivery_chute{
+ name = "Science Deliveries"
+ },
+/obj/structure/sign/departments/science/directional/north,
+/obj/effect/turf_decal/tile/purple/fourcorners,
+/obj/structure/plasticflaps{
+ name = "Science Deliveries"
+ },
+/obj/effect/turf_decal/delivery/white,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/sorting)
"rWU" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance,
@@ -52526,13 +52725,6 @@
/obj/structure/flora/bush/flowers_yw/style_3,
/turf/open/floor/grass,
/area/station/service/chapel)
-"rYt" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/white,
-/area/station/science/cytology)
"rYx" = (
/obj/effect/turf_decal/siding/wideplating/dark,
/obj/structure/cable,
@@ -52572,10 +52764,6 @@
},
/turf/open/floor/iron,
/area/station/medical/chemistry)
-"rZe" = (
-/obj/structure/railing/corner/end/flip,
-/turf/open/floor/plating,
-/area/station/cargo/miningfoundry)
"rZi" = (
/obj/structure/cable,
/obj/machinery/power/solar{
@@ -52654,15 +52842,6 @@
},
/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{
- dir = 8
- },
-/obj/machinery/camera/autoname/directional/west,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"sas" = (
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/carpet/blue,
@@ -52919,6 +53098,14 @@
dir = 8
},
/area/station/engineering/main)
+"sfL" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"sge" = (
/obj/structure/reagent_dispensers/beerkeg,
/obj/item/clothing/head/costume/festive,
@@ -52936,42 +53123,12 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
-"sgC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
-"sgL" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/airlock/mining/glass{
- name = "Cargo Bay"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"sgO" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/smooth_edge{
dir = 1
},
/area/station/maintenance/starboard/greater)
-"sgR" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"sgY" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -53047,6 +53204,18 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white/corner,
/area/station/science/xenobiology)
+"sjn" = (
+/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/private)
"sjp" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -53092,6 +53261,11 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"sjX" = (
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/light/warm/directional/east,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"sjY" = (
/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{
dir = 4
@@ -53173,13 +53347,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/science/genetics)
-"skW" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/spawner/random/structure/crate,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"slp" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -53233,16 +53400,6 @@
"slY" = (
/turf/closed/wall,
/area/station/maintenance/port/fore)
-"slZ" = (
-/obj/structure/closet/secure_closet/detective,
-/obj/machinery/requests_console/directional/north{
- department = "Detective's Office";
- name = "Detective Requests Console"
- },
-/obj/machinery/light/small/directional/west,
-/obj/structure/detectiveboard/directional/west,
-/turf/open/floor/wood,
-/area/station/security/detectives_office)
"smf" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -53429,14 +53586,6 @@
},
/turf/open/floor/grass,
/area/station/service/chapel)
-"spo" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"spx" = (
/obj/machinery/portable_atmospherics/canister/anesthetic_mix,
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
@@ -53444,6 +53593,23 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron/white/small,
/area/station/medical/cryo)
+"spA" = (
+/obj/structure/table,
+/obj/machinery/light/warm/directional/south,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/obj/effect/spawner/random/food_or_drink/snack/lizard{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/obj/effect/spawner/random/food_or_drink/refreshing_beverage{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/structure/sign/poster/official/random/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/office)
"spH" = (
/obj/machinery/door/firedoor,
/turf/open/floor/iron/small,
@@ -53554,9 +53720,6 @@
/obj/structure/disposalpipe/segment,
/turf/closed/wall,
/area/station/maintenance/port/greater)
-"srw" = (
-/turf/closed/wall/r_wall/rust,
-/area/station/maintenance/department/electrical)
"srx" = (
/obj/machinery/power/port_gen/pacman,
/obj/effect/turf_decal/bot{
@@ -53923,17 +54086,6 @@
/obj/machinery/camera/directional/north,
/turf/open/floor/grass,
/area/station/service/chapel)
-"swO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/window/spawner/directional/east,
-/obj/structure/window/spawner/directional/north,
-/mob/living/basic/chick/permanent{
- name = "Morgan"
- },
-/turf/open/floor/grass,
-/area/station/cargo/storage)
"swT" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Engineering Maintenance"
@@ -53948,21 +54100,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
-"swV" = (
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/table/wood,
-/obj/item/hand_labeler_refill{
- pixel_x = -4;
- pixel_y = 26
- },
-/obj/structure/sign/poster/official/random/directional/south,
-/obj/machinery/fax{
- fax_name = "Quartermaster's Office";
- name = "Quartermaster's Fax Machine";
- pixel_y = 7
- },
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"swW" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/turf_decal/siding/wood{
@@ -54014,6 +54151,16 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"sxQ" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"sxT" = (
/obj/structure/cable,
/obj/structure/lattice/catwalk,
@@ -54064,15 +54211,6 @@
"syk" = (
/turf/closed/wall,
/area/station/security/warden)
-"syx" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"syA" = (
/obj/machinery/door/airlock/public/glass{
name = "Dorms"
@@ -54116,23 +54254,37 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
-"sBf" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
+"sAy" = (
+/obj/structure/railing{
+ dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/spawner/random/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
+/obj/structure/railing,
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating_new/end{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/station/cargo/storage)
"sBm" = (
/obj/structure/transport/linear/tram,
/obj/structure/fluff/tram_rail/floor,
/obj/structure/thermoplastic/light,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
+"sBn" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"sBq" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/closet/l3closet/janitor,
@@ -54319,6 +54471,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"sEd" = (
+/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/cargo/warehouse)
"sEn" = (
/obj/item/clothing/head/cone,
/obj/item/clothing/head/cone{
@@ -54484,6 +54642,9 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"sHW" = (
+/turf/closed/wall,
+/area/station/maintenance/hallway/abandoned_recreation)
"sHX" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 6
@@ -54523,10 +54684,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/grimy,
/area/station/commons/vacant_room/office)
-"sJf" = (
-/obj/structure/water_source/puddle,
-/turf/open/misc/asteroid,
-/area/station/maintenance/starboard/greater)
"sJg" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/machinery/door/airlock/command{
@@ -54602,6 +54759,18 @@
},
/turf/open/floor/iron,
/area/station/service/hydroponics)
+"sKh" = (
+/obj/effect/landmark/start/librarian,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
+"sKj" = (
+/obj/machinery/light/warm/directional/east,
+/obj/effect/turf_decal/tile/brown/anticorner{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"sKk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -54655,6 +54824,24 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/white/small,
/area/station/security/warden)
+"sKO" = (
+/obj/structure/table,
+/obj/item/disk/cargo{
+ pixel_x = 6
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_x = -3;
+ pixel_y = 11
+ },
+/obj/item/pen{
+ pixel_x = -9;
+ pixel_y = 0
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"sKS" = (
/obj/structure/sign/poster/official/pda_ad/directional/north,
/obj/structure/tank_holder/extinguisher,
@@ -54888,15 +55075,6 @@
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/iron/showroomfloor,
/area/station/medical/virology)
-"sOP" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"sOR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/door/airlock/public/glass{
@@ -55064,6 +55242,10 @@
dir = 8
},
/area/station/science/lobby)
+"sRs" = (
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"sRD" = (
/obj/machinery/shower/directional/west,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -55083,15 +55265,6 @@
"sRL" = (
/turf/closed/wall,
/area/station/service/janitor)
-"sRR" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"sRT" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/siding/thinplating{
@@ -55126,26 +55299,6 @@
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
-"sSx" = (
-/obj/structure/table,
-/obj/item/restraints/handcuffs/cable{
- pixel_x = -1
- },
-/obj/item/paper/crumpled{
- pixel_x = 9;
- pixel_y = -5
- },
-/obj/item/dest_tagger{
- pixel_x = 19;
- pixel_y = 6
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
-"sSA" = (
-/obj/structure/table,
-/obj/item/folder/yellow,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"sSB" = (
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
@@ -55160,24 +55313,6 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
-"sSU" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/machinery/conveyor_switch/oneway{
- id = "packageSort2";
- name = "Sort and Deliver";
- pixel_x = 8;
- pixel_y = 12
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"sSW" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -55231,6 +55366,16 @@
/obj/machinery/telecomms/bus/preset_one,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"sTN" = (
+/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/private)
"sTR" = (
/obj/structure/cable,
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
@@ -55358,13 +55503,20 @@
"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)
+"sVQ" = (
+/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/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"sWc" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/chem_master,
@@ -55399,6 +55551,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/science/cytology)
+"sXj" = (
+/obj/machinery/air_sensor/mix_tank,
+/turf/open/floor/engine/vacuum,
+/area/station/engineering/atmos)
"sXm" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -55787,9 +55943,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/genetics)
-"tca" = (
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
"tcz" = (
/obj/effect/turf_decal/trimline/blue/filled/corner,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
@@ -55843,16 +55996,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/security/lockers)
-"tdD" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/stripes/corner,
-/obj/effect/turf_decal/stripes/white/corner,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"tdE" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -56004,6 +56147,13 @@
/obj/structure/table/wood,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/entry)
+"tfj" = (
+/obj/effect/turf_decal/bot_white,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/light/small/directional/west,
+/obj/structure/sign/poster/official/random/directional/west,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"tfy" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/tile/red{
@@ -56039,13 +56189,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"tfX" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/turf/open/floor/iron/dark/side,
-/area/station/cargo/office)
"tgl" = (
/turf/closed/wall,
/area/station/service/greenroom)
@@ -56213,6 +56356,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"tjg" = (
+/obj/machinery/atmospherics/components/binary/pump/off{
+ name = "O2 To Pure"
+ },
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"tjj" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/turret_protected/ai_upload)
@@ -56243,6 +56395,12 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/station/maintenance/port/fore)
+"tki" = (
+/obj/structure/cable,
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"tkm" = (
/obj/structure/window/spawner/directional/west,
/obj/structure/flora/bush/large/style_random{
@@ -56287,12 +56445,6 @@
/obj/structure/sign/warning/cold_temp/directional/north,
/turf/open/floor/plating,
/area/station/medical/coldroom)
-"tll" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/effect/landmark/start/quartermaster,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"tlt" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -56300,6 +56452,9 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"tlG" = (
+/turf/closed/wall,
+/area/station/cargo/lobby)
"tlI" = (
/obj/structure/flora/bush/fullgrass/style_random,
/obj/structure/flora/rock/pile/jungle/style_random,
@@ -56410,16 +56565,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/engine,
/area/station/science/explab)
-"tnu" = (
-/obj/structure/table,
-/obj/item/folder/yellow,
-/obj/item/pen,
-/obj/item/reagent_containers/cup/glass/mug/coco{
- pixel_x = 10;
- pixel_y = 14
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"tnx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -56484,13 +56629,6 @@
},
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
-"tov" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/light/cold/directional/north,
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"toC" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 4
@@ -56638,12 +56776,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/station/commons/fitness/recreation)
-"tqn" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron/dark,
-/area/station/engineering/atmospherics_engine)
"tqo" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -56691,10 +56823,12 @@
dir = 1
},
/area/station/hallway/secondary/dock)
-"tro" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
+"tri" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"trp" = (
/turf/closed/wall,
/area/station/maintenance/port/aft)
@@ -56738,6 +56872,28 @@
/obj/structure/sign/departments/aiupload/directional/south,
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
+"tsk" = (
+/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/cargo/sorting)
+"tsl" = (
+/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)
"tst" = (
/obj/machinery/atmospherics/pipe/smart/simple/general/visible{
dir = 4
@@ -56844,6 +57000,14 @@
/obj/item/stack/sheet/glass/fifty,
/turf/open/floor/iron/dark,
/area/station/engineering/atmospherics_engine)
+"tuw" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
+ },
+/obj/effect/spawner/random/structure/steam_vent,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"tux" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -57345,6 +57509,15 @@
},
/turf/open/floor/iron,
/area/station/security/prison/workout)
+"tBE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"tCh" = (
/obj/structure/chair/stool/directional/north,
/obj/effect/turf_decal/siding/red,
@@ -57606,6 +57779,13 @@
/mob/living/carbon/human/species/monkey/punpun,
/turf/open/floor/stone,
/area/station/service/abandoned_gambling_den)
+"tHo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/smooth_large,
+/area/station/engineering/supermatter/room)
"tHp" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
@@ -57720,6 +57900,20 @@
"tJX" = (
/turf/open/floor/plating,
/area/station/maintenance/aft)
+"tJY" = (
+/obj/machinery/door/firedoor,
+/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/machinery/status_display/supply{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/small,
+/area/station/cargo/lobby)
"tKa" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -57728,10 +57922,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
-"tKf" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"tKl" = (
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/tile/neutral{
@@ -57994,6 +58184,12 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"tOu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"tOw" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -58024,27 +58220,10 @@
},
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
-"tPa" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/white/line{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
"tPf" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
-"tPg" = (
-/obj/structure/chair/stool/directional/north,
-/obj/effect/landmark/start/cargo_technician,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"tPm" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/sign/poster/official/random/directional/north,
@@ -58112,6 +58291,11 @@
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/cargo/bitrunning/den)
+"tQn" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/sign/poster/official/no_erp/directional/south,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"tQr" = (
/obj/effect/turf_decal/tile/purple/opposingcorners,
/obj/effect/turf_decal/siding/green{
@@ -58176,6 +58360,16 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/station/security/courtroom)
+"tRm" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Plasma to Pure"
+ },
+/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"tRw" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -58226,14 +58420,6 @@
/obj/machinery/light/small/broken/directional/west,
/turf/open/floor/eighties,
/area/station/service/abandoned_gambling_den/gaming)
-"tSA" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/sign/departments/cargo/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"tSB" = (
/obj/structure/cable,
/obj/structure/table/reinforced,
@@ -58429,12 +58615,6 @@
},
/turf/open/floor/plating,
/area/station/science/robotics/lab)
-"tVR" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"tWm" = (
/obj/structure/flora/bush/jungle/c/style_3,
/obj/effect/turf_decal/weather/dirt,
@@ -58806,9 +58986,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
-"uct" = (
-/turf/open/floor/engine/vacuum,
-/area/station/engineering/atmos)
"ucy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/siding/red{
@@ -58833,6 +59010,13 @@
},
/turf/open/floor/wood,
/area/station/service/chapel/funeral)
+"ucO" = (
+/obj/machinery/light/floor,
+/obj/structure/flora/bush/flowers_br/style_3,
+/obj/structure/flora/bush/flowers_yw,
+/obj/structure/flora/bush/flowers_pp,
+/turf/open/floor/grass,
+/area/station/hallway/primary/central/fore)
"ucR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/airlock{
@@ -59007,6 +59191,20 @@
},
/turf/open/floor/iron/textured_large,
/area/station/command/heads_quarters/hop)
+"ueL" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/stripes,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/landmark/start/bitrunner,
+/obj/machinery/camera/autoname/directional/west,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/cargo/bitrunning/den)
"ueP" = (
/obj/machinery/camera/directional/east{
c_tag = "Atmospherics Tank - Air"
@@ -59114,13 +59312,6 @@
},
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/rd)
-"ugt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron/small,
-/area/station/engineering/break_room)
"ugA" = (
/obj/effect/turf_decal/siding/yellow{
dir = 1
@@ -59286,6 +59477,31 @@
},
/turf/open/floor/iron/white/small,
/area/station/science/lobby)
+"uiK" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/station/maintenance/department/engine/atmos)
+"uiO" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 10
+ },
+/obj/structure/sign/poster/official/the_owl/directional/west,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"uiS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -59294,6 +59510,13 @@
dir = 1
},
/area/station/science/research)
+"uiU" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/station/cargo/office)
"uiY" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -59539,6 +59762,14 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"umL" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"unc" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -59554,6 +59785,12 @@
},
/turf/open/floor/iron/smooth,
/area/station/security/checkpoint/customs/auxiliary)
+"unG" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"unK" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -59642,6 +59879,17 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/hallway/primary/starboard)
+"upF" = (
+/obj/structure/table,
+/obj/item/toy/eightball{
+ pixel_x = -4
+ },
+/obj/item/wirecutters{
+ pixel_y = 17;
+ pixel_x = 4
+ },
+/turf/open/floor/iron/dark/small,
+/area/station/commons/fitness/locker_room)
"upG" = (
/obj/structure/railing,
/obj/structure/cable,
@@ -59651,6 +59899,12 @@
dir = 4
},
/area/station/command/heads_quarters/ce)
+"upM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"upP" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -59703,15 +59957,6 @@
"uqw" = (
/turf/closed/wall/r_wall,
/area/station/commons/fitness/recreation)
-"uqE" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"uqF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/neutral,
@@ -59913,15 +60158,6 @@
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
-"usg" = (
-/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/smooth,
-/area/station/command/heads_quarters/qm)
"usF" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/structure/easel,
@@ -59975,23 +60211,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/command/meeting_room)
-"utH" = (
-/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/command/glass{
- name = "Quartermaster's Office"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/qm,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/catwalk_floor/iron_smooth,
-/area/station/command/heads_quarters/qm)
"utP" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/paper_bin/carbon{
@@ -60010,6 +60229,25 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"uur" = (
+/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,
+/obj/structure/sign/poster/official/random/directional/south,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"uuz" = (
/obj/structure/rack,
/obj/effect/turf_decal/tile/brown/opposingcorners{
@@ -60020,25 +60258,15 @@
/obj/machinery/camera/directional/west,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
-"uuN" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"uuA" = (
+/obj/structure/chair/stool/directional/south,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
},
+/obj/effect/landmark/start/atmospheric_technician,
/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown/half/contrasted,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
-"uuR" = (
-/obj/machinery/door/airlock/wood{
- desc = "Sessions held every Friday.";
- name = "The Sunfinder Society"
- },
-/obj/effect/mapping_helpers/airlock/abandoned,
-/turf/open/floor/plating,
-/area/station/cargo/miningfoundry)
+/turf/open/floor/wood,
+/area/station/engineering/break_room)
"uuS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/siding/blue{
@@ -60111,15 +60339,14 @@
/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"uxd" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"uwO" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Tool Supply Corridor"
},
-/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/maintenance/port/fore)
+/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/commons/storage/tools)
"uxJ" = (
/obj/machinery/smartfridge/chemistry/preloaded,
/obj/machinery/door/firedoor,
@@ -60135,12 +60362,6 @@
/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,
@@ -60748,6 +60969,23 @@
/obj/item/assault_pod/mining,
/turf/open/floor/iron,
/area/station/construction/mining/aux_base)
+"uHE" = (
+/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/mining/glass{
+ name = "Delivery Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
+ },
+/turf/open/floor/iron/small,
+/area/station/cargo/sorting)
"uHF" = (
/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible,
/obj/machinery/door/airlock{
@@ -60800,17 +61038,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/office)
-"uIv" = (
-/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 = 8
- },
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"uIy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
@@ -60821,6 +61048,16 @@
},
/turf/open/floor/iron/white/small,
/area/station/service/hydroponics)
+"uIG" = (
+/obj/machinery/computer/cargo/request{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/lobby)
"uIP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -60874,6 +61111,27 @@
/obj/machinery/shieldgen,
/turf/open/floor/iron/dark/small,
/area/station/engineering/storage_shared)
+"uJI" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/landmark/start/quartermaster,
+/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/cargo/storage)
+"uJV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"uKh" = (
/obj/structure/closet/emcloset,
/obj/effect/turf_decal/bot,
@@ -60925,14 +61183,6 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"uKP" = (
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"uLj" = (
/turf/closed/wall,
/area/station/commons/toilet/auxiliary)
@@ -60947,6 +61197,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating/rust,
/area/station/engineering/main)
+"uLz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/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/port/greater)
"uLD" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -61128,6 +61387,18 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/wood/tile,
/area/station/command/meeting_room)
+"uPf" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Maintenance"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"uPr" = (
/obj/structure/weightmachine/weightlifter,
/obj/effect/turf_decal/bot,
@@ -61200,6 +61471,17 @@
"uQo" = (
/turf/open/floor/engine/air,
/area/station/engineering/atmos)
+"uQt" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Quartermaster's Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/qm,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/command/heads_quarters/qm)
"uQu" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/machinery/status_display/door_timer{
@@ -61333,14 +61615,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/dorms)
-"uSt" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"uSB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -61350,17 +61624,14 @@
/obj/effect/landmark/navigate_destination/tcomms,
/turf/open/floor/iron,
/area/station/science/lower)
-"uSG" = (
-/obj/structure/cable,
+"uSM" = (
+/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
-"uSI" = (
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/wood,
-/area/station/cargo/boutique)
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/obj/effect/turf_decal/bot_white,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"uSN" = (
/obj/effect/spawner/random/vending/snackvend,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -61438,19 +61709,6 @@
},
/turf/open/floor/iron/dark/small,
/area/station/science/xenobiology)
-"uUb" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/structure/cable,
-/obj/structure/table,
-/obj/effect/turf_decal/delivery/white,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/sorting)
"uUe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/closed/wall/r_wall,
@@ -61468,6 +61726,36 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"uUq" = (
+/obj/structure/table/wood,
+/obj/item/folder/yellow{
+ pixel_x = 3;
+ pixel_y = 6
+ },
+/obj/item/dest_tagger{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
+"uUz" = (
+/obj/machinery/light/small/directional/east,
+/obj/machinery/light_switch/directional/east,
+/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/white/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/bot_white,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"uUA" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -61511,6 +61799,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"uVB" = (
+/obj/item/kirbyplants/organic/plant17,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/sign/calendar{
+ pixel_x = 0;
+ pixel_y = -26
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/wood,
+/area/station/maintenance/hallway/abandoned_recreation)
"uVD" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/machinery/airalarm/directional/east,
@@ -61904,21 +62203,6 @@
dir = 1
},
/area/station/command/heads_quarters/hop)
-"vdl" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/button/door/directional/east{
- id = "qm_warehouse_aft";
- name = "Warehouse Door Control";
- pixel_x = -24;
- pixel_y = -23;
- req_access = list("cargo")
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"vdt" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/stripes/line{
@@ -61951,13 +62235,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"vdL" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/spawner/random/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"vdX" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/tile/blue/fourcorners,
@@ -62181,6 +62458,15 @@
/obj/effect/mapping_helpers/airlock/access/any/science/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
+"vgL" = (
+/obj/effect/turf_decal/tile/brown/opposingcorners,
+/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)
"vgN" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -62208,10 +62494,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
-"vhe" = (
-/obj/structure/filingcabinet/chestdrawer,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/office)
"vhr" = (
/obj/structure/sink/directional/west,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -62348,6 +62630,15 @@
/obj/structure/alien/weeds,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"vjs" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/food/grown/pineapple{
+ pixel_x = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"vjI" = (
/obj/machinery/door/airlock{
name = "Bathrooms"
@@ -62423,6 +62714,17 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/command/heads_quarters/qm)
+"vkR" = (
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter)
"vkS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -62769,13 +63071,6 @@
/obj/structure/sign/nanotrasen,
/turf/closed/wall/r_wall,
/area/station/command/teleporter)
-"vpb" = (
-/obj/machinery/door/airlock/hatch{
- name = "Tool Supply Corridor"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/turf/open/floor/catwalk_floor/iron_dark,
-/area/station/cargo/office)
"vpk" = (
/obj/structure/cable,
/turf/open/floor/iron/smooth,
@@ -62976,6 +63271,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/herringbone,
/area/station/security/courtroom)
+"vse" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"vsf" = (
/obj/structure/closet/crate{
name = "Materials Crate"
@@ -63149,25 +63449,6 @@
/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,
-/obj/structure/cable,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
-"vuJ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"vuR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -63250,13 +63531,14 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
"vvC" = (
-/obj/machinery/door/airlock/engineering{
- name = "Engine Airlock"
- },
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
/obj/structure/cable,
/obj/effect/landmark/navigate_destination,
+/obj/machinery/door/airlock/engineering{
+ name = "Main Engineering"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/open/floor/catwalk_floor,
/area/station/engineering/break_room)
"vvK" = (
@@ -63518,6 +63800,10 @@
/obj/structure/cable,
/turf/open/floor/iron/cafeteria,
/area/station/security/prison/mess)
+"vzD" = (
+/obj/effect/turf_decal/stripes/white/line,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/storage)
"vzE" = (
/obj/structure/window/spawner/directional/east,
/obj/structure/window/spawner/directional/west,
@@ -63768,12 +64054,6 @@
/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,
-/obj/structure/cable,
-/turf/open/floor/iron/small,
-/area/station/engineering/break_room)
"vDV" = (
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/cmo)
@@ -64022,15 +64302,6 @@
/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/all/engineering/engine_equipment,
-/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{
@@ -64132,6 +64403,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"vJE" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Public Shrine"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/textured_half,
+/area/station/hallway/primary/port)
"vJG" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/brown/opposingcorners,
@@ -64302,11 +64580,6 @@
},
/turf/open/floor/iron,
/area/station/security/brig/entrance)
-"vLD" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/structure/cable,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"vLF" = (
/obj/structure/closet/secure_closet/courtroom,
/obj/item/gavelblock,
@@ -64325,9 +64598,6 @@
/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)
"vLQ" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -64441,14 +64711,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
-"vNv" = (
-/obj/effect/turf_decal/stripes/corner,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"vNM" = (
/obj/machinery/door/airlock{
name = "Hydroponics Maintenance"
@@ -64606,6 +64868,10 @@
/obj/structure/sign/poster/official/random/directional/east,
/turf/open/floor/eighties/red,
/area/station/hallway/primary/central/fore)
+"vRc" = (
+/obj/effect/turf_decal/loading_area/white,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"vRd" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/dark_red,
@@ -64626,11 +64892,6 @@
dir = 1
},
/area/station/science/research)
-"vRn" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/closed/wall,
-/area/station/maintenance/port/greater)
"vRt" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -64661,6 +64922,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/aft)
+"vSn" = (
+/obj/structure/hedge,
+/obj/machinery/status_display/supply{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/storage)
"vSt" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 4
@@ -65009,6 +65281,14 @@
},
/turf/open/floor/iron/small,
/area/station/hallway/primary/central/fore)
+"vWy" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/sign/departments/cargo/directional/west,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"vWA" = (
/obj/effect/turf_decal/tile/brown/opposingcorners,
/obj/machinery/firealarm/directional/south,
@@ -65089,6 +65369,15 @@
/obj/machinery/power/apc/auto_name/directional/west,
/turf/open/floor/iron,
/area/station/security/prison/rec)
+"vXv" = (
+/obj/structure/table,
+/obj/item/toy/foamblade,
+/obj/item/analyzer{
+ pixel_y = 8;
+ pixel_x = -9
+ },
+/turf/open/floor/iron/dark/small,
+/area/station/commons/fitness/locker_room)
"vXy" = (
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron/white/corner{
@@ -65240,6 +65529,11 @@
},
/turf/open/floor/stone,
/area/station/service/abandoned_gambling_den)
+"vZS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"vZW" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -65349,6 +65643,15 @@
dir = 1
},
/area/station/science/lower)
+"wbt" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/closet/secure_closet/quartermaster,
+/obj/machinery/light_switch/directional/south,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"wbH" = (
/obj/machinery/holopad,
/obj/effect/decal/cleanable/dirt,
@@ -65400,11 +65703,6 @@
},
/turf/open/floor/iron,
/area/station/security/execution/transfer)
-"wcz" = (
-/obj/structure/disposalpipe/segment,
-/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,
@@ -65648,6 +65946,13 @@
},
/turf/open/floor/iron,
/area/station/security/execution/transfer)
+"whg" = (
+/obj/effect/landmark/start/hangover,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/aft)
"whl" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/stripes/line{
@@ -65740,6 +66045,14 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"wie" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/spawner/random/vending/colavend,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/lobby)
"win" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -65783,13 +66096,6 @@
/obj/structure/tank_holder/extinguisher,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
-"wjw" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_large,
-/area/station/engineering/supermatter/room)
"wjG" = (
/obj/structure/filingcabinet,
/turf/open/floor/iron/dark/small,
@@ -65845,16 +66151,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
-"wkK" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"wla" = (
/obj/effect/landmark/generic_maintenance_landmark,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -65962,6 +66258,15 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/cargo/office)
+"wnf" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/elevatorshaft,
+/area/station/engineering/break_room)
"wnw" = (
/obj/machinery/pdapainter/engineering,
/obj/effect/turf_decal/bot,
@@ -66085,6 +66390,15 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
+"woY" = (
+/obj/structure/chair/stool/directional/south,
+/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 = 5
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
"wpa" = (
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/maint)
@@ -66128,6 +66442,15 @@
"wqj" = (
/turf/closed/wall,
/area/station/commons/toilet/restrooms)
+"wqx" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"wqz" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible,
/turf/open/floor/engine,
@@ -66137,20 +66460,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/port/aft)
-"wqI" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/office)
"wqM" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -66328,6 +66637,14 @@
},
/turf/open/floor/iron/dark/side,
/area/station/science/xenobiology)
+"wtd" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters{
+ id = "qm_warehouse_aft";
+ name = "Warehouse Shutters"
+ },
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"wte" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 1
@@ -66547,6 +66864,13 @@
/obj/structure/hedge,
/turf/open/floor/iron/grimy,
/area/station/science/cubicle)
+"wvF" = (
+/obj/structure/filingcabinet/filingcabinet,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"wvM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -66604,16 +66928,6 @@
dir = 1
},
/area/station/science/lower)
-"wwJ" = (
-/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/effect/turf_decal/tile/brown/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"wwQ" = (
/obj/structure/chair/office{
dir = 4
@@ -66648,6 +66962,17 @@
/obj/machinery/light/small/dim/directional/north,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
+"wxJ" = (
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter)
"wxR" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance,
@@ -66734,6 +67059,12 @@
/obj/machinery/light/warm/directional/east,
/turf/open/floor/iron/dark,
/area/station/science/genetics)
+"wyG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
"wyH" = (
/obj/machinery/door/airlock/maintenance{
name = "Maintenance"
@@ -66769,14 +67100,13 @@
},
/turf/open/floor/engine/air,
/area/station/engineering/atmos)
-"wzo" = (
-/obj/machinery/light/small/directional/north,
-/obj/effect/landmark/start/cargo_technician,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/office)
"wzv" = (
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"wzz" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"wzF" = (
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -66821,6 +67151,16 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
+"wAh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/status_display/supply{
+ pixel_x = -2;
+ pixel_y = 32
+ },
+/turf/open/floor/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"wAj" = (
/obj/structure/table/wood,
/obj/machinery/computer/records/medical/laptop{
@@ -67019,6 +67359,15 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
+"wDQ" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/spawner/random/structure/steam_vent,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"wEf" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral{
@@ -67728,14 +68077,6 @@
/obj/effect/landmark/start/depsec/medical,
/turf/open/floor/iron/smooth,
/area/station/security/checkpoint/customs/auxiliary)
-"wOM" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"wOS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -67745,26 +68086,6 @@
/obj/effect/landmark/navigate_destination/disposals,
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
-"wOZ" = (
-/obj/effect/decal/cleanable/molten_object,
-/obj/effect/landmark/event_spawn,
-/obj/structure/table,
-/obj/item/reagent_containers/cup/bottle/welding_fuel{
- pixel_y = -3;
- pixel_x = 13
- },
-/obj/item/stack/sheet/iron/ten{
- pixel_y = -6;
- pixel_x = -2
- },
-/obj/item/hand_labeler{
- pixel_y = -15
- },
-/obj/item/reagent_containers/cup/watering_can{
- pixel_y = 12
- },
-/turf/open/floor/iron/dark,
-/area/station/commons/storage/tools)
"wPd" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/starboard/lesser)
@@ -67820,16 +68141,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
-"wPO" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "O2 to Airmix"
- },
-/obj/machinery/light/no_nightlight/directional/north,
-/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/engineering/atmos)
"wPP" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 1
@@ -68042,11 +68353,6 @@
/obj/machinery/smartfridge/organ,
/turf/open/floor/plating,
/area/station/medical/morgue)
-"wSf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"wSg" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -68056,12 +68362,6 @@
},
/turf/open/floor/iron/white/corner,
/area/station/hallway/primary/aft)
-"wSi" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"wSF" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 8
@@ -68248,6 +68548,12 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/science/ordnance/testlab)
+"wVr" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"wVI" = (
/obj/machinery/biogenerator,
/obj/machinery/light/small/dim/directional/north,
@@ -68482,14 +68788,6 @@
/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,
@@ -68575,15 +68873,6 @@
/obj/machinery/status_display/ai/directional/north,
/turf/open/floor/plating,
/area/station/engineering/storage/tech)
-"xaZ" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/maintenance/port/fore)
"xba" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -68656,6 +68945,13 @@
"xck" = (
/turf/closed/wall/r_wall,
/area/station/engineering/atmos/office)
+"xco" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"xcq" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 8
@@ -68678,6 +68974,22 @@
/obj/structure/window/spawner/directional/north,
/turf/open/floor/grass,
/area/station/service/hydroponics)
+"xcA" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/camera/autoname/directional/south,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted,
+/turf/open/floor/iron/smooth,
+/area/station/security/checkpoint/supply)
"xcF" = (
/turf/open/floor/iron,
/area/station/commons/dorms)
@@ -68865,6 +69177,18 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white/textured_large,
/area/station/science/research)
+"xeZ" = (
+/obj/machinery/light/small/directional/south,
+/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/stairs{
+ dir = 8
+ },
+/area/station/cargo/storage)
"xfa" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -69016,6 +69340,21 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"xgK" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/sorting)
"xhk" = (
/obj/machinery/door/airlock/public/glass{
name = "Public Shrine"
@@ -69026,16 +69365,15 @@
dir = 8
},
/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,
+"xhC" = (
/obj/structure/disposalpipe/segment{
- dir = 5
+ 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,
-/area/station/hallway/primary/port)
+/area/station/cargo/lobby)
"xhD" = (
/obj/structure/table,
/obj/item/clothing/shoes/ducky_shoes{
@@ -69154,6 +69492,20 @@
dir = 5
},
/area/station/science/lower)
+"xjc" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/small,
+/area/station/cargo/office)
"xjg" = (
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
@@ -69360,10 +69712,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"xmI" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"xmL" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/effect/landmark/start/security_officer,
@@ -69381,20 +69729,6 @@
/obj/effect/mapping_helpers/requests_console/supplies,
/turf/open/floor/iron/white/small,
/area/station/service/hydroponics)
-"xng" = (
-/obj/structure/disposalpipe/trunk,
-/obj/machinery/disposal/delivery_chute{
- name = "Medical Deliveries"
- },
-/obj/structure/sign/departments/exam_room/directional/north,
-/obj/effect/turf_decal/tile/blue/fourcorners,
-/obj/effect/turf_decal/stripes/corner,
-/obj/structure/plasticflaps{
- name = "Medical Deliveries"
- },
-/obj/effect/turf_decal/delivery/white,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"xnk" = (
/obj/structure/cable,
/obj/effect/turf_decal/siding/wood,
@@ -69669,6 +70003,17 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/catwalk_floor/iron_white,
/area/station/science/robotics/augments)
+"xrt" = (
+/obj/structure/chair/sofa/bench/left{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/landmark/start/hangover,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/side,
+/area/station/hallway/primary/central/fore)
"xru" = (
/obj/item/kirbyplants/random/fullysynthetic,
/obj/machinery/airalarm/directional/east,
@@ -69844,6 +70189,20 @@
dir = 4
},
/area/station/science/lobby)
+"xsP" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"xsT" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -70057,12 +70416,6 @@
"xvF" = (
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/science/xenobiology)
-"xvJ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/closed/wall,
-/area/station/cargo/miningfoundry)
"xvK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -70079,6 +70432,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
+"xvR" = (
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/stripes,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/obj/structure/sign/poster/official/random/directional/north,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/cargo/bitrunning/den)
"xvT" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/turret_protected/aisat/maint)
@@ -70121,11 +70485,6 @@
/obj/structure/bed/maint,
/turf/open/floor/light/colour_cycle/dancefloor_b,
/area/station/maintenance/starboard/central)
-"xwn" = (
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
-/obj/machinery/portable_atmospherics/pump,
-/turf/open/floor/iron/dark,
-/area/station/science/ordnance)
"xwr" = (
/obj/effect/turf_decal/siding/thinplating_new/light,
/obj/machinery/recharge_station,
@@ -70240,14 +70599,17 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/command/heads_quarters/hos)
-"xxT" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+"xyb" = (
+/obj/structure/window/spawner/directional/west,
+/obj/effect/turf_decal/stripes/end{
+ dir = 1
+ },
+/obj/machinery/disposal/delivery_chute,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
+/area/station/cargo/sorting)
"xyh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -70407,17 +70769,6 @@
/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"
- },
-/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/station/engineering/supermatter)
"xAA" = (
/obj/effect/turf_decal/tile/green/half/contrasted{
dir = 1
@@ -70440,24 +70791,21 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
+"xAO" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"xAR" = (
/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/port/aft)
-"xAV" = (
-/obj/structure/chair/sofa/bench/left{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/landmark/start/hangover,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 1
- },
-/obj/machinery/light/cold/directional/south,
-/turf/open/floor/iron/dark/side,
-/area/station/hallway/primary/central/fore)
"xBd" = (
/obj/effect/turf_decal/plaque{
icon_state = "L7";
@@ -70584,6 +70932,21 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"xDl" = (
+/obj/structure/bed,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/bedsheet/qm,
+/obj/item/reagent_containers/cup/glass/bottle/tequila{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/structure/sign/poster/contraband/random/directional/east,
+/obj/machinery/camera/autoname/directional/east,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"xDs" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/door/firedoor,
@@ -70613,21 +70976,6 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"xEl" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/twelve_percent_spirit_board,
-/turf/open/floor/wood,
-/area/station/service/chapel/office)
-"xEm" = (
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/machinery/photocopier,
-/turf/open/floor/iron,
-/area/station/cargo/office)
"xEn" = (
/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{
dir = 4
@@ -70918,6 +71266,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/catwalk_floor/iron,
/area/station/science/lobby)
+"xIl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"xIu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -71049,6 +71404,16 @@
/obj/machinery/light_switch/directional/north,
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
+"xKn" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Tool Supply Corridor"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/cargo/lobby)
"xKq" = (
/obj/machinery/rnd/production/circuit_imprinter/department/science,
/obj/effect/turf_decal/bot,
@@ -71063,6 +71428,12 @@
"xKG" = (
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"xKI" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"xKQ" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/machinery/firealarm/directional/north,
@@ -71114,6 +71485,15 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"xLw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"xLy" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/decal/cleanable/dirt/dust,
@@ -71198,10 +71578,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"xMu" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/closed/wall,
-/area/station/service/library)
"xMv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -71261,14 +71637,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"xOm" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/door/poddoor/shutters{
- id = "qm_warehouse_aft";
- name = "Warehouse Shutters"
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"xOq" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/turf/open/floor/iron,
@@ -71398,9 +71766,6 @@
/obj/item/kirbyplants/random/fullysynthetic,
/turf/open/floor/wood/parquet,
/area/station/medical/psychology)
-"xPX" = (
-/turf/closed/wall/rust,
-/area/station/cargo/office)
"xPY" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -71540,6 +71905,14 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
+"xRC" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/machinery/door/airlock{
+ name = "Cargo Maintenance"
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"xRH" = (
/turf/closed/wall,
/area/station/maintenance/fore/lesser)
@@ -71633,6 +72006,20 @@
},
/turf/open/floor/iron/white/textured_large,
/area/station/medical/medbay/lobby)
+"xSY" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/delivery_chute{
+ name = "Medical Deliveries"
+ },
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/effect/turf_decal/stripes/corner,
+/obj/structure/plasticflaps{
+ name = "Medical Deliveries"
+ },
+/obj/effect/turf_decal/delivery/white,
+/obj/structure/sign/departments/med/directional/north,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/sorting)
"xSZ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -72075,6 +72462,9 @@
},
/turf/open/floor/iron,
/area/station/engineering/gravity_generator)
+"xYo" = (
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"xYu" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -72113,11 +72503,6 @@
"xYO" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/department/bridge)
-"xZd" = (
-/obj/machinery/portable_atmospherics/canister/air,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"xZe" = (
/obj/effect/landmark/start/chaplain,
/obj/effect/turf_decal/siding/wood/end{
@@ -72131,12 +72516,6 @@
/obj/effect/landmark/navigate_destination/det,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"xZh" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/closed/wall,
-/area/station/maintenance/port/fore)
"xZs" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -72438,16 +72817,6 @@
"yeh" = (
/turf/closed/wall,
/area/station/hallway/primary/starboard)
-"yei" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Atmospherics Maintenance"
- },
-/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
@@ -72577,13 +72946,6 @@
"yfD" = (
/turf/closed/wall,
/area/station/medical/surgery/theatre)
-"yfF" = (
-/obj/machinery/vending/autodrobe,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/turf/open/floor/iron/small,
-/area/station/commons/fitness/locker_room)
"yfJ" = (
/obj/effect/spawner/random/structure/closet_maintenance,
/obj/effect/decal/cleanable/dirt,
@@ -72827,12 +73189,6 @@
/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,
-/obj/machinery/light_switch/directional/south,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/sorting)
"yjd" = (
/turf/open/floor/iron/dark,
/area/station/security/lockers)
@@ -72843,6 +73199,35 @@
/obj/machinery/newscaster/directional/west,
/turf/open/floor/iron/white/small,
/area/station/science/cubicle)
+"yjy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/item/folder/red{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/folder/blue{
+ pixel_x = 3;
+ pixel_y = -30
+ },
+/obj/effect/spawner/random/entertainment/toy_figure{
+ pixel_x = 4;
+ pixel_y = 11
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/item/pen{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"yjE" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/department/engine)
@@ -79478,7 +79863,7 @@ ybp
qBK
jMp
cor
-wPO
+bDi
wLw
udH
gbh
@@ -79719,7 +80104,7 @@ rDU
hYC
bLp
wGx
-qht
+cdp
nrn
lCT
trX
@@ -79735,7 +80120,7 @@ kNx
tyc
dJn
nrn
-jMQ
+tjg
wmL
civ
gbh
@@ -81521,7 +81906,7 @@ fAD
jWm
ybO
kVB
-dzH
+qrW
rPg
nrn
trY
@@ -81764,7 +82149,7 @@ wWm
mPB
pit
wWm
-pnO
+idB
pCn
teV
dix
@@ -81775,7 +82160,7 @@ ykk
hYC
egC
nlt
-ckR
+tRm
nrn
ktJ
saq
@@ -82017,7 +82402,7 @@ wBo
sRf
wBo
hFO
-oYf
+jPl
mPB
wWm
nlR
@@ -82273,9 +82658,9 @@ wBo
fgX
uFS
wBo
-eKd
+mln
wBo
-aeH
+nzS
dOP
pit
dHx
@@ -82531,7 +82916,7 @@ bTI
jnI
gya
qBM
-ael
+oBO
wcF
eqr
mUe
@@ -82545,7 +82930,7 @@ pjk
pjk
pjk
qfK
-fAD
+klA
hLx
klg
lRy
@@ -82846,7 +83231,7 @@ gZi
gZi
gZi
hrV
-hzm
+lOj
dDB
dDB
dDB
@@ -83105,7 +83490,7 @@ iVK
jhC
lOj
hLT
-hzm
+lOj
hLT
lOj
dDB
@@ -83354,7 +83739,7 @@ haO
slY
kwY
kPW
-ueX
+slY
ikr
iVK
iVK
@@ -83366,7 +83751,7 @@ kkV
ipr
lOj
lOj
-hzm
+lOj
lOj
kdH
kdH
@@ -83572,8 +83957,8 @@ oVm
fjf
sRW
fjf
-itr
-hWa
+cHD
+hhy
wFK
ybO
qOr
@@ -83625,7 +84010,7 @@ lOj
dTW
lwI
lOj
-jaN
+vSn
kdH
kmo
ouN
@@ -83633,8 +84018,8 @@ rST
ouN
oQr
kdH
-pZu
-jxJ
+eEG
+rzX
slw
dDd
vuj
@@ -83882,7 +84267,7 @@ bTE
cob
vWA
lOj
-mnZ
+aNE
kdH
nJU
kEA
@@ -83890,8 +84275,8 @@ kQe
ouR
oRr
kdH
-pHo
-pZz
+dfM
+iIG
slw
qtJ
qdu
@@ -84077,7 +84462,7 @@ pWm
pRw
pnl
pxz
-yei
+enI
ybO
ybO
qKA
@@ -84348,7 +84733,7 @@ wmq
vMI
pKW
kiP
-tqn
+dIw
dYv
jZl
feu
@@ -84358,7 +84743,7 @@ bGX
jhj
cGV
tkU
-ocZ
+bst
pqr
tkU
kUN
@@ -84397,16 +84782,16 @@ jvR
jir
lPi
uzJ
-mQh
-nJU
+eib
+knk
ppk
uzJ
ovQ
-oRr
-poM
+oSb
+edA
uzJ
-mKB
-aLm
+ryX
+slw
slw
lLi
slw
@@ -84595,7 +84980,7 @@ fjh
wzv
pnl
dpH
-kNv
+sXj
gAy
jZl
bKK
@@ -84642,31 +85027,31 @@ ohl
slY
slY
slY
-ueX
slY
-ueX
+slY
+slY
+nFo
nFo
-oCG
nFo
nFo
nFo
nFo
-lxy
-hzm
+kxa
+lOj
jTA
-ovQ
-knk
-ppk
+qYG
+pZK
+xKI
kQM
-owl
-oSb
-ppk
+kQj
+pZK
+xKI
mjQ
-fLF
+qqB
ahr
nFX
nFX
-cdC
+ozn
pSP
mhk
mhk
@@ -84851,9 +85236,9 @@ pWm
uEH
dfd
pnl
-uct
-uct
-uct
+bjt
+bjt
+bjt
jZl
bEG
rCk
@@ -84900,31 +85285,31 @@ slY
gOK
slY
hfc
-kPW
+bEv
iNE
nFo
ach
-lKH
+ueL
ylH
nEl
ejq
tvN
-lRc
moz
-kee
-nua
-nPt
+moz
+vjs
+odX
odX
-lkI
-oSg
-lWF
+odX
+odX
+odX
+rWK
mjV
-pHs
+sVQ
mhk
ihb
ozt
-dEQ
sqz
+bHw
mhk
iSD
pbw
@@ -85108,9 +85493,9 @@ wzv
yil
wzv
pnl
-uct
-hGa
-uct
+bjt
+lrN
+bjt
jZl
oqq
tmK
@@ -85158,30 +85543,30 @@ gPN
gZk
iNE
kPW
-kPW
+lxE
nFo
tPZ
rPx
cvP
rWP
-bCh
+kMY
jWA
-lTv
-oem
-oem
-nxo
-oem
-oem
-owM
-oSx
+uzJ
+jtB
+jJw
+fxO
+rPM
+fxO
+qMI
+rfP
+fiE
qby
qby
qby
+iJH
+iJH
mhk
-mhk
-mhk
-xxT
-mhk
+bHw
mhk
pGS
sUN
@@ -85363,12 +85748,12 @@ kNn
yil
xnL
yil
-bXb
+jHN
pnl
pnl
pnl
pnl
-srw
+emz
tXF
qaU
yew
@@ -85413,32 +85798,32 @@ xpl
slY
gPN
slY
-jCo
-kPW
+kwY
+bEv
hfc
nFo
hNv
-lbF
-lLq
+iJp
+ggn
nyf
ejq
-jkS
-lTN
-mRD
+oEL
+uzJ
+vzD
+amq
mRD
-knL
kEH
mRD
-llg
-oSx
+gGA
+rfP
+fiE
qby
-mjX
+frY
mLh
-nry
-qRq
-mhk
-vdL
+njv
+rev
mhk
+bHw
mhk
cXb
sry
@@ -85620,10 +86005,10 @@ rjo
pWm
pWm
pWm
-bXb
-bXb
-bXb
-bXb
+jHN
+jHN
+jHN
+jHN
yil
fTJ
qpp
@@ -85639,7 +86024,7 @@ ttL
glo
dPW
vCp
-moN
+vgL
kWY
mzx
dcK
@@ -85667,34 +86052,34 @@ dDB
mEB
gDH
mFA
-ueX
slY
slY
-jCo
+slY
+bEv
slY
slY
nFo
nFo
+xvR
+pIo
nFo
nFo
-nFo
-nFo
-kZB
-lUz
-ohj
-ohj
-nxX
-ohj
-ohj
-oxw
-lFG
+boG
+hmR
+jGC
+rtH
+eti
+eti
+eti
+dvP
+odX
+oyH
lWY
-mkF
+oZZ
mLk
-nsL
-kVn
+hXM
+pmD
srn
-iHT
pRc
mhk
pbw
@@ -85877,7 +86262,7 @@ mmT
vtJ
acg
pWm
-efn
+eZd
wzv
wzv
wzv
@@ -85926,32 +86311,32 @@ gEc
gIx
sjq
sjq
-hyO
-roi
-jCi
+guq
+jCo
+tki
nPX
ouT
-jMb
-kzI
-kzI
+jjq
+jjq
+jjq
rST
iUN
-jlv
-sRR
-odX
-fts
-nyE
+pIg
+rLp
+moz
+iqM
uzJ
-axj
uzJ
-azK
+sjX
+uzJ
+mLz
+cNw
qby
-mkO
+nzd
mMt
dVW
-qSS
+xcA
mhk
-tKf
kwy
mhk
bBh
@@ -85965,7 +86350,7 @@ iSD
rnr
aCz
wAW
-spo
+wXk
xiF
gEx
yea
@@ -86136,8 +86521,8 @@ bOa
pWm
bvt
bvt
-nbN
-ggr
+lAM
+fgo
oii
pnl
gmv
@@ -86180,35 +86565,35 @@ dDB
dDB
slY
slY
-slY
hTr
slY
slY
-iBo
-slY
+qgX
+mmZ
+jjq
jiu
-jCP
-kia
-kia
-kia
+obk
+tfj
+kzI
+gus
oGl
iVx
lzp
jFB
-tll
+mRQ
+uJI
wuM
-nyS
pBD
wuM
pBD
+uQt
wuM
-vLP
wuM
-vLP
+wuM
+mhk
mhk
mhk
mhk
-xmI
ivh
mhk
fme
@@ -86228,7 +86613,7 @@ uAk
yea
vmX
vij
-xEl
+oNQ
wyl
fEC
fEC
@@ -86403,14 +86788,14 @@ jDi
jDi
jDi
pnl
-srw
+emz
pnl
pnl
jZl
xck
-cag
+hyS
xck
-bJH
+kMg
xck
cGV
bNq
@@ -86418,9 +86803,9 @@ bNq
ecq
bNq
bNq
-hhr
+pTK
bNq
-gUQ
+uiK
bNq
bNq
bNq
@@ -86435,37 +86820,37 @@ blb
blb
blb
blb
-blb
slY
hLD
hTD
oOK
slY
-hfC
+lFb
slY
jjq
-hyb
+jjq
+dcu
jNc
qSH
-vNv
+mKR
rST
iVI
-jmK
+fma
jHB
-gxL
+sRs
+qMM
wuM
-bKz
-kFg
-kRJ
-bvV
-lGk
-uKP
+rKn
+bdi
+lsH
+nmE
+dFn
wCI
-swV
+eJi
mhk
nFY
mhk
-mhk
+mCV
mze
iLH
oyz
@@ -86692,32 +87077,32 @@ dDB
blb
dDB
dDB
-dDB
slY
tjY
siG
nEA
slY
-oPi
-xOm
+tBE
+ehu
+wtd
pAU
-nLH
-nUx
-rie
-ipd
+fxc
+nku
+jKl
+jgj
rTA
-nTi
-lzA
+gFi
+xco
lUI
-tVR
-pBD
-nnc
-jZc
+rJQ
+iKn
+gBs
+ggK
+mek
kSb
-tca
-lGT
-lWR
-mlr
+cjc
+hlP
+hHX
nxJ
mhk
xYJ
@@ -86829,7 +87214,7 @@ aWt
sis
sis
sis
-lhd
+mdp
xjz
blb
dDB
@@ -86949,35 +87334,35 @@ dDB
blb
dDB
dDB
-dDB
slY
rhm
cis
slY
slY
-oPo
-xOm
-tdD
+lFb
+qTS
+wtd
+eQI
vrW
-qul
-rif
-tro
+uUz
+uSM
+sEd
rTA
-sgC
+csj
eDy
uzJ
-uzJ
+sRs
+lzp
pBD
-usg
-uSt
-kSf
-lme
-lHe
-lWU
-tca
+rJB
+cUV
+ksE
+woY
+uUq
+wyG
urF
mhk
-xZd
+cEp
mhk
sNW
mze
@@ -86995,14 +87380,14 @@ cdB
wAW
rpB
jzr
-qMw
-iEi
-dTQ
-cVO
-uxY
-czu
-dny
-doi
+gLS
+tsl
+pMX
+cDQ
+buc
+rFU
+qgZ
+oSB
fEC
kJJ
qVP
@@ -87081,7 +87466,7 @@ eua
izh
xAG
jWd
-lGO
+rEV
cZA
hyX
tBm
@@ -87171,7 +87556,7 @@ kNn
pnl
pnl
pnl
-srw
+emz
pnl
tOc
oCE
@@ -87206,37 +87591,37 @@ dDB
tYT
aJq
dDB
-dDB
-ueX
+slY
+slY
mEB
slY
+vse
+mFA
slY
-nMV
-dRD
-xwz
-xwz
-gxr
-fSe
+jjq
+jjq
+fCK
+jjq
ibe
ipP
rST
eeb
-lzU
-dfN
-pJn
+fHX
+sAy
+jfP
+xeZ
wuM
-pwJ
-uSG
-kSO
-gNC
+cbq
+eCO
+bIu
lHk
-lXf
+nhk
lKg
efS
mhk
-qTJ
mhk
-rGN
+mhk
+mhk
mze
mhk
feL
@@ -87252,14 +87637,14 @@ iSD
wBm
wXk
pEO
-nRa
+xOS
rQC
von
pvC
aLS
wzS
wzS
-pPx
+lXM
fEC
rui
qVP
@@ -87466,33 +87851,33 @@ dDB
dDB
dDB
blb
-dDB
slY
-ohb
+bUq
xwz
-fSe
-pIi
-tPa
xwz
+cyQ
+cuZ
+eNa
xwz
mTl
+mTl
rST
-sgL
-swO
-kYZ
-msy
-vLP
-utH
-pBD
+wAh
+jry
+rFv
+dwy
+bbV
+wuM
+wuM
wuM
vkN
lHT
vkN
-mhk
-mhk
-mhk
-mhk
-mhk
+wuM
+wuM
+sHW
+rrJ
+uiO
mhk
mze
mhk
@@ -87506,10 +87891,10 @@ lFm
kzV
uaa
eYB
-mIE
+vJE
wXk
glM
-ldl
+jmC
yea
vrf
von
@@ -87723,33 +88108,33 @@ dDB
dDB
dDB
blb
-dDB
-ueX
-ohl
+slY
+vse
xwz
-gGw
-nsX
-hoV
-vuH
+cky
+juo
+iDm
+biV
xwz
-rFa
-rTD
-iWb
+gPO
+moq
+jro
+jnn
jnn
bDN
bDN
-qto
-kpT
+ebM
+sfL
kFD
kTp
-lmv
-lIf
-lXn
-srn
-ntJ
-nGu
-xYJ
-ina
+itf
+qnU
+wbt
+kTp
+oOm
+jJO
+kik
+uVB
mhk
gLV
mhk
@@ -87762,11 +88147,11 @@ tBk
miF
miF
miF
-juP
+etJ
wAW
-lqq
+mFd
ckP
-xht
+amX
yea
yea
vJn
@@ -87980,36 +88365,36 @@ dDB
dDB
dDB
blb
-dDB
slY
-mFA
+vse
xwz
-mdX
-fCd
-iJh
+unG
+qrJ
+iUI
jwU
xwz
-rFP
-rTU
-sgR
-obH
-sSx
-tnu
-tPg
-uuN
+hYQ
+pNa
+wzz
+dXu
+ahI
+lkL
+hGA
+tsk
+nzy
btG
pBD
-vLD
-lIn
-lXY
-mhk
-ina
-pyA
-ina
-xYJ
-xYJ
+qhU
+rRl
+mCW
+wuM
+pZC
+yjy
+jmX
+tri
+qYq
xsD
-srn
+mhk
xxj
cSb
nDj
@@ -88020,11 +88405,11 @@ cxz
cZs
cZs
eYB
-mIE
+vJE
wXk
uQK
-mwK
-kyE
+bfS
+fMf
yea
vJA
vKa
@@ -88237,33 +88622,33 @@ dDB
dDB
dDB
blb
-dDB
slY
-ohl
-uuR
-rZe
-jIH
-bbK
+vse
+and
+nLi
+cNl
+iiR
ePn
uki
-rFW
-bCZ
-uqE
-fkd
-sSA
+iek
+xgK
+upM
+jQG
+abv
wcP
-qDP
-wwJ
-yjc
-vLP
-oyZ
-lIq
-lYt
-mhk
-xYJ
-lwC
-tYL
-mhk
+kRb
+rJL
+nzy
+gOS
+wuM
+giA
+jFg
+uur
+wuM
+pBo
+gEb
+dgy
+lud
mhk
fpN
mhk
@@ -88452,7 +88837,7 @@ kMe
nDJ
lWV
cYt
-wjw
+tHo
gAV
tDu
ccA
@@ -88467,14 +88852,14 @@ oYv
jJg
bsG
wqW
-cQV
+jHS
tdb
tdb
tdb
tdb
qyr
mLZ
-vHU
+naK
lER
hRO
knv
@@ -88494,36 +88879,36 @@ blb
blb
slY
mEB
-ueX
slY
-ohl
+iZx
+xwz
xwz
-pjG
-hZe
-bOY
-rzL
+kOA
+iUA
+gZR
xwz
-rGq
-rUt
-sgR
-wcz
-eIF
-juJ
-mTe
-kqL
-kFI
+rWR
+iQM
+lvN
+kJu
+fvX
+cOs
+kiW
+xAO
+rmc
+hjS
pBD
-wSf
-lIw
-lYw
-mhk
-qjn
-uiw
-ina
+lsH
+pZt
+mac
+wuM
+oLE
+lmp
+iAt
+tQn
mhk
-ozt
-mrn
-vRn
+mSA
+gTj
ani
bKv
jCm
@@ -88753,32 +89138,32 @@ ueX
hNo
wZF
wZF
-had
-xwz
-xwz
-xvJ
-xwz
-fSe
-xwz
-xng
-pjL
-llN
-jqu
-sSU
-vuJ
-hEi
-kqQ
-uUb
+tuw
+slY
+slY
+fAn
+slY
+slY
+xSY
+khw
+xsP
+oxt
+gIr
+jJB
+sBn
+ePr
+eCV
+bjf
wuM
-lmR
-lJV
-cYT
-mhk
-mhk
-dDi
-mhk
+mta
+xDl
+kjb
+wuM
+dLl
+twm
+dLl
+dLl
mhk
-sNW
jQv
mhk
oOC
@@ -88797,7 +89182,7 @@ beN
oRw
xle
xle
-slZ
+hzr
iIU
wAj
xle
@@ -88957,7 +89342,7 @@ ayK
ayK
ayK
lQU
-ruR
+mOc
lQU
ayK
lQU
@@ -88965,7 +89350,7 @@ lQU
lQU
ayK
lQU
-ruR
+mOc
lQU
ayK
rDV
@@ -89009,28 +89394,28 @@ mEB
gDH
mFA
gKi
-gPT
-qQP
-pJQ
-wZF
-pqv
-wZF
-vdl
+lOg
+ohl
slY
-ueX
-rVQ
-oFi
-jqA
+gTw
+nPg
+gDH
+slY
+slY
+slY
+xyb
+gJb
lUT
-pih
+lYe
mTl
-kqW
kFJ
-slY
-slY
-mhk
-mhk
-mhk
+uHE
+kFJ
+wuM
+wuM
+wuM
+wuM
+wuM
rZb
jXc
xYJ
@@ -89267,30 +89652,30 @@ gEc
mFA
slY
slY
+oOf
+qSF
+rFm
+fQv
+wZF
+wZF
+wDQ
slY
slY
-slY
-xZh
-slY
-qQP
-roi
-slY
-slY
-slY
-xZh
-xZh
-slY
-slY
-uxd
-kFU
-kXR
-slY
-rXw
+uiU
+bLG
+diN
+xat
+gSA
+nwb
+qkC
+wvF
+mhk
+qTJ
lYT
mhk
uiw
mhk
-mhk
+sNW
mhk
mhk
ete
@@ -89523,25 +89908,25 @@ slY
slY
mFA
slY
-aus
-voz
-sRg
-hmb
-huh
slY
slY
-qQP
-iqj
-sjq
-sjq
-syx
-jIh
-csA
-jhs
-kso
-kYG
-kYG
-pep
+slY
+slY
+bmO
+slY
+slY
+qgX
+kAn
+slY
+fWj
+hgp
+hgp
+lKf
+cCC
+aBQ
+mFQ
+mFQ
+xRC
nJo
avY
oHk
@@ -89553,7 +89938,7 @@ vMP
eRy
mhk
iSD
-keQ
+bqA
cxz
vUS
miF
@@ -89724,8 +90109,8 @@ uqe
uLW
blb
aKm
-fxp
-nKe
+eXl
+jNV
guh
cBl
fJe
@@ -89778,27 +90163,27 @@ blb
blb
blb
ueX
-gIx
-gKK
-vOm
-tOw
-hVk
-gpP
-iJq
-ivm
+nmV
slY
-kPW
-slY
-slY
-skW
-wOM
-jpR
-ueX
-aae
-uxd
-xaZ
-dZm
+aus
+voz
+sRg
+hmb
+huh
+ivm
slY
+brO
+wZF
+dTj
+umL
+uJV
+uJV
+gnO
+gqw
+gEa
+iAL
+spA
+mhk
ilo
tYL
mhk
@@ -89810,7 +90195,7 @@ mhk
oTH
mhk
lji
-wZD
+qzP
nDj
sRF
miF
@@ -90035,27 +90420,27 @@ dDB
dDB
dDB
slY
-atx
-ueX
-gQm
-hbw
-hfZ
-hmh
-pGE
+aBt
+uPf
+vOm
+tOw
+hVk
+gpP
+iJq
qfV
slY
-kPW
-kAn
-slY
-xZh
-slY
-xZh
+apP
+jHC
slY
-slY
-ksx
-mEB
-slY
-ueX
+hjA
+mnU
+nzO
+jln
+jAN
+gEa
+bzW
+sKO
+mhk
jQv
sNW
mhk
@@ -90296,22 +90681,22 @@ slY
slY
eVc
hbw
-wOZ
-hmj
+qZX
+lWE
arL
sRg
slY
slY
slY
slY
-nHp
-jrX
-jIN
-xEm
-xPX
-ksA
-oJR
-oiw
+wnd
+xat
+fIq
+jBJ
+wnd
+xjc
+aMI
+xat
mhk
jQv
sqz
@@ -90511,7 +90896,7 @@ szg
tpW
pUM
kMe
-prd
+knw
fGf
ayK
izf
@@ -90551,24 +90936,24 @@ sRg
cJT
eEq
sRg
-gQG
+iGb
hbw
-aGI
-hmQ
+nLQ
+mpL
pGE
-jug
-rqq
-rqq
-rqq
-vpb
-lmS
-lAk
-jIY
-jDm
-tfX
-khZ
-nSY
-nYQ
+uwO
+bRA
+bRA
+bRA
+xKn
+dmO
+pVV
+axP
+ivC
+kgp
+ftI
+hao
+uIG
mhk
ifl
mhk
@@ -90810,25 +91195,25 @@ mGY
hXf
xGf
jLb
-hgd
-mrP
+cOa
+lPv
xrZ
sRg
-xat
-xat
-xat
-xat
-tov
-jEK
-jJc
-pOg
-kft
-ktM
-sOP
-otG
+tlG
+tlG
+tlG
+tlG
+lbe
+qCG
+pbV
+sxQ
+day
+mxh
+vRc
+jBN
mhk
oEn
-lPK
+tOu
mhk
mTN
wTO
@@ -90839,7 +91224,7 @@ oUJ
wCR
oOC
iRE
-rya
+mXb
kZI
oUb
yhX
@@ -91028,10 +91413,10 @@ gAV
qkq
wRy
urz
-vDS
-ugt
-lVv
-nHq
+dkD
+iEc
+uuA
+oba
exQ
fib
cca
@@ -91071,21 +91456,21 @@ hgn
jEQ
gRL
hcl
-xat
-vhe
-vhe
-wnd
-lmS
-lBn
-jJc
-lvu
-hPd
-kua
-lEm
-oiL
+tlG
+pRO
+wVr
+puk
+dmO
+kkD
+iGW
+xhC
+ioJ
+xIl
+xYo
+hAO
mhk
-kPo
-wkK
+uLz
+pRc
mhk
wCR
wCR
@@ -91274,7 +91659,7 @@ dyI
dyI
ozQ
ozQ
-xAx
+wxJ
brA
brA
dyI
@@ -91288,7 +91673,7 @@ ayK
swK
jTf
nCC
-rDc
+bwW
qQi
sVu
wfn
@@ -91327,26 +91712,26 @@ hgZ
hgZ
kaz
eOk
-qgK
-xPX
-wzo
-hLm
-bGU
-wSi
-gNV
-wqI
-gEJ
-xat
-wnd
-kIO
-wnd
-mhk
+mYE
+naB
+oyv
+vZS
+rDs
+dAZ
+eTL
+sKj
+gXB
+rhF
+xLw
+oim
+wie
mhk
-sBf
+jab
+rSM
mhk
-mUt
+ksq
wTO
-uSI
+qVR
scY
rJo
bHU
@@ -91545,7 +91930,7 @@ ayK
nXC
nmi
cED
-nQE
+mjh
rLj
gNt
iIK
@@ -91585,21 +91970,21 @@ qiz
fgt
pHC
qiz
-xat
-rrq
-iqq
-xPX
-wnd
-wnd
-jKu
-jWZ
-xRV
-kuq
-msq
-laD
-gSX
+tlG
+rWa
+peE
+tlG
+puk
+puk
+tlG
+tJY
+kxu
+cjf
+mGI
+tlG
mhk
-jQv
+rXw
+rSM
mhk
wCR
wCR
@@ -91788,7 +92173,7 @@ cBd
cBd
dyI
ozQ
-jvm
+vkR
brA
dyI
oer
@@ -91802,7 +92187,7 @@ ayK
wfn
wfn
osT
-qxF
+wnf
wap
wfn
gKL
@@ -91846,15 +92231,15 @@ xRV
xRV
xRV
xRV
-lCg
-lCg
-kYa
-rBh
-xRV
-iLF
-kJb
-laL
-loj
+ccO
+mWU
+lnL
+dOH
+rbT
+ppP
+hSn
+hpb
+mhk
mhk
jby
mhk
@@ -92101,20 +92486,20 @@ nxI
sxZ
qGc
pfw
-sar
-tSA
-frI
-frI
-uIv
-frI
-aDJ
-hKV
-mZg
+dEp
+vWy
frI
+aJD
+aJD
+wqx
+aJD
+knR
+mDk
frI
-oyp
+dBn
+nwf
mXZ
-mUm
+ogq
mAR
qWG
fkS
@@ -92362,8 +92747,8 @@ uAo
iIv
uAo
jsG
-jLr
-aHS
+oQP
+mIp
fHN
jpu
pWM
@@ -92617,9 +93002,9 @@ nTa
tlt
eIM
yjZ
-yjZ
-yjZ
-jtd
+pzk
+pzk
+eII
xSw
kfw
yeD
@@ -92878,7 +93263,7 @@ xZS
xZS
xRV
xRV
-vIJ
+eyx
kux
wGz
yaL
@@ -93405,7 +93790,7 @@ cKt
jVM
hIm
azq
-iTv
+api
wMg
lql
vtr
@@ -93670,7 +94055,7 @@ mmL
qDC
btY
mUi
-xMu
+xeO
qmM
vSi
hEJ
@@ -94166,11 +94551,11 @@ xZS
vET
ncL
qwz
-jVM
-jVM
-jVM
-jVM
-jVM
+yaL
+yaL
+yaL
+yaL
+yaL
jVM
eAm
jVM
@@ -94423,7 +94808,7 @@ uVT
vET
ncL
wQB
-jVx
+ebn
jVM
rXy
bFO
@@ -94947,7 +95332,7 @@ ptX
hsH
srg
jVM
-ayT
+nJK
sZo
yfC
lnN
@@ -95200,7 +95585,7 @@ jVM
jVM
jVM
jVM
-pSI
+qtW
jVM
xlU
jRK
@@ -95453,11 +95838,11 @@ kvT
wQB
cZi
jVM
-lbl
-bwy
-mqz
+dgt
+sTN
+nHb
jVM
-gls
+cMH
jVM
lzB
jVM
@@ -95710,11 +96095,11 @@ kyO
wQB
drC
jVM
-lzW
-dbJ
-lMH
+dqF
+sKh
+iFG
jVM
-gls
+cMH
jVM
uZY
jVM
@@ -95967,11 +96352,11 @@ ncL
wQB
ydz
jVM
-lEO
-eHv
-bes
-pSI
-gls
+bgl
+sjn
+mrY
+qtW
+cMH
jVM
joR
jVM
@@ -96494,7 +96879,7 @@ mgW
yfC
edG
wBc
-jJd
+qiC
qiC
ghj
qiC
@@ -97506,7 +97891,7 @@ opn
jYY
ndJ
rJZ
-eBC
+egW
xRV
xRV
xRV
@@ -97528,7 +97913,7 @@ xmt
hrl
xmt
xmt
-lHZ
+xli
eNP
qFc
cEo
@@ -97765,8 +98150,8 @@ dCu
eXR
wQB
rHl
-sVO
-lbi
+dMC
+ucO
jVM
jTn
xXe
@@ -98021,7 +98406,7 @@ psc
dCu
rJZ
wQB
-xAV
+xrt
txW
nCX
jVM
@@ -98537,7 +98922,7 @@ rJZ
wQB
eIO
xND
-ind
+czh
jVM
oZy
jVM
@@ -100356,7 +100741,7 @@ xkV
ecC
cvV
spH
-elN
+whg
dPp
sFs
fZZ
@@ -100870,7 +101255,7 @@ gyy
xkV
swW
vkh
-oNW
+kPh
cSy
bpY
sMt
@@ -101891,7 +102276,7 @@ rZq
ycX
pBu
khY
-lvr
+lmZ
aGq
khY
khY
@@ -102386,7 +102771,7 @@ cCD
gcz
jyM
uoB
-jZn
+eSA
baJ
rji
vAw
@@ -105222,7 +105607,7 @@ sRL
bCP
dqB
pIf
-lZP
+upF
jgF
wqj
rEa
@@ -105734,7 +106119,7 @@ nVa
fuD
xVV
eWP
-lNN
+vXv
lWp
xhD
heN
@@ -106767,7 +107152,7 @@ jvQ
eul
eeJ
egJ
-yfF
+egA
gMq
duT
gtk
@@ -107529,7 +107914,7 @@ rqw
sRL
sRL
sRL
-nqa
+ceD
sRL
sRL
eeJ
@@ -114219,7 +114604,7 @@ xQJ
bfE
rIo
xQJ
-ohN
+jIn
oUC
oPM
sDj
@@ -114992,7 +115377,7 @@ noB
xQJ
avN
oPM
-rYt
+jLt
wBI
sEr
dQQ
@@ -118775,7 +119160,7 @@ dDB
dDB
dDB
dDB
-mzv
+dRz
dDB
dDB
dDB
@@ -121442,7 +121827,7 @@ xok
xok
xok
xok
-eog
+dTi
tbI
xok
qNO
@@ -122217,7 +122602,7 @@ lkV
iJL
rci
vTv
-dpz
+juU
boY
agI
kQt
@@ -122988,7 +123373,7 @@ nWh
xnR
aLC
wLZ
-xwn
+eKV
cns
vwJ
kQt
@@ -129173,10 +129558,10 @@ uxL
lhl
jxD
ylD
-hqH
+cWC
vzv
brz
-sJf
+egg
ylD
wyj
dYR
diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm
index 096cf003ac4eb..2dfbf9a55ad48 100644
--- a/_maps/map_files/wawastation/wawastation.dmm
+++ b/_maps/map_files/wawastation/wawastation.dmm
@@ -17542,10 +17542,8 @@
/area/space/nearstation)
"gkj" = (
/obj/effect/turf_decal/tile/blue/fourcorners,
-/obj/machinery/camera/autoname/directional/north{
- network = list("ss13","medbay")
- },
/obj/machinery/iv_drip,
+/obj/machinery/light/cold/dim/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"gkt" = (
@@ -22068,6 +22066,7 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/obj/machinery/light_switch/directional/west,
/obj/item/wrench/medical,
+/obj/machinery/light/cold/dim/directional/west,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"hPs" = (
@@ -26151,6 +26150,7 @@
},
/obj/structure/closet/secure_closet/captains,
/obj/machinery/firealarm/directional/north,
+/obj/item/storage/lockbox/medal,
/turf/open/floor/carpet/royalblue,
/area/station/command/heads_quarters/captain/private)
"jpe" = (
@@ -38292,7 +38292,7 @@
},
/obj/structure/cable,
/obj/effect/mapping_helpers/apc/cell_5k,
-/turf/open/floor/circuit/green,
+/turf/open/floor/circuit/green/telecomms/mainframe,
/area/station/ai_monitored/turret_protected/ai)
"nAa" = (
/obj/machinery/door/firedoor/border_only{
@@ -41519,7 +41519,7 @@
name = "AI Core Shutters"
},
/obj/structure/cable,
-/turf/open/floor/circuit/green,
+/turf/open/floor/circuit/green/telecomms/mainframe,
/area/station/ai_monitored/turret_protected/ai)
"oOb" = (
/obj/effect/turf_decal/tile/neutral{
@@ -65509,10 +65509,12 @@
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"xcC" = (
-/obj/machinery/light/cold/dim/directional/north,
/obj/item/radio/intercom/directional/east,
/obj/machinery/vending/drugs,
/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/machinery/camera/autoname/directional/north{
+ network = list("ss13","medbay")
+ },
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"xdf" = (
diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json
index e83101d74d733..af3ffa3521293 100644
--- a/_maps/multiz_debug.json
+++ b/_maps/multiz_debug.json
@@ -11,17 +11,13 @@
],
"traits": [
{
- "Up": true,
"Linkage": "Cross"
},
{
- "Up": true,
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/northstar.json b/_maps/northstar.json
index bd1a53c562272..fdae8ac42f387 100644
--- a/_maps/northstar.json
+++ b/_maps/northstar.json
@@ -14,23 +14,17 @@
"space_empty_levels": 2,
"traits": [
{
- "Up": true,
"Linkage": "Cross"
},
{
- "Up": true,
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Up": true,
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm
index 15d7485c99bf3..410cad31a81c7 100644
--- a/_maps/templates/battlecruiser_starfury.dmm
+++ b/_maps/templates/battlecruiser_starfury.dmm
@@ -2364,11 +2364,11 @@
/obj/structure/rack{
dir = 8
},
-/obj/item/gun/ballistic/revolver/syndicate{
+/obj/item/gun/ballistic/revolver/badass{
pixel_x = 2;
pixel_y = 5
},
-/obj/item/gun/ballistic/revolver/syndicate{
+/obj/item/gun/ballistic/revolver/badass{
pixel_x = -1;
pixel_y = 2
},
diff --git a/_maps/tramstation.json b/_maps/tramstation.json
index 7336decb3d7f5..5f5825dce68fe 100644
--- a/_maps/tramstation.json
+++ b/_maps/tramstation.json
@@ -11,12 +11,10 @@
},
"traits": [
{
- "Up": true,
"Baseturf": "/turf/open/misc/asteroid/airless",
"Linkage": "Cross"
},
{
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/wawastation.json b/_maps/wawastation.json
index 71d716a56e07e..71c818bc6bd61 100644
--- a/_maps/wawastation.json
+++ b/_maps/wawastation.json
@@ -11,12 +11,10 @@
},
"traits": [
{
- "Up": true,
"Baseturf": "/turf/open/misc/asteroid/airless",
"Linkage": "Cross"
},
{
- "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm
index 2de9e7140ad26..115748a9a82d9 100644
--- a/code/__DEFINES/MC.dm
+++ b/code/__DEFINES/MC.dm
@@ -141,3 +141,11 @@
}\
/datum/controller/subsystem/ai_controllers/##X/fire() {..() /*just so it shows up on the profiler*/} \
/datum/controller/subsystem/ai_controllers/##X
+
+#define UNPLANNED_CONTROLLER_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/unplanned_controllers/##X);\
+/datum/controller/subsystem/unplanned_controllers/##X/New(){\
+ NEW_SS_GLOBAL(SS##X);\
+ PreInit();\
+}\
+/datum/controller/subsystem/unplanned_controllers/##X/fire() {..() /*just so it shows up on the profiler*/} \
+/datum/controller/subsystem/unplanned_controllers/##X
diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm
index 4f1cf4b746ac6..a6dccb5e2268e 100644
--- a/code/__DEFINES/achievements.dm
+++ b/code/__DEFINES/achievements.dm
@@ -58,6 +58,7 @@
#define MEDAL_SISYPHUS "Sisyphus"
#define MEDAL_ARCHMAGE "Archmage"
#define MEDAL_CIGARETTES "Cigarettes"
+#define MEDAL_SHARKDRAGON "Sharkdragon"
#define MEDAL_THEORETICAL_LIMITS "All Within Theoretical Limits"
//Skill medal hub IDs
diff --git a/code/__DEFINES/admin_verb.dm b/code/__DEFINES/admin_verb.dm
index 71e0475e5c39c..ae8c75b058886 100644
--- a/code/__DEFINES/admin_verb.dm
+++ b/code/__DEFINES/admin_verb.dm
@@ -80,6 +80,7 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor
#define ADMIN_CATEGORY_EVENTS "Admin.Events"
#define ADMIN_CATEGORY_FUN "Admin.Fun"
#define ADMIN_CATEGORY_GAME "Admin.Game"
+#define ADMIN_CATEGORY_SHUTTLE "Admin.Shuttle"
// Special categories that are separated
#define ADMIN_CATEGORY_DEBUG "Debug"
diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm
index e6f4feb259a59..17db402c6c04d 100644
--- a/code/__DEFINES/alerts.dm
+++ b/code/__DEFINES/alerts.dm
@@ -19,7 +19,6 @@
#define ALERT_BUCKLED "buckled"
#define ALERT_HANDCUFFED "handcuffed"
#define ALERT_LEGCUFFED "legcuffed"
-#define ALERT_WOUNDED "wound"
#define ALERT_IRRADIATED "irradiated"
#define ALERT_EMBEDDED_OBJECT "embeddedobject"
#define ALERT_SHOES_KNOT "shoealert"
diff --git a/code/__DEFINES/basic_mobs.dm b/code/__DEFINES/basic_mobs.dm
index e519fb25240be..6696da857c8e3 100644
--- a/code/__DEFINES/basic_mobs.dm
+++ b/code/__DEFINES/basic_mobs.dm
@@ -33,6 +33,9 @@
///keeps track of how many gutlunches are born
GLOBAL_VAR_INIT(gutlunch_count, 0)
+///Pet customization settings saved for every client
+GLOBAL_LIST_EMPTY(customized_pets)
+
//raptor defines
#define RAPTOR_RED "Red"
diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm
index 477bed243c1a2..39db31f794685 100644
--- a/code/__DEFINES/configuration.dm
+++ b/code/__DEFINES/configuration.dm
@@ -28,3 +28,9 @@
#define RESPAWN_FLAG_FREE 1
/// Can respawn, but not as the same character
#define RESPAWN_FLAG_NEW_CHARACTER 2
+
+// Human authority defines
+#define HUMAN_AUTHORITY_DISABLED "DISABLED"
+#define HUMAN_AUTHORITY_HUMAN_WHITELIST "HUMAN_WHITELIST"
+#define HUMAN_AUTHORITY_NON_HUMAN_WHITELIST "NON_HUMAN_WHITELIST"
+#define HUMAN_AUTHORITY_ENFORCED "ENFORCED"
diff --git a/code/__DEFINES/construction/material.dm b/code/__DEFINES/construction/material.dm
index 57d55ab804281..2764c0bbfaf56 100644
--- a/code/__DEFINES/construction/material.dm
+++ b/code/__DEFINES/construction/material.dm
@@ -21,6 +21,14 @@
#define MAT_CATEGORY_RIGID "rigid material"
/// Materials that can be used to craft items
#define MAT_CATEGORY_ITEM_MATERIAL "item material"
+/**
+ * Materials that can also be used to craft items for designs that require two custom mats.
+ * This is mainly a work around to the fact we can't (easily) have the same category show
+ * multiple times in a list with different values, because list access operator [] will fetch the
+ * top-most value.
+ */
+#define MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY "item material complementary"
+
/// Use this flag on TRUE if you want the basic recipes
#define MAT_CATEGORY_BASE_RECIPES "basic recipes"
@@ -87,3 +95,10 @@
#define MATERIAL_RARITY_RARE 3
/// Is this material only going to spawn once in ore vents? (6% of vents on lavaland)
#define MATERIAL_RARITY_UNDISCOVERED 1
+
+///The key to access the 'optimal' amount of a material key from its assoc value list.
+#define MATERIAL_LIST_OPTIMAL_AMOUNT "optimal_amount"
+///The key to access the multiplier used to selectively control effects and modifiers of a material.
+#define MATERIAL_LIST_MULTIPLIER "multiplier"
+///A macro that ensures some multiplicative modifiers higher than 1 don't become lower than 1 and viceversa because of the multiplier.
+#define GET_MATERIAL_MODIFIER(modifier, multiplier) (modifier >= 1 ? 1 + ((modifier) - 1) * (multiplier) : (modifier)**(multiplier))
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 b95ffba607fd3..80c6f89a10884 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
@@ -42,8 +42,8 @@
/// Called from update_health_hud, whenever a bodypart is being updated on the health doll
#define COMSIG_BODYPART_UPDATING_HEALTH_HUD "bodypart_updating_health_hud"
- /// Return to override that bodypart's health hud with your own icon
- #define COMPONENT_OVERRIDE_BODYPART_HEALTH_HUD (1<<0)
+ /// Return to override that bodypart's health hud with whatever is returned by the list
+ #define OVERRIDE_BODYPART_HEALTH_HUD (1<<0)
/// Called from /obj/item/bodypart/check_for_injuries (mob/living/carbon/examiner, list/check_list)
#define COMSIG_BODYPART_CHECKED_FOR_INJURY "bodypart_injury_checked"
diff --git a/code/__DEFINES/dcs/signals/signals_mod.dm b/code/__DEFINES/dcs/signals/signals_mod.dm
index d3439cf857291..8cabf7537ab99 100644
--- a/code/__DEFINES/dcs/signals/signals_mod.dm
+++ b/code/__DEFINES/dcs/signals/signals_mod.dm
@@ -39,3 +39,5 @@
#define COMSIG_MOD_WEARER_SET "mod_wearer_set"
/// Called when the MODsuit wearer is unset.
#define COMSIG_MOD_WEARER_UNSET "mod_wearer_unset"
+/// Sent by the tether module when it triggers its snapping function
+#define COMSIG_MOD_TETHER_SNAP "mod_tether_snap"
diff --git a/code/__DEFINES/dcs/signals/signals_screentips.dm b/code/__DEFINES/dcs/signals/signals_screentips.dm
index 8f7326ee2ee79..31a851c048395 100644
--- a/code/__DEFINES/dcs/signals/signals_screentips.dm
+++ b/code/__DEFINES/dcs/signals/signals_screentips.dm
@@ -21,3 +21,15 @@
/// Tells the contextual screentips system that the list context was mutated.
#define CONTEXTUAL_SCREENTIP_SET (1 << 0)
+
+
+/// A user screentip name override.
+/// These are used for mobs that may override the names of atoms they hover over.
+/// Examples include prosopagnosia (sees human names as Unknown regardless of what they are).
+/// Called on /mob with a mutable screentip name list, the item being used, and the atom hovered over.
+/// A screentip name override list is a list used for returning a string value from the signal. Only the first value matters.
+/// If you mutate the list in this signal, you must return SCREENTIP_NAME_SET.
+#define COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER "mob_requesting_screentip_name_from_user"
+
+/// Tells the screentips system that the list names was mutated.
+#define SCREENTIP_NAME_SET (1 << 0)
diff --git a/code/__DEFINES/gravity.dm b/code/__DEFINES/gravity.dm
index f61734cd55fc9..da81c0465cabc 100644
--- a/code/__DEFINES/gravity.dm
+++ b/code/__DEFINES/gravity.dm
@@ -12,6 +12,34 @@
/// Singularity is stage 6 (11x11)
#define STAGE_SIX 11 //From supermatter shard
+// Minimum energy needed to reach a stage
+/// Singularity stage 1 energy requirement
+#define STAGE_ONE_ENERGY_REQUIREMENT 1
+/// Singularity stage 2 energy requirement
+#define STAGE_TWO_ENERGY_REQUIREMENT 200
+/// Singularity stage 3 energy requirement
+#define STAGE_THREE_ENERGY_REQUIREMENT 500
+/// Singularity stage 4 energy requirement
+#define STAGE_FOUR_ENERGY_REQUIREMENT 1000
+/// Singularity stage 5 energy requirement
+#define STAGE_FIVE_ENERGY_REQUIREMENT 2000
+/// Singularity stage 6 energy requirement (also needs to consume a SM shard)
+#define STAGE_SIX_ENERGY_REQUIREMENT 3000
+
+// These values get the median number between two stages to prevent expansion/shrinkage immediately
+/// Singularity stage 1
+#define STAGE_ONE_ENERGY ((STAGE_TWO_ENERGY_REQUIREMENT - STAGE_ONE_ENERGY_REQUIREMENT) * 0.5) + STAGE_ONE_ENERGY_REQUIREMENT
+/// Singularity stage 2
+#define STAGE_TWO_ENERGY ((STAGE_THREE_ENERGY_REQUIREMENT - STAGE_TWO_ENERGY_REQUIREMENT) * 0.5) + STAGE_TWO_ENERGY_REQUIREMENT
+/// Singularity stage 3
+#define STAGE_THREE_ENERGY ((STAGE_FOUR_ENERGY_REQUIREMENT - STAGE_THREE_ENERGY_REQUIREMENT) * 0.5) + STAGE_THREE_ENERGY_REQUIREMENT
+/// Singularity stage 4
+#define STAGE_FOUR_ENERGY ((STAGE_FIVE_ENERGY_REQUIREMENT - STAGE_FOUR_ENERGY_REQUIREMENT) * 0.5) + STAGE_FOUR_ENERGY_REQUIREMENT
+/// Singularity stage 5
+#define STAGE_FIVE_ENERGY ((STAGE_SIX_ENERGY_REQUIREMENT - STAGE_FIVE_ENERGY_REQUIREMENT) * 0.5) + STAGE_FIVE_ENERGY_REQUIREMENT
+/// Singularity stage 6 (hardcoded at 4000 since there is no stage 7)
+#define STAGE_SIX_ENERGY 4000
+
/**
* The point where gravity is negative enough to pull you upwards.
* That means walking checks for a ceiling instead of a floor, and you can fall "upwards"
diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm
index fd66cee5bb93e..b031292b0242e 100644
--- a/code/__DEFINES/interaction_flags.dm
+++ b/code/__DEFINES/interaction_flags.dm
@@ -48,3 +48,5 @@
#define INTERACT_MACHINE_REQUIRES_SIGHT (1<<6)
/// the user must be able to read to interact
#define INTERACT_MACHINE_REQUIRES_LITERACY (1<<7)
+/// user must be standing up in order to interact
+#define INTERACT_MACHINE_REQUIRES_STANDING (1<<8)
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 769c5ace612a5..572b6f1197e82 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -253,7 +253,7 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list(
#define ismecha(A) (istype(A, /obj/vehicle/sealed/mecha))
-#define ismopable(A) (A && (A.layer <= FLOOR_CLEAN_LAYER)) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
+#define ismopable(A) (A && ((A.plane == FLOOR_PLANE) ? (A.layer <= FLOOR_CLEAN_LAYER) : (A.layer <= GAME_CLEAN_LAYER))) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
#define isorgan(A) (istype(A, /obj/item/organ))
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index 953e7648009b8..b0b8993a22357 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -12,6 +12,11 @@
/// Used when the `get_job_unavailable_error_message` proc can't make sense of a given code.
#define GENERIC_JOB_UNAVAILABLE_ERROR "Error: Unknown job availability."
+// Human authority settings
+// If you want to add another setting, make sure to also add it to the if chain in /datum/job_config_type/human_authority/validate_value()
+#define JOB_AUTHORITY_HUMANS_ONLY "HUMANS_ONLY"
+#define JOB_AUTHORITY_NON_HUMANS_ALLOWED "NON_HUMANS_ALLOWED"
+
#define DEFAULT_RELIGION "Christianity"
#define DEFAULT_DEITY "Space Jesus"
#define DEFAULT_BIBLE "Default Bible Name"
@@ -25,6 +30,7 @@
#define JOB_CONFIG_REQUIRED_CHARACTER_AGE "Required Character Age"
#define JOB_CONFIG_SPAWN_POSITIONS "Spawn Positions"
#define JOB_CONFIG_TOTAL_POSITIONS "Total Positions"
+#define JOB_CONFIG_HUMAN_AUTHORITY "Human Authority Whitelist Setting"
/**
* =======================
diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm
index ce1861fc7537c..8005787676aec 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -151,6 +151,11 @@
#define ABOVE_OPEN_TURF_LAYER (12 + TOPDOWN_LAYER)
///catwalk overlay of /turf/open/floor/plating/catwalk_floor
#define CATWALK_LAYER (13 + TOPDOWN_LAYER)
+#define LOWER_RUNE_LAYER (14 + TOPDOWN_LAYER)
+#define RUNE_LAYER (15 + TOPDOWN_LAYER)
+/// [GAME_CLEAN_LAYER] but for floors.
+/// Basically any layer below this (numerically) is "on" a floor for the purposes of washing
+#define FLOOR_CLEAN_LAYER (20 + TOPDOWN_LAYER)
//WALL_PLANE layers
#define BELOW_CLOSED_TURF_LAYER 2.053
@@ -169,12 +174,10 @@
#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
-#define LOW_SIGIL_LAYER 2.52
-#define SIGIL_LAYER 2.53
#define HIGH_PIPE_LAYER 2.54
// Anything above this layer is not "on" a turf for the purposes of washing
// I hate this life of ours
-#define FLOOR_CLEAN_LAYER 2.55
+#define GAME_CLEAN_LAYER 2.55
#define TRAM_STRUCTURE_LAYER 2.57
#define TRAM_FLOOR_LAYER 2.58
#define TRAM_WALL_LAYER 2.59
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 1fb91b0aa8738..f0368ac8d92df 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -44,6 +44,10 @@
#define VENTCRAWLER_NUDE 1
#define VENTCRAWLER_ALWAYS 2
+// Flags for the mob_flags var on /mob
+/// May override the names used in screentips of OTHER OBJECTS hovered over.
+#define MOB_HAS_SCREENTIPS_NAME_OVERRIDE (1 << 0)
+
//Mob bio-types flags
///The mob is organic, can heal from medical sutures.
#define MOB_ORGANIC (1 << 0)
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index f27e5473778d6..0fbdc0d44b2b6 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -187,3 +187,5 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_CAT_MEOW "cat_meow"
#define SFX_CAT_PURR "cat_purr"
#define SFX_LIQUID_POUR "liquid_pour"
+#define SFX_SNORE_FEMALE "snore_female"
+#define SFX_SNORE_MALE "snore_male"
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index c5e3172533a45..ea707e33a1f4a 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -193,6 +193,7 @@
// Subsystem fire priority, from lowest to highest priority
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
+#define FIRE_PRIORITY_UNPLANNED_NPC 3
#define FIRE_PRIORITY_IDLE_NPC 5
#define FIRE_PRIORITY_PING 10
#define FIRE_PRIORITY_SERVER_MAINT 10
diff --git a/code/__DEFINES/supermatter.dm b/code/__DEFINES/supermatter.dm
index 5dee00db3103a..61be539749e1c 100644
--- a/code/__DEFINES/supermatter.dm
+++ b/code/__DEFINES/supermatter.dm
@@ -69,6 +69,15 @@
#define SLIGHTLY_CHARGED_ZAP_ICON_STATE "sm_arc_supercharged"
#define OVER_9000_ZAP_ICON_STATE "sm_arc_dbz_referance" //Witty I know
+// Zap energy accumulation keys.
+/// Normal zap energy accumulation key from normal operations.
+#define ZAP_ENERGY_ACCUMULATION_NORMAL "normal"
+/// High energy zap energy accumulation key from high energy extra effects.
+#define ZAP_ENERGY_ACCUMULATION_HIGH_ENERGY "high"
+
+/// Zap energy discharge portion per tick.
+#define ZAP_ENERGY_DISCHARGE_PORTION 0.1
+
#define SUPERMATTER_DEFAULT_BULLET_ENERGY 2
#define SUPERMATTER_CASCADE_PERCENT 80
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index 4fdf598f65977..06f1bd6764b2a 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -963,6 +963,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///A trait for mechs that were created through the normal construction process, and not spawned by map or other effects.
#define TRAIT_MECHA_CREATED_NORMALLY "trait_mecha_created_normally"
+/// Stops a movable from being removed from the mob it's in by the content_barfer component.
+#define TRAIT_NOT_BARFABLE "not_barfable"
+
///fish traits
#define TRAIT_FISH_STASIS "fish_stasis"
#define TRAIT_FISH_FLOPPING "fish_flopping"
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 45afc0e0c85a6..0f5f47b242ab7 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -162,6 +162,7 @@ DEFINE_BITFIELD(interaction_flags_machine, list(
"INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON,
"INTERACT_MACHINE_REQUIRES_SIGHT" = INTERACT_MACHINE_REQUIRES_SIGHT,
"INTERACT_MACHINE_REQUIRES_LITERACY" = INTERACT_MACHINE_REQUIRES_LITERACY,
+ "INTERACT_MACHINE_REQUIRES_STANDING" = INTERACT_MACHINE_REQUIRES_STANDING,
))
DEFINE_BITFIELD(interaction_flags_item, list(
@@ -254,6 +255,10 @@ DEFINE_BITFIELD(mob_biotypes, list(
"MOB_UNDEAD" = MOB_UNDEAD,
))
+DEFINE_BITFIELD(mob_flags, list(
+ "MOB_HAS_SCREENTIPS_NAME_OVERRIDE" = MOB_HAS_SCREENTIPS_NAME_OVERRIDE,
+))
+
DEFINE_BITFIELD(mob_respiration_type, list(
"RESPIRATION_OXYGEN" = RESPIRATION_OXYGEN,
"RESPIRATION_N2" = RESPIRATION_N2,
diff --git a/code/_globalvars/lists/basic_ai.dm b/code/_globalvars/lists/basic_ai.dm
index 8d79c9bfafeaf..a8646bb8d7f92 100644
--- a/code/_globalvars/lists/basic_ai.dm
+++ b/code/_globalvars/lists/basic_ai.dm
@@ -10,3 +10,10 @@ GLOBAL_LIST_INIT(ai_controllers_by_status, list(
///basic ai controllers based on their z level
GLOBAL_LIST_EMPTY(ai_controllers_by_zlevel)
+
+///basic ai controllers that are currently performing idled behaviors
+GLOBAL_LIST_INIT(unplanned_controllers, list(
+ AI_STATUS_ON = list(),
+ AI_STATUS_IDLE = list(),
+))
+
diff --git a/code/_globalvars/phobias.dm b/code/_globalvars/phobias.dm
index 131e530ce82ac..e112d376adf5d 100644
--- a/code/_globalvars/phobias.dm
+++ b/code/_globalvars/phobias.dm
@@ -69,6 +69,7 @@ GLOBAL_LIST_INIT(phobia_mobs, list(
)),
"carps" = typecacheof(list(
/mob/living/basic/carp,
+ /mob/living/basic/space_dragon,
)),
"conspiracies" = typecacheof(list(
/mob/living/basic/drone,
@@ -247,6 +248,7 @@ GLOBAL_LIST_INIT(phobia_objs, list(
/obj/item/clothing/mask/gas/carp,
/obj/item/cigarette/carp,
/obj/item/clothing/under/suit/carpskin,
+ /obj/item/fish/baby_carp,
/obj/item/food/cubancarp,
/obj/item/food/fishmeat/carp,
/obj/item/grenade/clusterbuster/spawner_spesscarp,
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index dad143c4279db..29e3ea84f1465 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -57,11 +57,13 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_MOVE_PHASING" = TRAIT_MOVE_PHASING,
"TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN,
"TRAIT_MOVE_VENTCRAWLING" = TRAIT_MOVE_VENTCRAWLING,
- "TRAIT_NOT_ENGRAVABLE" = TRAIT_NOT_ENGRAVABLE,
+ "TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN,
"TRAIT_NO_FLOATING_ANIM" = TRAIT_NO_FLOATING_ANIM,
"TRAIT_NO_MANIFEST_CONTENTS_ERROR" = TRAIT_NO_MANIFEST_CONTENTS_ERROR,
"TRAIT_NO_MISSING_ITEM_ERROR" = TRAIT_NO_MISSING_ITEM_ERROR,
"TRAIT_NO_THROW_HITPUSH" = TRAIT_NO_THROW_HITPUSH,
+ "TRAIT_NOT_BARFABLE" = TRAIT_NOT_BARFABLE,
+ "TRAIT_NOT_ENGRAVABLE" = TRAIT_NOT_ENGRAVABLE,
"TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT" = TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT,
"TRAIT_ON_HIT_EFFECT" = TRAIT_ON_HIT_EFFECT,
"TRAIT_RUNECHAT_HIDDEN" = TRAIT_RUNECHAT_HIDDEN,
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 2f15e52ff31f6..f92bb4682e1c8 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -94,7 +94,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/healths
var/atom/movable/screen/stamina
- var/atom/movable/screen/healthdoll
+ var/atom/movable/screen/healthdoll/healthdoll
var/atom/movable/screen/spacesuit
var/atom/movable/screen/hunger
// subtypes can override this to force a specific UI style
@@ -505,6 +505,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
if(ismob(mymob) && mymob.hud_used == src)
show_hud(hud_version)
+/// Handles dimming inventory slots that a mob can't equip items to in their current state
/datum/hud/proc/update_locked_slots()
return
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 0ab0f022ca22e..cdf63cb68812c 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -276,7 +276,7 @@
hunger = new /atom/movable/screen/hunger(null, src)
infodisplay += hunger
- healthdoll = new /atom/movable/screen/healthdoll(null, src)
+ healthdoll = new /atom/movable/screen/healthdoll/human(null, src)
infodisplay += healthdoll
stamina = new /atom/movable/screen/stamina(null, src)
@@ -306,16 +306,40 @@
/datum/hud/human/update_locked_slots()
if(!mymob)
return
- var/mob/living/carbon/human/H = mymob
- if(!istype(H) || !H.dna.species)
- return
- var/datum/species/S = H.dna.species
+ var/blocked_slots = NONE
+
+ var/mob/living/carbon/human/human_mob = mymob
+ if(istype(human_mob))
+ blocked_slots |= human_mob.dna?.species?.no_equip_flags
+ if(isnull(human_mob.w_uniform) && !HAS_TRAIT(human_mob, TRAIT_NO_JUMPSUIT))
+ var/obj/item/bodypart/chest = human_mob.get_bodypart(BODY_ZONE_CHEST)
+ if(isnull(chest) || IS_ORGANIC_LIMB(chest))
+ blocked_slots |= ITEM_SLOT_ID|ITEM_SLOT_BELT
+ var/obj/item/bodypart/left_leg = human_mob.get_bodypart(BODY_ZONE_L_LEG)
+ if(isnull(left_leg) || IS_ORGANIC_LIMB(left_leg))
+ blocked_slots |= ITEM_SLOT_LPOCKET
+ var/obj/item/bodypart/right_leg = human_mob.get_bodypart(BODY_ZONE_R_LEG)
+ if(isnull(right_leg) || IS_ORGANIC_LIMB(right_leg))
+ blocked_slots |= ITEM_SLOT_RPOCKET
+ if(isnull(human_mob.wear_suit))
+ blocked_slots |= ITEM_SLOT_SUITSTORE
+ if(human_mob.num_hands <= 0)
+ blocked_slots |= ITEM_SLOT_GLOVES
+ if(human_mob.num_legs < 2) // update this when you can wear shoes on one foot
+ blocked_slots |= ITEM_SLOT_FEET
+ var/obj/item/bodypart/head/head = human_mob.get_bodypart(BODY_ZONE_HEAD)
+ if(isnull(head))
+ blocked_slots |= ITEM_SLOT_HEAD|ITEM_SLOT_EARS|ITEM_SLOT_EYES|ITEM_SLOT_MASK
+ var/obj/item/organ/internal/eyes/eyes = human_mob.get_organ_slot(ORGAN_SLOT_EYES)
+ if(eyes?.no_glasses)
+ blocked_slots |= ITEM_SLOT_EYES
+ if(human_mob.bodyshape & BODYSHAPE_DIGITIGRADE)
+ blocked_slots |= ITEM_SLOT_FEET
+
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
- if(inv.slot_id)
- if(S.no_equip_flags & inv.slot_id)
- inv.alpha = 128
- else
- inv.alpha = initial(inv.alpha)
+ if(!inv.slot_id)
+ continue
+ inv.alpha = (blocked_slots & inv.slot_id) ? 128 : initial(inv.alpha)
/datum/hud/human/hidden_inventory_update(mob/viewer)
if(!mymob)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 31390c62cbb91..efc7f1c3cfedf 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -724,6 +724,88 @@
screen_loc = ui_living_healthdoll
var/filtered = FALSE //so we don't repeatedly create the mask of the mob every update
+/atom/movable/screen/healthdoll/human
+ /// Tracks components of our doll, each limb is a separate atom in our vis_contents
+ VAR_PRIVATE/list/atom/movable/screen/limbs
+ /// Lazylist, tracks all body zones that are wounded currently
+ /// Used so we can sync animations should the list be updated
+ VAR_PRIVATE/list/animated_zones
+
+/atom/movable/screen/healthdoll/human/Initialize(mapload, datum/hud/hud_owner)
+ . = ..()
+ limbs = list()
+ for(var/i in GLOB.all_body_zones)
+ var/atom/movable/screen/healthdoll_limb/limb = new(src, null)
+ // layer chest above other limbs, it's the center after all
+ limb.layer = i == BODY_ZONE_CHEST ? layer + 0.05 : layer
+ limbs[i] = limb
+ // why viscontents? why not overlays? - because i want to animate filters
+ vis_contents += limb
+ update_appearance()
+
+/atom/movable/screen/healthdoll/human/Destroy()
+ QDEL_LIST_ASSOC_VAL(limbs)
+ vis_contents.Cut()
+ return ..()
+
+/atom/movable/screen/healthdoll/human/update_icon_state()
+ . = ..()
+ var/mob/living/carbon/human/owner = hud?.mymob
+ if(isnull(owner))
+ return
+ if(owner.stat == DEAD)
+ for(var/limb in limbs)
+ limbs[limb].icon_state = "[limb]DEAD"
+ return
+
+ var/list/current_animated = LAZYLISTDUPLICATE(animated_zones)
+
+ for(var/obj/item/bodypart/body_part as anything in owner.bodyparts)
+ var/icon_key = 0
+ var/part_zone = body_part.body_zone
+
+ var/list/overridable_key = list(icon_key)
+ if(body_part.bodypart_disabled)
+ icon_key = 7
+ else if(owner.stat == DEAD)
+ icon_key = "DEAD"
+ else if(SEND_SIGNAL(body_part, COMSIG_BODYPART_UPDATING_HEALTH_HUD, owner, overridable_key) & OVERRIDE_BODYPART_HEALTH_HUD)
+ icon_key = overridable_key[1] // thanks i hate it
+ else if(!owner.has_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy))
+ var/damage = body_part.get_damage() / body_part.max_damage
+ // calculate what icon state (1-5, or 0 if undamaged) to use based on damage
+ icon_key = clamp(ceil(damage * 5), 0, 5)
+
+ if(length(body_part.wounds))
+ LAZYSET(animated_zones, part_zone, TRUE)
+ else
+ LAZYREMOVE(animated_zones, part_zone)
+ limbs[part_zone].icon_state = "[part_zone][icon_key]"
+ // handle leftovers
+ for(var/missing_zone in owner.get_missing_limbs())
+ limbs[missing_zone].icon_state = "[missing_zone]6"
+ LAZYREMOVE(animated_zones, missing_zone)
+ // time to re-sync animations, something changed
+ if(animated_zones ~! current_animated)
+ for(var/animated_zone in animated_zones)
+ var/atom/wounded_zone = limbs[animated_zone]
+ var/existing_filter = wounded_zone.get_filter("wound_outline")
+ if(existing_filter)
+ animate(existing_filter) // stop animation so we can resync
+ else
+ wounded_zone.add_filter("wound_outline", 1, list("type" = "outline", "color" = "#FF0033", "alpha" = 0, "size" = 1.2))
+ existing_filter = wounded_zone.get_filter("wound_outline")
+ animate(existing_filter, alpha = 200, time = 1.5 SECONDS, loop = -1)
+ animate(alpha = 0, time = 1.5 SECONDS)
+ if(LAZYLEN(current_animated)) // avoid null - list() runtimes please
+ for(var/lost_zone in current_animated - animated_zones)
+ limbs[lost_zone].remove_filter("wound_outline")
+
+// Basically just holds an icon we can put a filter on
+/atom/movable/screen/healthdoll_limb
+ screen_loc = ui_living_healthdoll
+ vis_flags = VIS_INHERIT_ID | VIS_INHERIT_PLANE
+
/atom/movable/screen/mood
name = "mood"
icon_state = "mood5"
@@ -904,7 +986,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash)
animate(get_filter("hunger_outline"), alpha = 200, time = 1.5 SECONDS, loop = -1)
animate(alpha = 0, time = 1.5 SECONDS)
- else if(get_filter("hunger_outline"))
+ else
remove_filter("hunger_outline")
// Update color of the food
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index 72df7ceeb9777..08c6ae681655a 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -107,9 +107,22 @@
/datum/config_entry/flag/protect_assistant_from_antagonist //If assistants can be traitor/cult/other
-/datum/config_entry/flag/enforce_human_authority //If non-human species are barred from joining as a head of staff
+/datum/config_entry/string/human_authority //Controls how to enforce human authority
+ default = "HUMAN_WHITELIST"
-/datum/config_entry/flag/enforce_human_authority_on_everyone //If non-human species are barred from joining as a head of staff, including jobs flagged as allowed for non-humans, ie. Quartermaster.
+/////////////////////////////////////////////////Outdated human authority settings
+/datum/config_entry/flag/enforce_human_authority
+ deprecated_by = /datum/config_entry/string/human_authority
+
+/datum/config_entry/flag/enforce_human_authority/DeprecationUpdate(value)
+ return value ? HUMAN_AUTHORITY_NON_HUMAN_WHITELIST : HUMAN_AUTHORITY_DISABLED
+
+/datum/config_entry/flag/enforce_human_authority_on_everyone
+ deprecated_by = /datum/config_entry/string/human_authority
+
+/datum/config_entry/flag/enforce_human_authority_on_everyone/DeprecationUpdate(value)
+ return value ? HUMAN_AUTHORITY_ENFORCED : HUMAN_AUTHORITY_DISABLED
+/////////////////////////////////////////////////
/datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling
diff --git a/code/controllers/configuration/entries/jobs.dm b/code/controllers/configuration/entries/jobs.dm
index 06563e01a8e3d..d25ae3964eb1f 100644
--- a/code/controllers/configuration/entries/jobs.dm
+++ b/code/controllers/configuration/entries/jobs.dm
@@ -133,6 +133,11 @@
var/list/working_list = list()
for(var/config_datum_key in job_config_datum_singletons)
var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key]
+
+ // Dont make the entry if it doesn't apply to this job
+ if(!config_datum.validate_entry(occupation))
+ continue
+
var/config_read_value = job_config[job_key][config_datum_key]
if(!config_datum.validate_value(config_read_value))
working_list += list(
@@ -155,6 +160,11 @@
var/returnable_list = list()
for(var/config_datum_key in job_config_datum_singletons)
var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key]
+
+ // Dont make the entry if it doesn't apply to this job
+ if(!config_datum.validate_entry(new_occupation))
+ continue
+
// Remember, every time we write the TOML from scratch, we want to have it commented out by default.
// This is to ensure that the server operator knows that they are overriding codebase defaults when they remove the comment.
// Having comments mean that we allow server operators to defer to codebase standards when they deem acceptable. They must uncomment to override the codebase default.
@@ -171,6 +181,11 @@
var/list/datums_to_read = job_config_datum_singletons - list(JOB_CONFIG_TOTAL_POSITIONS, JOB_CONFIG_SPAWN_POSITIONS)
for(var/config_datum_key in datums_to_read)
var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key]
+
+ // Dont make the entry if it doesn't apply to this job
+ if(!config_datum.validate_entry(new_occupation))
+ continue
+
returnable_list += list(
"# [config_datum_key]" = config_datum.get_current_value(new_occupation),
)
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 74b820894b256..9af14f226ace5 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -73,10 +73,11 @@ SUBSYSTEM_DEF(job)
/// This is just the message we prepen and put into all of the config files to ensure documentation. We use this in more than one place, so let's put it in the SS to make life a bit easier.
var/config_documentation = "## This is the configuration file for the job system.\n## This will only be enabled when the config flag LOAD_JOBS_FROM_TXT is enabled.\n\
- ## We use a system of keys here that directly correlate to the job, just to ensure they don't desync if we choose to change the name of a job.\n## You are able to change (as of now) five different variables in this file.\n\
+ ## We use a system of keys here that directly correlate to the job, just to ensure they don't desync if we choose to change the name of a job.\n## You are able to change (as of now) five (six if the job is a command head) different variables in this file.\n\
## Total Positions are how many job slots you get in a shift, Spawn Positions are how many you get that load in at spawn. If you set this to -1, it is unrestricted.\n## Playtime Requirements is in minutes, and the job will unlock when a player reaches that amount of time.\n\
## However, that can be superseded by Required Account Age, which is a time in days that you need to have had an account on the server for.\n\
- ## Also there is a required character age in years. It prevents player from joining as this job, if their character's age as is lower than required. Setting it to 0 means it is turned off for this job.\n\n\
+ ## Also there is a required character age in years. It prevents player from joining as this job, if their character's age as is lower than required. Setting it to 0 means it is turned off for this job.\n\
+ ## Lastly there's Human Authority Whitelist Setting. You can set it to either \"HUMANS_ONLY\" or \"NON_HUMANS_ALLOWED\". Check the \"Human Authority\" setting on the game_options file to know which you should choose. Note that this entry only appears on jobs that are marked as heads of staff.\n\n\
## As time goes on, more config options may be added to this file.\n\
## You can use the admin verb 'Generate Job Configuration' in-game to auto-regenerate this config as a downloadable file without having to manually edit this file if we add more jobs or more things you can edit here.\n\
## It will always respect prior-existing values in the config, but will appropriately add more fields when they generate.\n## It's strongly advised you create your own version of this file rather than use the one provisioned on the codebase.\n\n\
@@ -362,13 +363,21 @@ SUBSYSTEM_DEF(job)
for(var/datum/job/job as anything in command_department.department_jobs)
if((job.current_positions >= job.total_positions) && job.total_positions != -1)
continue
+
var/list/candidates = find_occupation_candidates(job, level)
if(!candidates.len)
continue
+
var/mob/dead/new_player/candidate = pick(candidates)
- // Eligibility checks done as part of find_occupation_candidates
- if(assign_role(candidate, job, do_eligibility_checks = FALSE))
- .++
+
+ // Eligibility checks done as part of find_occupation_candidates() above.
+ if(!assign_role(candidate, job, do_eligibility_checks = FALSE))
+ continue
+
+ .++
+
+ if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1)
+ job_debug("JOBS: Command Job is now full, Job: [job], Positions: [job.current_positions], Limit: [job.spawn_positions]")
/// Attempts to fill out all available AI positions.
/datum/controller/subsystem/job/proc/fill_ai_positions()
@@ -443,13 +452,22 @@ SUBSYSTEM_DEF(job)
// From assign_all_overflow_positions()
// 4. Anyone with the overflow role enabled has been given the overflow role.
- // Shuffle the joinable occupation list and filter out ineligible occupations due to above job assignments.
+ // Copy the joinable occupation list and filter out ineligible occupations due to above job assignments.
var/list/available_occupations = joinable_occupations.Copy()
+ var/datum/job_department/command_department = get_department_type(/datum/job_department/command)
+
for(var/datum/job/job in available_occupations)
// Make sure the job isn't filled. If it is, remove it from the list so it doesn't get checked.
if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1)
job_debug("DO: Job is now filled, Job: [job], Current: [job.current_positions], Limit: [job.spawn_positions]")
available_occupations -= job
+ continue
+
+ // Command jobs are handled via fill_all_head_positions_at_priority(...)
+ // Remove these jobs from the list of available occupations to prevent multiple players being assigned to the same
+ // limited role without constantly having to iterate over the available_occupations list and re-check them.
+ if(job in command_department?.department_jobs)
+ available_occupations -= job
job_debug("DO: Running standard job assignment")
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 05f0746690b29..742073efca979 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -386,13 +386,23 @@ Used by the AI doomsday and the self-destruct nuke.
if (!length(traits)) // null or empty - default
for (var/i in 1 to total_z)
- traits += list(default_traits)
+ traits += list(default_traits.Copy())
else if (total_z != traits.len) // mismatch
INIT_ANNOUNCE("WARNING: [traits.len] trait sets specified for [total_z] z-levels in [path]!")
if (total_z < traits.len) // ignore extra traits
traits.Cut(total_z + 1)
while (total_z > traits.len) // fall back to defaults on extra levels
- traits += list(default_traits)
+ traits += list(default_traits.Copy())
+
+ if(total_z > 1) // it's a multi z map
+ for(var/z in 1 to total_z)
+ if(z == 1) // bottom z-level
+ traits[z]["Up"] = TRUE
+ else if(z == total_z) // top z-level
+ traits[z]["Down"] = TRUE
+ else
+ traits[z]["Down"] = TRUE
+ traits[z]["Up"] = TRUE
// preload the relevant space_level datums
var/start_z = world.maxz + 1
diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm
index f000688fbc71b..e8763dd33f3af 100644
--- a/code/controllers/subsystem/materials.dm
+++ b/code/controllers/subsystem/materials.dm
@@ -149,7 +149,7 @@ SUBSYSTEM_DEF(materials)
/// Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters.
-/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier)
+/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier = 1)
if(!LAZYLEN(materials_declaration))
return null // If we get a null we pass it right back, we don't want to generate stack traces just because something is clearing out its materials list.
diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm
index b237edd3870b6..409f59bbff247 100644
--- a/code/controllers/subsystem/polling.dm
+++ b/code/controllers/subsystem/polling.dm
@@ -280,7 +280,7 @@ SUBSYSTEM_DEF(polling)
return FALSE
if(check_jobban)
- if(is_banned_from(potential_candidate.ckey, list(check_jobban, ROLE_SYNDICATE)))
+ if(is_banned_from(potential_candidate.ckey, list(ROLE_SYNDICATE) + check_jobban))
return FALSE
return TRUE
diff --git a/code/controllers/subsystem/unplanned_ai_idle_controllers.dm b/code/controllers/subsystem/unplanned_ai_idle_controllers.dm
new file mode 100644
index 0000000000000..6385239e18c70
--- /dev/null
+++ b/code/controllers/subsystem/unplanned_ai_idle_controllers.dm
@@ -0,0 +1,4 @@
+UNPLANNED_CONTROLLER_SUBSYSTEM_DEF(idle_unplanned_controllers)
+ name = "Unplanned AI Idle Controllers"
+ wait = 2.5 SECONDS
+ target_status = AI_STATUS_IDLE
diff --git a/code/controllers/subsystem/unplanned_controllers.dm b/code/controllers/subsystem/unplanned_controllers.dm
new file mode 100644
index 0000000000000..3fb5f46dd069d
--- /dev/null
+++ b/code/controllers/subsystem/unplanned_controllers.dm
@@ -0,0 +1,18 @@
+/// Handles making mobs perform lightweight "idle" behaviors such as wandering around when they have nothing planned
+SUBSYSTEM_DEF(unplanned_controllers)
+ name = "Unplanned AI Controllers"
+ flags = SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT
+ priority = FIRE_PRIORITY_UNPLANNED_NPC
+ init_order = INIT_ORDER_AI_CONTROLLERS
+ wait = 0.25 SECONDS
+ runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
+ ///what ai status are we interested in
+ var/target_status = AI_STATUS_ON
+
+/datum/controller/subsystem/unplanned_controllers/stat_entry(msg)
+ msg = "Planning AIs:[length(GLOB.unplanned_controllers[target_status])]"
+ return ..()
+
+/datum/controller/subsystem/unplanned_controllers/fire(resumed)
+ for(var/datum/ai_controller/ai_controller as anything in GLOB.unplanned_controllers[target_status])
+ ai_controller.idle_behavior.perform_idle_behavior(wait * 0.1, ai_controller)
diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm
index bd1719783e12a..4e37400d51d69 100644
--- a/code/datums/achievements/misc_achievements.dm
+++ b/code/datums/achievements/misc_achievements.dm
@@ -234,7 +234,13 @@
icon_state = "sisyphus"
/datum/award/achievement/misc/cigarettes
- name = "Unhealthy snacks"
+ name = "Unhealthy Snacks"
desc = "You were curious to taste it. And then another. You must have more!"
database_id = MEDAL_CIGARETTES
icon_state = "cigarettes"
+
+/datum/award/achievement/misc/sharkdragon
+ name = "You're What You Eat"
+ desc = "Nutritionists often recommend a balanced and varied diet. However that clearly isn't the case for some creatures."
+ database_id = MEDAL_SHARKDRAGON
+ icon_state = "dragon_plus_fish"
diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm
index 239f02b05b8b2..76e87bc14f3cd 100644
--- a/code/datums/ai/_ai_controller.dm
+++ b/code/datums/ai/_ai_controller.dm
@@ -284,6 +284,7 @@ multiple modular subtrees with behaviors
GLOB.ai_controllers_by_zlevel[pawn_turf.z] -= src
if(ai_status)
GLOB.ai_controllers_by_status[ai_status] -= src
+ remove_from_unplanned_controllers()
pawn.ai_controller = null
pawn = null
if(destroy)
@@ -340,10 +341,6 @@ multiple modular subtrees with behaviors
///Runs any actions that are currently running
/datum/ai_controller/process(seconds_per_tick)
- if(!length(current_behaviors) && idle_behavior)
- idle_behavior.perform_idle_behavior(seconds_per_tick, src) //Do some stupid shit while we have nothing to do
- return
-
if(current_movement_target)
if(!isatom(current_movement_target))
stack_trace("[pawn]'s current movement target is not an atom, rather a [current_movement_target.type]! Did you accidentally set it to a weakref?")
@@ -354,7 +351,6 @@ multiple modular subtrees with behaviors
CancelActions()
return
-
for(var/datum/ai_behavior/current_behavior as anything in current_behaviors)
// Convert the current behaviour action cooldown to realtime seconds from deciseconds.current_behavior
@@ -417,17 +413,24 @@ multiple modular subtrees with behaviors
//remove old status, if we've got one
if(ai_status)
GLOB.ai_controllers_by_status[ai_status] -= src
+ remove_from_unplanned_controllers()
stop_previous_processing()
ai_status = new_ai_status
GLOB.ai_controllers_by_status[new_ai_status] += src
+ if(ai_status == AI_STATUS_OFF)
+ CancelActions()
+ return
+ if(!length(current_behaviors))
+ add_to_unplanned_controllers()
+ return
+ start_ai_processing()
+
+/datum/ai_controller/proc/start_ai_processing()
switch(ai_status)
if(AI_STATUS_ON)
START_PROCESSING(SSai_behaviors, src)
if(AI_STATUS_IDLE)
START_PROCESSING(SSidle_ai_behaviors, src)
- CancelActions()
- if(AI_STATUS_OFF)
- CancelActions()
/datum/ai_controller/proc/stop_previous_processing()
switch(ai_status)
@@ -441,6 +444,16 @@ multiple modular subtrees with behaviors
update_able_to_run()
addtimer(CALLBACK(src, PROC_REF(update_able_to_run)), time)
+/datum/ai_controller/proc/add_to_unplanned_controllers()
+ if(isnull(ai_status) || ai_status == AI_STATUS_OFF || isnull(idle_behavior))
+ return
+ GLOB.unplanned_controllers[ai_status][src] = TRUE
+
+/datum/ai_controller/proc/remove_from_unplanned_controllers()
+ if(isnull(ai_status) || ai_status == AI_STATUS_OFF)
+ return
+ GLOB.unplanned_controllers[ai_status] -= src
+
/datum/ai_controller/proc/modify_cooldown(datum/ai_behavior/behavior, new_cooldown)
behavior_cooldowns[behavior] = new_cooldown
@@ -459,6 +472,7 @@ multiple modular subtrees with behaviors
if(!behavior.setup(arglist(arguments)))
return
+ var/should_exit_unplanned = !length(current_behaviors)
planned_behaviors[behavior] = TRUE
current_behaviors[behavior] = TRUE
@@ -471,6 +485,9 @@ multiple modular subtrees with behaviors
if(!(behavior.behavior_flags & AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION)) //this one blocks planning!
able_to_plan = FALSE
+ if(should_exit_unplanned)
+ exit_unplanned_mode()
+
SEND_SIGNAL(src, AI_CONTROLLER_BEHAVIOR_QUEUED(behavior_type), arguments)
/datum/ai_controller/proc/check_able_to_plan()
@@ -482,6 +499,16 @@ multiple modular subtrees with behaviors
/datum/ai_controller/proc/dequeue_behavior(datum/ai_behavior/behavior)
current_behaviors -= behavior
able_to_plan = check_able_to_plan()
+ if(!length(current_behaviors))
+ enter_unplanned_mode()
+
+/datum/ai_controller/proc/exit_unplanned_mode()
+ remove_from_unplanned_controllers()
+ start_ai_processing()
+
+/datum/ai_controller/proc/enter_unplanned_mode()
+ add_to_unplanned_controllers()
+ stop_previous_processing()
/datum/ai_controller/proc/ProcessBehavior(seconds_per_tick, datum/ai_behavior/behavior)
var/list/arguments = list(seconds_per_tick, src)
diff --git a/code/datums/ai/idle_behaviors/_idle_behavior.dm b/code/datums/ai/idle_behaviors/_idle_behavior.dm
index 315233bb71d57..bacb8e7cdf37b 100644
--- a/code/datums/ai/idle_behaviors/_idle_behavior.dm
+++ b/code/datums/ai/idle_behaviors/_idle_behavior.dm
@@ -1,4 +1,5 @@
/datum/idle_behavior
/datum/idle_behavior/proc/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller)
- return
+ set waitfor = FALSE
+ SHOULD_CALL_PARENT(TRUE)
diff --git a/code/datums/ai/idle_behaviors/idle_dog.dm b/code/datums/ai/idle_behaviors/idle_dog.dm
index 46e0d040c9dae..4d036e9a7a5d9 100644
--- a/code/datums/ai/idle_behaviors/idle_dog.dm
+++ b/code/datums/ai/idle_behaviors/idle_dog.dm
@@ -1,5 +1,6 @@
///Dog specific idle behavior.
/datum/idle_behavior/idle_dog/perform_idle_behavior(seconds_per_tick, datum/ai_controller/basic_controller/dog/controller)
+ . = ..()
var/mob/living/living_pawn = controller.pawn
if(!isturf(living_pawn.loc) || living_pawn.pulledby)
return
diff --git a/code/datums/ai/idle_behaviors/idle_haunted.dm b/code/datums/ai/idle_behaviors/idle_haunted.dm
index a67b5d6cbe04d..5784b5104f6b8 100644
--- a/code/datums/ai/idle_behaviors/idle_haunted.dm
+++ b/code/datums/ai/idle_behaviors/idle_haunted.dm
@@ -4,6 +4,7 @@
var/teleport_chance = 4
/datum/idle_behavior/idle_ghost_item/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller)
+ . = ..()
var/obj/item/item_pawn = controller.pawn
if(ismob(item_pawn.loc)) //Being held. dont teleport
return
diff --git a/code/datums/ai/idle_behaviors/idle_monkey.dm b/code/datums/ai/idle_behaviors/idle_monkey.dm
index 5b5e189435deb..c32534dce529e 100644
--- a/code/datums/ai/idle_behaviors/idle_monkey.dm
+++ b/code/datums/ai/idle_behaviors/idle_monkey.dm
@@ -13,6 +13,7 @@
)
/datum/idle_behavior/idle_monkey/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller)
+ . = ..()
var/mob/living/living_pawn = controller.pawn
if(SPT_PROB(25, seconds_per_tick) && (living_pawn.mobility_flags & MOBILITY_MOVE) && isturf(living_pawn.loc) && !living_pawn.pulledby)
diff --git a/code/datums/components/cleaner.dm b/code/datums/components/cleaner.dm
index 75319a7133f4d..7072f271c7a6a 100644
--- a/code/datums/components/cleaner.dm
+++ b/code/datums/components/cleaner.dm
@@ -96,8 +96,8 @@
ADD_TRAIT(target, TRAIT_CURRENTLY_CLEANING, REF(src))
// We need to update our planes on overlay changes
RegisterSignal(target, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(cleaning_target_moved))
- var/mutable_appearance/low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, target, GAME_PLANE)
- var/mutable_appearance/high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, target, ABOVE_GAME_PLANE)
+ var/mutable_appearance/low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, target, GAME_PLANE)
+ var/mutable_appearance/high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, target, ABOVE_GAME_PLANE)
var/list/icon_offsets = target.get_oversized_icon_offsets()
low_bubble.pixel_x = icon_offsets["x"]
low_bubble.pixel_y = icon_offsets["y"]
@@ -140,13 +140,13 @@
if(same_z_layer)
return
// First, get rid of the old overlay
- var/mutable_appearance/old_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, old_turf, GAME_PLANE)
- var/mutable_appearance/old_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, old_turf, ABOVE_GAME_PLANE)
+ var/mutable_appearance/old_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, old_turf, GAME_PLANE)
+ var/mutable_appearance/old_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, old_turf, ABOVE_GAME_PLANE)
source.cut_overlay(old_low_bubble)
source.cut_overlay(old_high_bubble)
// Now, add the new one
- var/mutable_appearance/new_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, new_turf, GAME_PLANE)
- var/mutable_appearance/new_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, new_turf, ABOVE_GAME_PLANE)
+ var/mutable_appearance/new_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, new_turf, GAME_PLANE)
+ var/mutable_appearance/new_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, new_turf, ABOVE_GAME_PLANE)
source.add_overlay(new_low_bubble)
source.add_overlay(new_high_bubble)
diff --git a/code/datums/components/food_storage.dm b/code/datums/components/food_storage.dm
index 873c1646adbe1..843f611e5ff3e 100644
--- a/code/datums/components/food_storage.dm
+++ b/code/datums/components/food_storage.dm
@@ -18,7 +18,7 @@
/datum/component/food_storage/Initialize(_minimum_weight_class = WEIGHT_CLASS_SMALL, _bad_chance = 0, _good_chance = 100)
- RegisterSignal(parent, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(try_inserting_item))
+ RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION_SECONDARY, PROC_REF(try_inserting_item))
RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(try_removing_item))
RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(consume_food_storage))
RegisterSignal(parent, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item))
@@ -48,34 +48,34 @@
* inserted_item - the item being placed into the food
* user - the person inserting the item
*/
-/datum/component/food_storage/proc/try_inserting_item(datum/source, obj/item/inserted_item, mob/living/user, params)
+/datum/component/food_storage/proc/try_inserting_item(datum/source, mob/living/user, obj/item/inserted_item, list/modifiers)
SIGNAL_HANDLER
// No matryoshka-ing food storage
if(istype(inserted_item, /obj/item/storage) || IS_EDIBLE(inserted_item))
- return
+ return NONE
//Harm intent will bypass inserting for injecting food with syringes and such
if(user.combat_mode)
- return
+ return NONE
if(inserted_item.w_class > minimum_weight_class)
to_chat(user, span_warning("\The [inserted_item.name] won't fit in \the [parent]."))
- return
+ return ITEM_INTERACT_BLOCKING
if(!QDELETED(stored_item))
to_chat(user, span_warning("There's something in \the [parent]."))
- return
+ return ITEM_INTERACT_BLOCKING
if(HAS_TRAIT(inserted_item, TRAIT_NODROP))
to_chat(user, span_warning("\the [inserted_item] is stuck to your hand, you can't put into \the [parent]!"))
- return
+ return ITEM_INTERACT_BLOCKING
user.visible_message(span_notice("[user.name] begins inserting [inserted_item.name] into \the [parent]."), \
span_notice("You start to insert the [inserted_item.name] into \the [parent]."))
INVOKE_ASYNC(src, PROC_REF(insert_item), inserted_item, user)
- return COMPONENT_CANCEL_ATTACK_CHAIN
+ return ITEM_INTERACT_SUCCESS
/** Begins the process of attempting to remove the stored item.
*
@@ -108,15 +108,17 @@
* user - the person inserting the item.
*/
/datum/component/food_storage/proc/insert_item(obj/item/inserted_item, mob/user)
- if(do_after(user, 1.5 SECONDS, target = parent))
- var/atom/food = parent
- to_chat(user, span_notice("You slip [inserted_item.name] inside \the [parent]."))
- inserted_item.forceMove(food)
- user.log_message("inserted [inserted_item] into [parent].", LOG_ATTACK)
- food.add_fingerprint(user)
- inserted_item.add_fingerprint(user)
-
- stored_item = inserted_item
+ if(!do_after(user, 1.5 SECONDS, target = parent))
+ return
+
+ var/atom/food = parent
+ to_chat(user, span_notice("You slip [inserted_item.name] inside \the [parent]."))
+ inserted_item.forceMove(food)
+ user.log_message("inserted [inserted_item] into [parent].", LOG_ATTACK)
+ food.add_fingerprint(user)
+ inserted_item.add_fingerprint(user)
+
+ stored_item = inserted_item
/** Removes the item from the food, after a do_after.
*
diff --git a/code/datums/components/item_equipped_movement_rustle.dm b/code/datums/components/item_equipped_movement_rustle.dm
new file mode 100644
index 0000000000000..435914dada785
--- /dev/null
+++ b/code/datums/components/item_equipped_movement_rustle.dm
@@ -0,0 +1,67 @@
+/datum/component/item_equipped_movement_rustle
+
+ ///sound that plays, use an SFX define if there is multiple.
+ var/rustle_sounds = SFX_SUIT_STEP
+ ///human that has the item equipped.
+ var/mob/holder
+
+ ///what move are we on.
+ var/move_counter = 0
+ ///how many moves to take before playing the sound.
+ var/move_delay = 4
+
+ ///volume at which the sound plays.
+ var/volume = 20
+ ///does the sound vary?
+ var/sound_vary = TRUE
+ ///extra-range for this component's sound.
+ var/sound_extra_range = -1
+ ///sound exponent for the rustle.
+ var/sound_falloff_exponent = 5
+ ///when sounds start falling off for the rustle rustle.
+ var/sound_falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE
+
+/datum/component/item_equipped_movement_rustle/Initialize(custom_sounds, move_delay_override, volume_override, extrarange, falloff_exponent, falloff_distance)
+ if(!isitem(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
+ RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_unequip))
+
+ if(custom_sounds)
+ rustle_sounds = custom_sounds
+ if(isnum(volume_override))
+ volume = volume_override
+ if(isnum(move_delay_override))
+ move_delay = move_delay_override
+ if(isnum(extrarange))
+ sound_extra_range = extrarange
+ if(isnum(falloff_exponent))
+ sound_falloff_exponent = falloff_exponent
+ if(isnum(falloff_distance))
+ sound_falloff_distance = falloff_distance
+
+/datum/component/item_equipped_movement_rustle/proc/on_equip(datum/source, mob/equipper, slot)
+ var/obj/item/our_item = parent
+ if(!(slot & our_item.slot_flags))
+ return
+ SIGNAL_HANDLER
+ holder = equipper
+ RegisterSignal(holder, COMSIG_MOVABLE_MOVED, PROC_REF(try_step), override = TRUE)
+
+/datum/component/item_equipped_movement_rustle/proc/on_unequip(datum/source, mob/equipper, slot)
+ SIGNAL_HANDLER
+ move_counter = 0
+ UnregisterSignal(equipper, COMSIG_MOVABLE_MOVED)
+ holder = null
+
+/datum/component/item_equipped_movement_rustle/proc/try_step(obj/item/clothing/source)
+ SIGNAL_HANDLER
+
+ move_counter++
+ if(move_counter >= move_delay)
+ play_rustle_sound()
+ move_counter = 0
+
+/datum/component/item_equipped_movement_rustle/proc/play_rustle_sound()
+ playsound(parent, rustle_sounds, volume, sound_vary, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
diff --git a/code/datums/components/jetpack.dm b/code/datums/components/jetpack.dm
index 1da8822091b90..ccbe2b3fd4dac 100644
--- a/code/datums/components/jetpack.dm
+++ b/code/datums/components/jetpack.dm
@@ -100,15 +100,14 @@
RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react))
RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react))
RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE_NOGRAV, PROC_REF(on_client_move))
+ RegisterSignal(user, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE, PROC_REF(on_pushoff))
START_PROCESSING(SSnewtonian_movement, src)
setup_trail(user)
/datum/component/jetpack/proc/deactivate(datum/source, mob/old_user)
SIGNAL_HANDLER
- UnregisterSignal(old_user, COMSIG_MOVABLE_MOVED)
- UnregisterSignal(old_user, COMSIG_MOVABLE_PRE_MOVE)
- UnregisterSignal(old_user, COMSIG_MOB_CLIENT_MOVE_NOGRAV)
+ UnregisterSignal(old_user, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_CLIENT_MOVE_NOGRAV, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE))
STOP_PROCESSING(SSnewtonian_movement, src)
user = null
@@ -161,3 +160,11 @@
var/max_drift_force = (DEFAULT_INERTIA_SPEED / source.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1
source.newtonian_move(dir2angle(source.client.intended_direction), instant = TRUE, drift_force = drift_force, controlled_cap = max_drift_force)
source.setDir(source.client.intended_direction)
+
+/datum/component/jetpack/proc/on_pushoff(mob/source, movement_dir, continuous_move, atom/backup)
+ SIGNAL_HANDLER
+
+ if (!should_trigger(source) || !check_on_move.Invoke(FALSE))
+ return
+
+ return COMPONENT_PREVENT_SPACEMOVE_HALT
diff --git a/code/datums/components/material/material_container.dm b/code/datums/components/material/material_container.dm
index 10544116ce579..912ae33411677 100644
--- a/code/datums/components/material/material_container.dm
+++ b/code/datums/components/material/material_container.dm
@@ -725,7 +725,7 @@
"name" = material.name,
"ref" = REF(material),
"amount" = amount,
- "color" = material.greyscale_colors
+ "color" = material.greyscale_color || material.color
))
return data
diff --git a/code/datums/components/profound_fisher.dm b/code/datums/components/profound_fisher.dm
index 61f6543bd12bf..9638af4a8f2c2 100644
--- a/code/datums/components/profound_fisher.dm
+++ b/code/datums/components/profound_fisher.dm
@@ -9,6 +9,7 @@
return COMPONENT_INCOMPATIBLE
src.our_rod = our_rod || new(parent)
src.our_rod.internal = TRUE
+ ADD_TRAIT(src.our_rod, TRAIT_NOT_BARFABLE, REF(src))
RegisterSignal(src.our_rod, COMSIG_QDELETING, PROC_REF(on_rod_qdel))
if(!isgloves)
@@ -43,6 +44,7 @@
/datum/component/profound_fisher/Destroy()
our_rod.internal = FALSE
UnregisterSignal(our_rod, COMSIG_QDELETING)
+ REMOVE_TRAIT(our_rod, TRAIT_NOT_BARFABLE, REF(src))
our_rod = null
return ..()
diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm
index 2e9ee73c32a06..bb3054aea6ae6 100644
--- a/code/datums/components/shell.dm
+++ b/code/datums/components/shell.dm
@@ -173,7 +173,7 @@
if(istype(item, /obj/item/inducer))
var/obj/item/inducer/inducer = item
- INVOKE_ASYNC(inducer, TYPE_PROC_REF(/obj/item, attack_atom), attached_circuit || parent, attacker, list())
+ INVOKE_ASYNC(inducer, TYPE_PROC_REF(/obj/item, interact_with_atom), attached_circuit || parent, attacker, list())
return COMPONENT_NO_AFTERATTACK
if(attached_circuit)
diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm
index b991891930cd1..d5e00ddb39858 100644
--- a/code/datums/components/tether.dm
+++ b/code/datums/components/tether.dm
@@ -13,14 +13,17 @@
var/atom/embed_target
/// Beam effect
var/datum/beam/tether_beam
+ /// Tether module if we were created by one
+ var/obj/item/mod/module/tether/parent_module
-/datum/component/tether/Initialize(atom/tether_target, max_dist = 7, tether_name, atom/embed_target = null, start_distance = null)
+/datum/component/tether/Initialize(atom/tether_target, max_dist = 7, tether_name, atom/embed_target = null, start_distance = null, parent_module = null)
if(!ismovable(parent) || !istype(tether_target) || !tether_target.loc)
return COMPONENT_INCOMPATIBLE
src.tether_target = tether_target
src.embed_target = embed_target
src.max_dist = max_dist
+ src.parent_module = parent_module
cur_dist = max_dist
if (start_distance != null)
cur_dist = start_distance
@@ -46,6 +49,9 @@
RegisterSignal(embed_target, COMSIG_ITEM_UNEMBEDDED, PROC_REF(on_embedded_removed))
RegisterSignal(embed_target, COMSIG_QDELETING, PROC_REF(on_delete))
+ if (!isnull(parent_module))
+ RegisterSignals(parent_module, list(COMSIG_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_MOD_TETHER_SNAP), PROC_REF(snap))
+
/datum/component/tether/UnregisterFromParent()
UnregisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED))
if (!QDELETED(tether_target))
@@ -111,8 +117,15 @@
var/atom/atom_target = parent
// Something broke us out, snap the tether
if (get_dist(atom_target, tether_target) > cur_dist + 1 || !isturf(atom_target.loc) || !isturf(tether_target.loc) || atom_target.z != tether_target.z)
- atom_target.visible_message(span_warning("[atom_target]'s [tether_name] snaps!"), span_userdanger("Your [tether_name] snaps!"), span_hear("You hear a cable snapping."))
- qdel(src)
+ snap()
+
+/datum/component/tether/proc/snap()
+ SIGNAL_HANDLER
+
+ var/atom/atom_target = parent
+ atom_target.visible_message(span_warning("[atom_target]'s [tether_name] snaps!"), span_userdanger("Your [tether_name] snaps!"), span_hear("You hear a cable snapping."))
+ playsound(atom_target, 'sound/effects/snap.ogg', 50, TRUE)
+ qdel(src)
/datum/component/tether/proc/on_delete()
SIGNAL_HANDLER
@@ -132,7 +145,7 @@
var/list/modifiers = params2list(params)
if(LAZYACCESS(modifiers, CTRL_CLICK))
location.balloon_alert(user, "cutting the tether...")
- if (!do_after(user, 5 SECONDS, user))
+ if (!do_after(user, 1 SECONDS, user))
return
qdel(src)
diff --git a/code/datums/components/trapdoor.dm b/code/datums/components/trapdoor.dm
index 9efce370e82c7..a5d28107556c6 100644
--- a/code/datums/components/trapdoor.dm
+++ b/code/datums/components/trapdoor.dm
@@ -19,19 +19,37 @@
var/conspicuous
/// overlay that makes trapdoors more obvious
var/static/trapdoor_overlay
+ /**
+ * list of lists that are arguments for readding decals when the linked trapdoor comes back. pain.
+ *
+ * we are storing this data FOR the trapdoor component we are linked to. kinda like a multitool.
+ * format: list(list(element's description, element's cleanable, element's directional, element's pic))
+ * the list will be filled with all the data of the deleting elements (when ChangeTurf is called) only when the trapdoor begins to open.
+ * so any other case the elements will be changed but not recorded.
+ */
+ var/list/stored_decals = list()
+ /// Trapdoor shuts close automatically
+ var/autoclose = TRUE
+ /// Delay before trapdoor shuts close
+ var/autoclose_delay = 5 SECONDS
-/datum/component/trapdoor/Initialize(starts_open, trapdoor_turf_path, assembly, conspicuous = TRUE)
+/datum/component/trapdoor/Initialize(starts_open, trapdoor_turf_path, assembly, conspicuous = TRUE, list/carried_decals = null, autoclose = TRUE)
if(!isopenturf(parent))
return COMPONENT_INCOMPATIBLE
src.conspicuous = conspicuous
src.assembly = assembly
+ src.autoclose = autoclose
+ if(carried_decals)
+ stored_decals = carried_decals.Copy()
if(!trapdoor_overlay)
trapdoor_overlay = mutable_appearance('icons/turf/overlays.dmi', "border_black", ABOVE_NORMAL_TURF_LAYER)
if(IS_OPEN(parent))
openspace_trapdoor_setup(trapdoor_turf_path, assembly)
+ if(autoclose)
+ addtimer(CALLBACK(src, PROC_REF(try_closing)), autoclose_delay)
else
tile_trapdoor_setup(trapdoor_turf_path, assembly)
@@ -45,7 +63,7 @@
///initializing as a closed trapdoor, we need to take data from the tile we're on to give it to the open state to store
/datum/component/trapdoor/proc/tile_trapdoor_setup(trapdoor_turf_path)
src.trapdoor_turf_path = parent.type
- if(assembly && assembly.stored_decals.len)
+ if(stored_decals.len)
reapply_all_decals()
if(conspicuous)
var/turf/parent_turf = parent
@@ -60,6 +78,7 @@
else
RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor))
RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink))
+ RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(try_link))
/datum/component/trapdoor/UnregisterFromParent()
. = ..()
@@ -69,6 +88,7 @@
UnregisterSignal(parent, COMSIG_TURF_CHANGE)
UnregisterSignal(parent, COMSIG_ATOM_EXAMINE)
UnregisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL))
+ UnregisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION)
/datum/component/trapdoor/proc/try_unlink(turf/source, mob/user, obj/item/tool)
SIGNAL_HANDLER
@@ -81,14 +101,44 @@
INVOKE_ASYNC(src, PROC_REF(async_try_unlink), source, user, tool)
return
+/datum/component/trapdoor/proc/try_link(turf/source, mob/user, obj/item/tool)
+ SIGNAL_HANDLER
+ if(!istype(tool, /obj/item/trapdoor_remote))
+ return
+ var/obj/item/trapdoor_remote/remote = tool
+ if(!remote.internals)
+ source.balloon_alert(user, "missing internals")
+ return
+ if(IS_OPEN(parent))
+ source.balloon_alert(user, "can't link trapdoor when its open")
+ return
+ if(assembly)
+ source.balloon_alert(user, "already linked")
+ return
+ source.balloon_alert(user, "linking trapdoor")
+ INVOKE_ASYNC(src, PROC_REF(async_try_link), source, user, tool)
+
+/datum/component/trapdoor/proc/async_try_link(turf/source, mob/user, obj/item/trapdoor_remote/remote)
+ if(!do_after(user, 2 SECONDS, target=source))
+ return
+ if(IS_OPEN(parent))
+ source.balloon_alert(user, "can't link trapdoor when its open")
+ return
+ src.assembly = remote.internals
+ ++assembly.linked
+ source.balloon_alert(user, "trapdoor linked")
+ UnregisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK)
+ RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor))
+ RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink))
+
/datum/component/trapdoor/proc/async_try_unlink(turf/source, mob/user, obj/item/tool)
if(!do_after(user, 5 SECONDS, target=source))
return
if(IS_OPEN(parent))
source.balloon_alert(user, "can't unlink trapdoor when its open")
return
- assembly.linked = FALSE
- assembly.stored_decals = list()
+ assembly.linked = max(assembly.linked - 1, 0)
+ stored_decals = list()
UnregisterSignal(assembly, COMSIG_ASSEMBLY_PULSED)
UnregisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL))
RegisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK, PROC_REF(on_link_requested))
@@ -98,7 +148,7 @@
/datum/component/trapdoor/proc/decal_detached(datum/source, description, cleanable, directional, pic)
SIGNAL_HANDLER
///so it adds the list to the list, not appending it to the end. thank you byond, very cool.
- assembly.stored_decals += list(list(description, cleanable, directional, pic))
+ stored_decals += list(list(description, cleanable, directional, pic))
/**
* ## reapply_all_decals
@@ -106,9 +156,9 @@
* changing turfs does not bring over decals, so we must perform a little bit of element reapplication.
*/
/datum/component/trapdoor/proc/reapply_all_decals()
- for(var/list/element_data as anything in assembly.stored_decals)
+ for(var/list/element_data as anything in stored_decals)
apply_decal(element_data[1], element_data[2], element_data[3], element_data[4])
- assembly.stored_decals = list()
+ stored_decals = list()
/// small proc that takes passed arguments and drops it into a new element
/datum/component/trapdoor/proc/apply_decal(description, cleanable, directional, pic)
@@ -117,11 +167,11 @@
///called by linking remotes to tie an assembly to the trapdoor
/datum/component/trapdoor/proc/on_link_requested(datum/source, obj/item/assembly/trapdoor/assembly)
SIGNAL_HANDLER
- if(get_dist(parent, assembly) > TRAPDOOR_LINKING_SEARCH_RANGE || assembly.linked)
+ if(get_dist(parent, assembly) > TRAPDOOR_LINKING_SEARCH_RANGE)
return
. = LINKED_UP
src.assembly = assembly
- assembly.linked = TRUE
+ ++assembly.linked
UnregisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK)
RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor))
RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink))
@@ -129,6 +179,8 @@
///signal called by our assembly being pulsed
/datum/component/trapdoor/proc/toggle_trapdoor(datum/source)
SIGNAL_HANDLER
+ if(assembly)
+ autoclose = assembly.autoclose
if(!IS_OPEN(parent))
try_opening()
else
@@ -145,8 +197,8 @@
// otherwise, break trapdoor
dying_trapdoor.visible_message(span_warning("The trapdoor mechanism in [dying_trapdoor] is broken!"))
if(assembly)
- assembly.linked = FALSE
- assembly.stored_decals.Cut()
+ assembly.linked = max(assembly.linked - 1, 0)
+ stored_decals.Cut()
assembly = null
return
post_change_callbacks += CALLBACK(src, TYPE_PROC_REF(/datum/component/trapdoor, carry_over_trapdoor), trapdoor_turf_path, conspicuous, assembly)
@@ -158,7 +210,7 @@
* apparently callbacks with arguments on invoke and the callback itself have the callback args go first. interesting!
*/
/datum/component/trapdoor/proc/carry_over_trapdoor(trapdoor_turf_path, conspicuous, assembly, turf/new_turf)
- new_turf.AddComponent(/datum/component/trapdoor, FALSE, trapdoor_turf_path, assembly, conspicuous)
+ new_turf.AddComponent(/datum/component/trapdoor, FALSE, trapdoor_turf_path, assembly, conspicuous, stored_decals, autoclose)
/**
* ## on_examine
@@ -213,20 +265,12 @@
var/search_cooldown_time = 10 SECONDS
///if true, a trapdoor in the world has a reference to this assembly and is listening for when it is pulsed.
var/linked = FALSE
- /**
- * list of lists that are arguments for readding decals when the linked trapdoor comes back. pain.
- *
- * we are storing this data FOR the trapdoor component we are linked to. kinda like a multitool.
- * format: list(list(element's description, element's cleanable, element's directional, element's pic))
- * the list will be filled with all the data of the deleting elements (when ChangeTurf is called) only when the trapdoor begins to open.
- * so any other case the elements will be changed but not recorded.
- */
- var/list/stored_decals = list()
-
+ /// Linked trapdoors will automatically close
+ var/autoclose = TRUE
/obj/item/assembly/trapdoor/pulsed(mob/pulser)
. = ..()
- if(linked)
+ if(linked > 0)
return
if(!COOLDOWN_FINISHED(src, search_cooldown))
if(loc && pulser)
@@ -272,8 +316,12 @@
. += span_notice("The internals can be removed with a screwdriver.")
if(!internals.linked)
. += span_warning("[src] is not linked to a trapdoor.")
+ . += span_notice("[src] will link to nearby trapdoors when used.")
return
- . += span_notice("[src] is linked to a trapdoor.")
+ . += span_notice("[src] is linked to [internals.linked] trapdoor(s).")
+ . += span_notice("It can be linked to additional trapdoor(s) by using it on a trapdoor.")
+ . += span_notice("Trapdoor can be unlinked with multitool.")
+ . += span_notice("Autoclose is [internals.autoclose ? "enabled" : "disabled"], ctrl-click to toggle.")
if(!COOLDOWN_FINISHED(src, trapdoor_cooldown))
. += span_warning("It is on a short cooldown.")
@@ -310,7 +358,7 @@
internals.pulsed(user)
// The pulse linked successfully
if(internals.linked)
- user.balloon_alert(user, "linked")
+ user.balloon_alert(user, "linked [internals.linked] trapdoors")
// The pulse failed to link
else
user.balloon_alert(user, "link failed!")
@@ -328,6 +376,17 @@
internals.pulsed(user)
return TRUE
+/obj/item/trapdoor_remote/item_ctrl_click(mob/user)
+ if (!user.is_holding(src))
+ return CLICK_ACTION_BLOCKING
+ if(!internals)
+ user.balloon_alert(user, "no device!")
+ return CLICK_ACTION_BLOCKING
+
+ internals.autoclose = !internals.autoclose
+ user.balloon_alert(user, "autoclose [internals.autoclose ? "enabled" : "disabled"]")
+ return CLICK_ACTION_SUCCESS
+
#undef TRAPDOOR_LINKING_SEARCH_RANGE
///subtype with internals already included. If you're giving a department a roundstart trapdoor, this is what you want
diff --git a/code/datums/datum.dm b/code/datums/datum.dm
index d170aeca8522e..d4abc7c69adc3 100644
--- a/code/datums/datum.dm
+++ b/code/datums/datum.dm
@@ -408,10 +408,15 @@
var/list/names = islist(name_or_names) ? name_or_names : list(name_or_names)
+ . = FALSE
for(var/name in names)
if(filter_data[name])
filter_data -= name
- update_filters()
+ . = TRUE
+
+ if(.)
+ update_filters()
+ return .
/datum/proc/clear_filters()
ASSERT(isatom(src) || isimage(src))
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index 966987828bd54..4a359ca1f2dc0 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -230,7 +230,7 @@
/datum/disease/transformation/slime
name = "Advanced Mutation Transformation"
- cure_text = "frost oil"
+ cure_text = "Frost oil"
cures = list(/datum/reagent/consumable/frostoil)
cure_chance = 55
agent = "Advanced Mutation Toxin"
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index f16cf5bc50cf0..df3fbd2654d77 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -150,9 +150,19 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
SEND_SIGNAL(holder, COMSIG_CARBON_GAIN_MUTATION, mutation_type, class)
return force_give(new mutation_type (class, time, copymut = mutation))
-/datum/dna/proc/remove_mutation(mutation_type)
+/datum/dna/proc/remove_mutation(datum/mutation/human/mutation_type, mutadone)
+
+ var/datum/mutation/human/actual_mutation = get_mutation(mutation_type)
+
+ if(!actual_mutation)
+ return FALSE
+
+ // Check that it exists first before trying to remove it with mutadone
+ if(actual_mutation.mutadone_proof && mutadone)
+ return FALSE
+
SEND_SIGNAL(holder, COMSIG_CARBON_LOSE_MUTATION, mutation_type)
- return force_lose(get_mutation(mutation_type))
+ return force_lose(actual_mutation)
/datum/dna/proc/check_mutation(mutation_type)
return get_mutation(mutation_type)
@@ -479,7 +489,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
/datum/dna/stored/add_mutation(mutation_name) //no mutation changes on stored dna.
return
-/datum/dna/stored/remove_mutation(mutation_name)
+/datum/dna/stored/remove_mutation(mutation_name, mutadone)
return
/datum/dna/stored/check_mutation(mutation_name)
diff --git a/code/datums/elements/content_barfer.dm b/code/datums/elements/content_barfer.dm
index e30294bc08a7f..533a88503e21e 100644
--- a/code/datums/elements/content_barfer.dm
+++ b/code/datums/elements/content_barfer.dm
@@ -20,7 +20,9 @@
/datum/element/content_barfer/proc/barf_contents(mob/living/target)
SIGNAL_HANDLER
- for(var/atom/movable/barfed_out in target)
+ for(var/atom/movable/barfed_out as anything in target)
+ if(HAS_TRAIT(barfed_out, TRAIT_NOT_BARFABLE))
+ continue
barfed_out.forceMove(target.loc)
if(prob(90))
step(barfed_out, pick(GLOB.alldirs))
diff --git a/code/datums/elements/footstep.dm b/code/datums/elements/footstep.dm
index 8b0699062e58d..9b4dfddfbd1fb 100644
--- a/code/datums/elements/footstep.dm
+++ b/code/datums/elements/footstep.dm
@@ -74,31 +74,42 @@
playsound(turf, 'sound/effects/footstep/crawl1.ogg', 15 * volume, falloff_distance = 1, vary = sound_vary)
return
- if(iscarbon(source))
- var/mob/living/carbon/carbon_source = source
- if(!carbon_source.get_bodypart(BODY_ZONE_L_LEG) && !carbon_source.get_bodypart(BODY_ZONE_R_LEG))
- return
- if(carbon_source.move_intent == MOVE_INTENT_WALK)
- return// stealth
+ if(iscarbon(source) && source.move_intent == MOVE_INTENT_WALK)
+ return // stealth
+
steps_for_living[source] += 1
var/steps = steps_for_living[source]
- if(steps >= 6)
+ if(steps >= 24)
+ // right foot = 0, 4, 8, 12, 16, 20
+ // left foot = 2, 6, 10, 14, 18, 22
+ // 24 -> return to 0 -> right foot, repeat
steps_for_living[source] = 0
steps = 0
if(steps % 2)
+ // skipping every other step, anyways. gets noisy otherwise
return
- if(steps != 0 && !source.has_gravity()) // don't need to step as often when you hop around
+ if(steps % 6 != 0 && !source.has_gravity())
+ // don't need to step as often when you hop around
return
- . = list(FOOTSTEP_MOB_SHOE = turf.footstep, FOOTSTEP_MOB_BAREFOOT = turf.barefootstep, FOOTSTEP_MOB_HEAVY = turf.heavyfootstep, FOOTSTEP_MOB_CLAW = turf.clawfootstep, STEP_SOUND_PRIORITY = STEP_SOUND_NO_PRIORITY)
- var/overriden = SEND_SIGNAL(turf, COMSIG_TURF_PREPARE_STEP_SOUND, .) & FOOTSTEP_OVERRIDEN
- //The turf has no footstep sound (e.g. open space) and none of the objects on that turf (e.g. catwalks) overrides it
- if(!overriden && isnull(turf.footstep))
+ var/list/footstep_data = list(
+ FOOTSTEP_MOB_SHOE = turf.footstep,
+ FOOTSTEP_MOB_BAREFOOT = turf.barefootstep,
+ FOOTSTEP_MOB_HEAVY = turf.heavyfootstep,
+ FOOTSTEP_MOB_CLAW = turf.clawfootstep,
+ STEP_SOUND_PRIORITY = STEP_SOUND_NO_PRIORITY,
+ )
+ var/sigreturn = SEND_SIGNAL(turf, COMSIG_TURF_PREPARE_STEP_SOUND, footstep_data)
+ if(sigreturn & FOOTSTEP_OVERRIDEN)
+ return footstep_data
+ if(isnull(turf.footstep))
+ // The turf has no footstep sound (e.g. open space)
+ // and none of the objects on that turf (e.g. catwalks) overrides it
return null
- return .
+ return footstep_data
/datum/element/footstep/proc/play_simplestep(mob/living/source, atom/oldloc, direction, forced, list/old_locs, momentum_change)
SIGNAL_HANDLER
@@ -131,6 +142,48 @@
if (forced || SHOULD_DISABLE_FOOTSTEPS(source) || !momentum_change)
return
+ var/list/prepared_steps = prepare_step(source)
+ if(isnull(prepared_steps))
+ return
+
+ var/footstep_type = null
+ var/list/footstep_sounds
+ var/stepcount = steps_for_living[source]
+ // any leg covering sounds defaults to shoe sounds
+ if((source.wear_suit?.body_parts_covered|source.w_uniform?.body_parts_covered|source.shoes?.body_parts_covered) & FEET)
+ footstep_type = FOOTSTEP_MOB_SHOE
+ // now pick whether to draw from left foot or right foot sounds
+ else
+ var/obj/item/bodypart/leg/left_leg = source.get_bodypart(BODY_ZONE_L_LEG)
+ var/obj/item/bodypart/leg/right_leg = source.get_bodypart(BODY_ZONE_R_LEG)
+ if(stepcount == 2 || stepcount == 6)
+ footstep_sounds = left_leg?.special_footstep_sounds || right_leg?.special_footstep_sounds
+ footstep_type = left_leg?.footstep_type || right_leg?.footstep_type
+ else
+ footstep_sounds = right_leg?.special_footstep_sounds || left_leg?.special_footstep_sounds
+ footstep_type = right_leg?.footstep_type || left_leg?.footstep_type
+
+ // allow for snowflake effects to take priority
+ if(!length(footstep_sounds))
+ switch(footstep_type)
+ if(FOOTSTEP_MOB_CLAW)
+ footstep_sounds = GLOB.clawfootstep[prepared_steps[footstep_type]]
+ if(FOOTSTEP_MOB_BAREFOOT)
+ footstep_sounds = GLOB.barefootstep[prepared_steps[footstep_type]]
+ if(FOOTSTEP_MOB_HEAVY)
+ footstep_sounds = GLOB.heavyfootstep[prepared_steps[footstep_type]]
+ if(FOOTSTEP_MOB_SHOE)
+ footstep_sounds = GLOB.footstep[prepared_steps[footstep_type]]
+ if(null)
+ return
+ else
+ // Got an unsupported type, somehow
+ CRASH("Invalid footstep type for human footstep: \[[footstep_type]\]")
+
+ // no snowflake, and no (found) footstep sounds, nothing to do
+ if(!length(footstep_sounds))
+ return
+
var/volume_multiplier = 1
var/range_adjustment = 0
@@ -138,37 +191,20 @@
volume_multiplier = 0.6
range_adjustment = -2
- var/list/prepared_steps = prepare_step(source)
- if(isnull(prepared_steps))
- return
-
- //cache for sanic speed (lists are references anyways)
- var/footstep_sounds = GLOB.footstep
- ///list returned by playsound() filled by client mobs who heard the footstep. given to play_fov_effect()
+ // list returned by playsound() filled by client mobs who heard the footstep. given to play_fov_effect()
var/list/heard_clients
-
- if((source.wear_suit?.body_parts_covered | source.w_uniform?.body_parts_covered | source.shoes?.body_parts_covered) & FEET)
- // we are wearing shoes
-
- var/shoestep_type = prepared_steps[FOOTSTEP_MOB_SHOE]
- if(!isnull(shoestep_type) && footstep_sounds[shoestep_type]) // shoestep type can be null
- heard_clients = playsound(source.loc, pick(footstep_sounds[shoestep_type][1]),
- footstep_sounds[shoestep_type][2] * volume * volume_multiplier,
- TRUE,
- footstep_sounds[shoestep_type][3] + e_range + range_adjustment, falloff_distance = 1, vary = sound_vary)
- else
- // we are barefoot
-
- if(source.dna.species.special_step_sounds)
- heard_clients = playsound(source.loc, pick(source.dna.species.special_step_sounds), 50, TRUE, falloff_distance = 1, vary = sound_vary)
- else
- var/barefoot_type = prepared_steps[FOOTSTEP_MOB_BAREFOOT]
- var/bare_footstep_sounds = GLOB.barefootstep
- if(!isnull(barefoot_type) && bare_footstep_sounds[barefoot_type]) // barefoot_type can be null
- heard_clients = playsound(source.loc, pick(bare_footstep_sounds[barefoot_type][1]),
- bare_footstep_sounds[barefoot_type][2] * volume * volume_multiplier,
- TRUE,
- bare_footstep_sounds[barefoot_type][3] + e_range + range_adjustment, falloff_distance = 1, vary = sound_vary)
+ var/picked_sound = pick(footstep_sounds[1])
+ var/picked_volume = footstep_sounds[2] * volume * volume_multiplier
+ var/picked_range = footstep_sounds[3] + e_range + range_adjustment
+
+ heard_clients = playsound(
+ source = source,
+ soundin = picked_sound,
+ vol = picked_volume,
+ vary = sound_vary,
+ extrarange = picked_range,
+ falloff_distance = 1,
+ )
if(heard_clients)
play_fov_effect(source, 5, "footstep", direction, ignore_self = TRUE, override_list = heard_clients)
diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm
index 60c12c25b9ef1..ddfda189ef2b3 100644
--- a/code/datums/greyscale/_greyscale_config.dm
+++ b/code/datums/greyscale/_greyscale_config.dm
@@ -249,7 +249,7 @@
/datum/greyscale_config/proc/GenerateBundle(list/colors, list/render_steps, icon/last_external_icon)
if(!istype(colors))
colors = SSgreyscale.ParseColorString(colors)
- if(length(colors) != expected_colors)
+ if(length(colors) < expected_colors)
CRASH("[DebugName()] expected [expected_colors] color arguments but only received [length(colors)]")
var/list/generated_icons = list()
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 2137aea08f3b4..62f30855abb1f 100644
--- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
+++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
@@ -229,6 +229,21 @@
icon_file = 'icons/obj/toys/plushes.dmi'
json_config = 'code/datums/greyscale/json_configs/plushie_carp.json'
+/datum/greyscale_config/pet_carrier
+ name = "Pet Carrier"
+ icon_file = 'icons/obj/pet_carrier.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier.json'
+
+/datum/greyscale_config/pet_carrier_inhands_left
+ name = "Pet Carrier Left"
+ icon_file = 'icons/mob/inhands/items_lefthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json'
+
+/datum/greyscale_config/pet_carrier_inhands_right
+ name = "Pet Carrier Right"
+ icon_file = 'icons/mob/inhands/items_righthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json'
+
/datum/greyscale_config/plush_lizard
name = "Plushie Lizard"
icon_file = 'icons/obj/toys/plushes.dmi'
diff --git a/code/datums/greyscale/json_configs/bandanaskull_inhands.json b/code/datums/greyscale/json_configs/bandanaskull_inhands.json
index b7067cf3c2e71..40fade079736c 100644
--- a/code/datums/greyscale/json_configs/bandanaskull_inhands.json
+++ b/code/datums/greyscale/json_configs/bandanaskull_inhands.json
@@ -14,3 +14,4 @@
}
]
}
+
diff --git a/code/datums/greyscale/json_configs/items/cleric_mace.json b/code/datums/greyscale/json_configs/items/cleric_mace.json
index 781c790ea6ab5..5197ebc45a2ef 100644
--- a/code/datums/greyscale/json_configs/items/cleric_mace.json
+++ b/code/datums/greyscale/json_configs/items/cleric_mace.json
@@ -9,7 +9,8 @@
{
"type": "icon_state",
"icon_state": "handle",
- "blend_mode": "overlay"
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
}
],
"default_worn": [
@@ -22,7 +23,8 @@
{
"type": "icon_state",
"icon_state": "worn_handle",
- "blend_mode": "overlay"
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
}
]
}
diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json
index c49a829aa2c21..5725cfa689a42 100644
--- a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json
+++ b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json
@@ -9,7 +9,8 @@
{
"type": "icon_state",
"icon_state": "worn_handle",
- "blend_mode": "overlay"
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
}
]
}
diff --git a/code/datums/greyscale/json_configs/pet_carrier.json b/code/datums/greyscale/json_configs/pet_carrier.json
new file mode 100644
index 0000000000000..1674765268ff2
--- /dev/null
+++ b/code/datums/greyscale/json_configs/pet_carrier.json
@@ -0,0 +1,87 @@
+{
+ "pet_carrier_open": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_open",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_closed_unlocked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_unlocked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_closed",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_closed_locked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_locked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_closed",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_occupied_unlocked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_unlocked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_occupied",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "pet_carrier_occupied_locked": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_locked",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_occupied",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/pet_carrier_inhands.json b/code/datums/greyscale/json_configs/pet_carrier_inhands.json
new file mode 100644
index 0000000000000..05978e3c8292b
--- /dev/null
+++ b/code/datums/greyscale/json_configs/pet_carrier_inhands.json
@@ -0,0 +1,15 @@
+{
+ "pet_carrier": [
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier",
+ "blend_mode": "overlay"
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "pet_carrier_gags",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm
index 732323d28655c..c6e8236e55964 100644
--- a/code/datums/helper_datums/getrev.dm
+++ b/code/datums/helper_datums/getrev.dm
@@ -87,6 +87,6 @@
msg += "
Current Informational Settings:"
msg += "Protect Authority Roles From Traitor: [CONFIG_GET(flag/protect_roles_from_antagonist)]"
msg += "Protect Assistant Role From Traitor: [CONFIG_GET(flag/protect_assistant_from_antagonist)]"
- msg += "Enforce Human Authority: [CONFIG_GET(flag/enforce_human_authority)]"
+ msg += "Enforce Human Authority: [CONFIG_GET(string/human_authority)]"
msg += "Allow Latejoin Antagonists: [CONFIG_GET(flag/allow_latejoin_antagonists)]"
to_chat(src, span_infoplain(msg.Join("
")))
diff --git a/code/datums/job_configs/_job_configs.dm b/code/datums/job_configs/_job_configs.dm
index 84e2cb4ec0a41..b3a32cd8a2b83 100644
--- a/code/datums/job_configs/_job_configs.dm
+++ b/code/datums/job_configs/_job_configs.dm
@@ -33,6 +33,12 @@
stack_trace("Attempted to validate value for the default job config! You're doing something wrong!!")
return FALSE
+/// Check if the config entry should be made for a specific job
+/// By default returns TRUE, meaning that by default every job will have the config entry created by the datum
+/// An example of what this could be used for is: A value that only appears if the job is a head of staff
+/datum/job_config_type/proc/validate_entry(datum/job/occupation)
+ return TRUE
+
/// This is the proc that we actually invoke to set the config-based values for each job. Is also intended to handle all in-depth logic checks pertient to the job datum itself.
/// Return TRUE if the value was set successfully (or if expected behavior did indeed occur), FALSE if it was not.
/datum/job_config_type/proc/set_current_value(datum/job/occupation, value)
diff --git a/code/datums/job_configs/human_authority.dm b/code/datums/job_configs/human_authority.dm
new file mode 100644
index 0000000000000..68b6c64f95cfa
--- /dev/null
+++ b/code/datums/job_configs/human_authority.dm
@@ -0,0 +1,17 @@
+/// Whether if the job should whitelist humans, whitelist nonhumans, or neither
+/datum/job_config_type/human_authority
+ name = JOB_CONFIG_HUMAN_AUTHORITY
+ datum_var_name = "human_authority"
+
+/datum/job_config_type/human_authority/validate_value(value)
+ if(value == JOB_AUTHORITY_HUMANS_ONLY)
+ return TRUE
+
+ if(value == JOB_AUTHORITY_NON_HUMANS_ALLOWED)
+ return TRUE
+
+ return FALSE
+
+/datum/job_config_type/human_authority/validate_entry(datum/job/occupation)
+ return occupation.job_flags & JOB_HEAD_OF_STAFF
+
diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm
index 5dc8c26d0f6a3..cff0ea0e6d1c5 100644
--- a/code/datums/materials/_material.dm
+++ b/code/datums/materials/_material.dm
@@ -13,12 +13,20 @@ Simple datum which is instanced once per type and is used for every object of sa
/// What the material is indexed by in the SSmaterials.materials list. Defaults to the type of the material.
var/id
- ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null.
- ///Deprecated, use greyscale_color instead.
+ /**
+ * Base color of the material, for items that don't have greyscale configs nor are made of multiple materials. Item isn't changed in color if this is null.
+ * This can be a RGB or color matrix, but it cannot be RGBA as alpha is automatically filled in.
+ */
var/color
- ///Determines the color palette of the material. Formatted the same as atom/var/greyscale_colors
- var/greyscale_colors
- ///Base alpha of the material, is used for greyscale icons.
+ /**
+ * If the color is a color matrix and either the item uses greyscale configs or is made of multiple colored materials. This will be used instead because
+ * neither greyscale configs nor BlendRGB() support color matrices.
+ * Also this has to be RRGGBB, six characters, no alpha channel as it's automatically filled in.
+ *
+ * Basically, set this if the color is a color matrix (list)
+ */
+ var/greyscale_color
+ /// Base alpha of the material
var/alpha = 255
///Starlight color of the material
///This is the color of light it'll emit if its turf is transparent and over space. Defaults to COLOR_STARLIGHT if not set
@@ -67,6 +75,8 @@ Simple datum which is instanced once per type and is used for every object of sa
var/mineral_rarity = MATERIAL_RARITY_COMMON
/// How many points per units of ore does this grant?
var/points_per_unit = 1
+ /// The slowdown that is added to items.
+ var/added_slowdown = 0
/** Handles initializing the material.
*
@@ -85,84 +95,11 @@ Simple datum which is instanced once per type and is used for every object of sa
return TRUE
///This proc is called when the material is added to an object.
-/datum/material/proc/on_applied(atom/source, amount, material_flags)
- if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
- if(color) //Do we have a custom color?
- source.add_atom_colour(color, FIXED_COLOUR_PRIORITY)
- if(alpha)
- source.alpha = alpha
- if(texture_layer_icon_state)
- ADD_KEEP_TOGETHER(source, MATERIAL_SOURCE(src))
- source.add_filter("material_texture_[name]",1,layering_filter(icon=cached_texture_filter_icon,blend_mode=BLEND_INSET_OVERLAY))
-
- if(material_flags & MATERIAL_GREYSCALE)
- var/config_path = get_greyscale_config_for(source.greyscale_config)
- source.set_greyscale(greyscale_colors, config_path)
-
- if(alpha < 255)
- source.opacity = FALSE
- if(material_flags & MATERIAL_ADD_PREFIX)
- source.name = "[name] [source.name]"
-
- if(beauty_modifier)
- source.AddElement(/datum/element/beauty, beauty_modifier * amount)
-
- if(isobj(source)) //objs
- on_applied_obj(source, amount, material_flags)
-
- else if(istype(source, /turf)) //turfs
- on_applied_turf(source, amount, material_flags)
-
- source.mat_update_desc(src)
-
-///This proc is called when a material updates an object's description
-/atom/proc/mat_update_desc(datum/material/mat)
+/datum/material/proc/on_applied(atom/source, mat_amount, multiplier)
return
-///This proc is called when the material is added to an object specifically.
-/datum/material/proc/on_applied_obj(obj/o, amount, material_flags)
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
- var/new_max_integrity = CEILING(o.max_integrity * integrity_modifier, 1)
- o.modify_max_integrity(new_max_integrity)
- o.force *= strength_modifier
- o.throwforce *= strength_modifier
- o.set_armor(o.get_armor().generate_new_with_multipliers(armor_modifiers))
-
- if(!isitem(o))
- return
- var/obj/item/item = o
-
- if(material_flags & MATERIAL_GREYSCALE)
- var/worn_path = get_greyscale_config_for(item.greyscale_config_worn)
- var/lefthand_path = get_greyscale_config_for(item.greyscale_config_inhand_left)
- var/righthand_path = get_greyscale_config_for(item.greyscale_config_inhand_right)
- item.set_greyscale(
- new_worn_config = worn_path,
- new_inhand_left = lefthand_path,
- new_inhand_right = righthand_path
- )
-
- if(!item_sound_override)
- return
- item.hitsound = item_sound_override
- item.usesound = item_sound_override
- item.mob_throw_hit_sound = item_sound_override
- item.equip_sound = item_sound_override
- item.pickup_sound = item_sound_override
- item.drop_sound = item_sound_override
-
-/datum/material/proc/on_applied_turf(turf/T, amount, material_flags)
- if(isopenturf(T))
- if(turf_sound_override)
- var/turf/open/O = T
- O.footstep = turf_sound_override
- O.barefootstep = turf_sound_override + "barefoot"
- O.clawfootstep = turf_sound_override + "claw"
- O.heavyfootstep = FOOTSTEP_GENERIC_HEAVY
- if(alpha < 255)
- T.AddElement(/datum/element/turf_z_transparency)
- setup_glow(T)
- T.rust_resistance = mat_rust_resistance
+///This proc is called when the material becomes the one the object is composed of the most
+/datum/material/proc/on_main_applied(atom/source, mat_amount, multiplier)
return
/datum/material/proc/setup_glow(turf/on)
@@ -183,61 +120,13 @@ Simple datum which is instanced once per type and is used for every object of sa
/datum/material/proc/lit_turf_deleted(turf/source)
source.set_light(0, 0, null)
-/datum/material/proc/get_greyscale_config_for(datum/greyscale_config/config_path)
- if(!config_path)
- return
- for(var/datum/greyscale_config/path as anything in subtypesof(config_path))
- if(type != initial(path.material_skin))
- continue
- return path
-
///This proc is called when the material is removed from an object.
/datum/material/proc/on_removed(atom/source, amount, material_flags)
- if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
- if(color)
- source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color)
- if(texture_layer_icon_state)
- source.remove_filter("material_texture_[name]")
- REMOVE_KEEP_TOGETHER(source, MATERIAL_SOURCE(src))
- source.alpha = initial(source.alpha)
-
- if(material_flags & MATERIAL_GREYSCALE)
- source.set_greyscale(initial(source.greyscale_colors), initial(source.greyscale_config))
-
- if(material_flags & MATERIAL_ADD_PREFIX)
- source.name = initial(source.name)
-
- if(beauty_modifier)
- source.RemoveElement(/datum/element/beauty, beauty_modifier * amount)
-
- if(isobj(source)) //objs
- on_removed_obj(source, amount, material_flags)
-
- if(istype(source, /turf)) //turfs
- on_removed_turf(source, amount, material_flags)
-
-///This proc is called when the material is removed from an object specifically.
-/datum/material/proc/on_removed_obj(obj/o, amount, material_flags)
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
- var/new_max_integrity = initial(o.max_integrity)
- o.modify_max_integrity(new_max_integrity)
- o.force = initial(o.force)
- o.throwforce = initial(o.throwforce)
-
- if(isitem(o) && (material_flags & MATERIAL_GREYSCALE))
- var/obj/item/item = o
- item.set_greyscale(
- new_worn_config = initial(item.greyscale_config_worn),
- new_inhand_left = initial(item.greyscale_config_inhand_left),
- new_inhand_right = initial(item.greyscale_config_inhand_right)
- )
+ return
-/datum/material/proc/on_removed_turf(turf/T, amount, material_flags)
- if(alpha < 255)
- T.RemoveElement(/datum/element/turf_z_transparency)
- // yeets glow
- T.UnregisterSignal(SSdcs, COMSIG_STARLIGHT_COLOR_CHANGED)
- T.set_light(0, 0, null)
+///This proc is called when the material is no longer the one the object is composed by the most
+/datum/material/proc/on_main_removed(atom/source, mat_amount, multiplier)
+ return
/**
* This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption.
@@ -258,3 +147,11 @@ Simple datum which is instanced once per type and is used for every object of sa
/datum/material/proc/return_composition(amount = 1)
// Yes we need the parenthesis, without them BYOND stringifies src into "src" and things break.
return list((src) = amount)
+
+///Returns the list of armor modifiers, with each element having its assoc value multiplied by the multiplier arg
+/datum/material/proc/get_armor_modifiers(multiplier)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ var/list/return_list = list()
+ for(var/armor in armor_modifiers)
+ return_list[armor] = return_list[armor] * multiplier
+ return return_list
diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm
index 8bfdf0b58d9fe..d13a88c49c3a2 100644
--- a/code/datums/materials/alloys.dm
+++ b/code/datums/materials/alloys.dm
@@ -27,31 +27,21 @@
name = "plasteel"
desc = "The heavy duty result of infusing iron with plasma."
color = "#706374"
- greyscale_colors = "#706374"
init_flags = MATERIAL_INIT_MAPLOAD
value_per_unit = 0.135
strength_modifier = 1.25
integrity_modifier = 1.5 // Heavy duty.
armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.1, ENERGY = 1.1, BOMB = 1.5, BIO = 1, FIRE = 1.1, ACID = 1)
sheet_type = /obj/item/stack/sheet/plasteel
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/iron=1, /datum/material/plasma=1)
mat_rust_resistance = RUST_RESISTANCE_REINFORCED
-
-/datum/material/alloy/plasteel/on_applied_obj(obj/item/target_item, amount, material_flags)
- . = ..()
- if(!istype(target_item))
- return
-
- target_item.slowdown += MATERIAL_SLOWDOWN_PLASTEEL * amount / SHEET_MATERIAL_AMOUNT
-
-/datum/material/alloy/plasteel/on_removed_obj(obj/item/target_item, amount, material_flags)
- . = ..()
-
- if(!istype(target_item))
- return
-
- target_item.slowdown -= MATERIAL_SLOWDOWN_PLASTEEL * amount / SHEET_MATERIAL_AMOUNT
+ added_slowdown = 0.05
/** Plastitanium
*
@@ -61,14 +51,18 @@
name = "plastitanium"
desc = "The extremely heat resistant result of infusing titanium with plasma."
color = "#3a313a"
- greyscale_colors = "#3a313a"
init_flags = MATERIAL_INIT_MAPLOAD
value_per_unit = 0.225
strength_modifier = 0.9 // It's a lightweight alloy.
integrity_modifier = 1.3
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.4, ENERGY = 1.4, BOMB = 1.1, BIO = 1.2, FIRE = 1.5, ACID = 1)
sheet_type = /obj/item/stack/sheet/mineral/plastitanium
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/titanium=1, /datum/material/plasma=1)
mat_rust_resistance = RUST_RESISTANCE_TITANIUM
@@ -80,7 +74,6 @@
name = "plasmaglass"
desc = "Plasma-infused silicate. It is much more durable and heat resistant than either of its component materials."
color = "#ff80f4"
- greyscale_colors = "#ff80f496"
alpha = 150
starlight_color = COLOR_STRONG_MAGENTA
init_flags = MATERIAL_INIT_MAPLOAD
@@ -90,7 +83,12 @@
shard_type = /obj/item/shard/plasma
debris_type = /obj/effect/decal/cleanable/glass/plasma
value_per_unit = 0.075
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/glass=1, /datum/material/plasma=0.5)
/** Titaniumglass
@@ -101,7 +99,6 @@
name = "titanium glass"
desc = "A specialized silicate-titanium alloy that is commonly used in shuttle windows."
color = "#cfbee0"
- greyscale_colors = "#cfbee096"
alpha = 150
starlight_color = COLOR_COMMAND_BLUE
init_flags = MATERIAL_INIT_MAPLOAD
@@ -110,7 +107,12 @@
shard_type = /obj/item/shard/titanium
debris_type = /obj/effect/decal/cleanable/glass/titanium
value_per_unit = 0.04
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/glass=1, /datum/material/titanium=0.5)
/** Plastitanium Glass
@@ -121,7 +123,6 @@
name = "plastitanium glass"
desc = "A specialized silicate-plastitanium alloy."
color = "#5d3369"
- greyscale_colors = "#5d336996"
starlight_color = COLOR_CENTCOM_BLUE
alpha = 150
init_flags = MATERIAL_INIT_MAPLOAD
@@ -131,7 +132,12 @@
shard_type = /obj/item/shard/plastitanium
debris_type = /obj/effect/decal/cleanable/glass/plastitanium
value_per_unit = 0.125
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/glass=1, /datum/material/alloy/plastitanium=0.5)
/** Alien Alloy
@@ -144,30 +150,27 @@
name = "alien alloy"
desc = "An extremely dense alloy similar to plasteel in composition. It requires exotic metallurgical processes to create."
color = "#6041aa"
- greyscale_colors = "#6041aa"
init_flags = MATERIAL_INIT_MAPLOAD
strength_modifier = 1.5 // It's twice the density of plasteel and just as durable. Getting hit with it is going to HURT.
integrity_modifier = 1.5
armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.2, ENERGY = 1.2, BOMB = 1.5, BIO = 1.2, FIRE = 1.2, ACID = 1.2)
sheet_type = /obj/item/stack/sheet/mineral/abductor
value_per_unit = 0.4
- categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
composition = list(/datum/material/iron=2, /datum/material/plasma=2)
+ added_slowdown = 0.1
-/datum/material/alloy/alien/on_applied_obj(obj/item/target_item, amount, material_flags)
+/datum/material/alloy/alien/on_applied(atom/target, mat_amount, multiplier)
. = ..()
+ if(isobj(target))
+ target.AddElement(/datum/element/obj_regen, _rate=0.02) // 2% regen per tick.
- target_item.AddElement(/datum/element/obj_regen, _rate=0.02) // 2% regen per tick.
- if(!istype(target_item))
- return
-
- target_item.slowdown += MATERIAL_SLOWDOWN_ALIEN_ALLOY * amount / SHEET_MATERIAL_AMOUNT
-
-/datum/material/alloy/alien/on_removed_obj(obj/item/target_item, amount, material_flags)
+/datum/material/alloy/alien/on_removed(atom/target, mat_amount, multiplier)
. = ..()
-
- target_item.RemoveElement(/datum/element/obj_regen, _rate=0.02)
- if(!istype(target_item))
- return
-
- target_item.slowdown -= MATERIAL_SLOWDOWN_ALIEN_ALLOY * amount / SHEET_MATERIAL_AMOUNT
+ if(isobj(target))
+ target.RemoveElement(/datum/element/obj_regen, _rate=0.02)
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
index 66f4bccbd6f7b..76d44c1f16455 100644
--- a/code/datums/materials/basemats.dm
+++ b/code/datums/materials/basemats.dm
@@ -3,8 +3,13 @@
name = "iron"
desc = "Common iron ore often found in sedimentary and igneous layers of the crust."
color = "#B6BEC2"
- greyscale_colors = "#B6BEC2"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/iron
ore_type = /obj/item/stack/ore/iron
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
@@ -24,9 +29,14 @@
name = "glass"
desc = "Glass forged by melting sand."
color = "#6292AF"
- greyscale_colors = "#6292AF"
alpha = 150
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
integrity_modifier = 0.1
sheet_type = /obj/item/stack/sheet/glass
ore_type = /obj/item/stack/ore/glass/basalt
@@ -46,15 +56,15 @@
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5, sharpness = TRUE) //cronch
return TRUE
-/datum/material/glass/on_applied_obj(atom/source, amount, material_flags)
+/datum/material/glass/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- if(!isstack(source))
- source.AddElement(/datum/element/can_shatter, shard_type, round(amount / SHEET_MATERIAL_AMOUNT), SFX_SHATTER)
+ if(isobj(source) && !isstack(source))
+ source.AddElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER)
-/datum/material/glass/on_removed(atom/source, amount, material_flags)
+/datum/material/glass/on_main_removed(atom/source, mat_amount, multiplier)
. = ..()
-
- source.RemoveElement(/datum/element/can_shatter, shard_type)
+ if(isobj(source) && !isstack(source))
+ source.RemoveElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER)
/*
Color matrices are like regular colors but unlike with normal colors, you can go over 255 on a channel.
@@ -66,8 +76,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "silver"
desc = "Silver"
color = "#B5BCBB"
- greyscale_colors = "#B5BCBB"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/silver
ore_type = /obj/item/stack/ore/silver
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
@@ -87,9 +102,14 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "gold"
desc = "Gold"
color = "#E6BB45"
- greyscale_colors = "#E6BB45"
strength_modifier = 1.2
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/gold
ore_type = /obj/item/stack/ore/gold
value_per_unit = 125 / SHEET_MATERIAL_AMOUNT
@@ -110,8 +130,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "diamond"
desc = "Highly pressurized carbon"
color = "#C9D8F2"
- greyscale_colors = "#C9D8F2"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/diamond
ore_type = /obj/item/stack/ore/diamond
alpha = 132
@@ -133,8 +158,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "uranium"
desc = "Uranium"
color = "#2C992C"
- greyscale_colors = "#2C992C"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/uranium
ore_type = /obj/item/stack/ore/uranium
value_per_unit = 100 / SHEET_MATERIAL_AMOUNT
@@ -145,7 +175,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
mineral_rarity = MATERIAL_RARITY_SEMIPRECIOUS
points_per_unit = 30 / SHEET_MATERIAL_AMOUNT
-/datum/material/uranium/on_applied(atom/source, amount, material_flags)
+/datum/material/uranium/on_applied(atom/source, mat_amount, multiplier)
. = ..()
// Uranium structures should irradiate, but not items, because item irradiation is a lot more annoying.
@@ -153,15 +183,15 @@ Unless you know what you're doing, only use the first three numbers. They're in
if (isitem(source))
return
- source.AddElement(/datum/element/radioactive)
+ source.AddElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier)
-/datum/material/uranium/on_removed(atom/source, amount, material_flags)
+/datum/material/uranium/on_removed(atom/source, mat_amount, multiplier)
. = ..()
if (isitem(source))
return
- source.RemoveElement(/datum/element/radioactive)
+ source.RemoveElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier)
/datum/material/uranium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
victim.reagents.add_reagent(/datum/reagent/uranium, rand(4, 6))
@@ -173,8 +203,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "plasma"
desc = "Isn't plasma a state of matter? Oh whatever."
color = "#BA3692"
- greyscale_colors = "#BA3692"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/plasma
ore_type = /obj/item/stack/ore/plasma
value_per_unit = 200 / SHEET_MATERIAL_AMOUNT
@@ -183,15 +218,15 @@ Unless you know what you're doing, only use the first three numbers. They're in
mineral_rarity = MATERIAL_RARITY_PRECIOUS
points_per_unit = 15 / SHEET_MATERIAL_AMOUNT
-/datum/material/plasma/on_applied(atom/source, amount, material_flags)
+/datum/material/plasma/on_applied(atom/source, mat_amount, multiplier)
. = ..()
if(ismovable(source))
- source.AddElement(/datum/element/firestacker, amount=1)
- source.AddComponent(/datum/component/combustible_flooder, "plasma", amount*0.05) //Empty temp arg, fully dependent on whatever ignited it.
+ source.AddElement(/datum/element/firestacker, 1 * multiplier)
+ source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 0.05 * multiplier) //Empty temp arg, fully dependent on whatever ignited it.
-/datum/material/plasma/on_removed(atom/source, amount, material_flags)
+/datum/material/plasma/on_removed(atom/source, mat_amount, multiplier)
. = ..()
- source.RemoveElement(/datum/element/firestacker, amount=1)
+ source.RemoveElement(/datum/element/firestacker, mat_amount = 1 * multiplier)
qdel(source.GetComponent(/datum/component/combustible_flooder))
qdel(source.GetComponent(/datum/component/explodable))
@@ -205,10 +240,15 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "bluespace crystal"
desc = "Crystals with bluespace properties"
color = "#2E50B7"
- greyscale_colors = "#2E50B7"
alpha = 200
starlight_color = COLOR_BLUE
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_ITEM_MATERIAL = TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
beauty_modifier = 0.5
sheet_type = /obj/item/stack/sheet/bluespace_crystal
ore_type = /obj/item/stack/ore/bluespace_crystal
@@ -229,8 +269,14 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "bananium"
desc = "Material with hilarious properties"
color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow //It's literally perfect I can't change it
- greyscale_colors = "#FFF269"
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ greyscale_color = "#FFF269"
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/bananium
ore_type = /obj/item/stack/ore/bananium
value_per_unit = 1000 / SHEET_MATERIAL_AMOUNT
@@ -239,12 +285,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED
points_per_unit = 60 / SHEET_MATERIAL_AMOUNT
-/datum/material/bananium/on_applied(atom/source, amount, material_flags)
+/datum/material/bananium/on_applied(atom/source, mat_amount, multiplier)
. = ..()
- source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20)
- source.AddComponent(/datum/component/slippery, min(amount / 10, 80))
+ source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50 * multiplier, falloff_exponent = 20)
+ source.AddComponent(/datum/component/slippery, min(mat_amount / 10 * multiplier, 80 * multiplier))
-/datum/material/bananium/on_removed(atom/source, amount, material_flags)
+/datum/material/bananium/on_removed(atom/source, mat_amount, multiplier)
. = ..()
qdel(source.GetComponent(/datum/component/slippery))
qdel(source.GetComponent(/datum/component/squeak))
@@ -259,9 +305,14 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "titanium"
desc = "Titanium"
color = "#EFEFEF"
- greyscale_colors = "#EFEFEF"
strength_modifier = 1.3
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/titanium
ore_type = /obj/item/stack/ore/titanium
value_per_unit = 125 / SHEET_MATERIAL_AMOUNT
@@ -281,9 +332,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "runite"
desc = "Runite"
color = "#526F77"
- greyscale_colors = "#526F77"
strength_modifier = 1.3
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/runite
value_per_unit = 600 / SHEET_MATERIAL_AMOUNT
beauty_modifier = 0.5
@@ -300,11 +355,16 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "plastic"
desc = "Plastic"
color = "#BFB9AC"
- greyscale_colors = "#BFB9AC"
strength_modifier = 0.85
sheet_type = /obj/item/stack/sheet/plastic
ore_type = /obj/item/stack/ore/slag //No plastic or coal ore, so we use slag.
- categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_SILO = TRUE,
+ MAT_CATEGORY_RIGID=TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
value_per_unit = 25 / SHEET_MATERIAL_AMOUNT
beauty_modifier = -0.01
armor_modifiers = list(MELEE = 1.5, BULLET = 1.1, LASER = 0.3, ENERGY = 0.5, BOMB = 1, BIO = 1, FIRE = 1.1, ACID = 1)
@@ -319,9 +379,8 @@ Unless you know what you're doing, only use the first three numbers. They're in
///Force decrease and mushy sound effect. (Not yet implemented)
/datum/material/biomass
name = "biomass"
- desc = "Organic matter"
+ desc = "Organic matter."
color = "#735b4d"
- greyscale_colors = "#735b4d"
strength_modifier = 0.8
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
@@ -329,24 +388,28 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "wood"
desc = "Flexible, durable, but flamable. Hard to come across in space."
color = "#855932"
- greyscale_colors = "#855932"
strength_modifier = 0.5
sheet_type = /obj/item/stack/sheet/mineral/wood
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
value_per_unit = 20 / SHEET_MATERIAL_AMOUNT
beauty_modifier = 0.1
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 0.4, ENERGY = 0.4, BOMB = 1, BIO = 0.2, ACID = 0.3)
texture_layer_icon_state = "woodgrain"
-/datum/material/wood/on_applied_obj(obj/source, amount, material_flags)
+/datum/material/wood/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+ if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source))
var/obj/wooden = source
wooden.resistance_flags |= FLAMMABLE
-/datum/material/wood/on_removed_obj(obj/source, amount, material_flags)
+/datum/material/wood/on_main_removed(atom/source, mat_amount, multiplier)
. = ..()
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+ if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source))
var/obj/wooden = source
wooden.resistance_flags &= ~FLAMMABLE
@@ -362,9 +425,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "adamantine"
desc = "A powerful material made out of magic, I mean science!"
color = "#2B7A74"
- greyscale_colors = "#2B7A74"
strength_modifier = 1.5
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/adamantine
value_per_unit = 500 / SHEET_MATERIAL_AMOUNT
beauty_modifier = 0.4
@@ -381,8 +448,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "mythril"
desc = "How this even exists is byond me"
color = "#f2d5d7"
- greyscale_colors = "#f2d5d7"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/mythril
value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT
strength_modifier = 1.2
@@ -391,13 +462,13 @@ Unless you know what you're doing, only use the first three numbers. They're in
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED //Doesn't naturally spawn on lavaland.
points_per_unit = 100 / SHEET_MATERIAL_AMOUNT
-/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags)
+/datum/material/mythril/on_applied(atom/source, mat_amount, multiplier)
. = ..()
if(isitem(source))
source.AddComponent(/datum/component/fantasy)
ADD_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS LAST OR WE WILL NEVER GET OUR BONUSES!!!
-/datum/material/mythril/on_removed_obj(atom/source, amount, material_flags)
+/datum/material/mythril/on_removed(atom/source, mat_amount, multiplier)
. = ..()
if(isitem(source))
REMOVE_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS FIRST OR WE WILL NEVER GET OUR BONUSES DELETED!!!
@@ -412,19 +483,23 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "hot ice"
desc = "A weird kind of ice, feels warm to the touch"
color = "#88cdf1"
- greyscale_colors = "#88cdf196"
alpha = 150
starlight_color = COLOR_BLUE_LIGHT
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/hot_ice
value_per_unit = 400 / SHEET_MATERIAL_AMOUNT
beauty_modifier = 0.2
-/datum/material/hot_ice/on_applied(atom/source, amount, material_flags)
+/datum/material/hot_ice/on_applied(atom/source, mat_amount, multiplier)
. = ..()
- source.AddComponent(/datum/component/combustible_flooder, "plasma", amount*1.5, amount*0.2+300)
+ source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 1.5 * multiplier, (mat_amount * 0.2 + 300) * multiplier)
-/datum/material/hot_ice/on_removed(atom/source, amount, material_flags)
+/datum/material/hot_ice/on_removed(atom/source, mat_amount, multiplier)
qdel(source.GetComponent(/datum/component/combustible_flooder))
return ..()
@@ -438,10 +513,14 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "Metal Hydrogen"
desc = "Solid metallic hydrogen. Some say it should be impossible"
color = "#62708A"
- greyscale_colors = "#62708A"
alpha = 150
starlight_color = COLOR_MODERATE_BLUE
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/metal_hydrogen
value_per_unit = 700 / SHEET_MATERIAL_AMOUNT
beauty_modifier = 0.35
@@ -457,8 +536,11 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "sand"
desc = "You know, it's amazing just how structurally sound sand can be."
color = "#EDC9AF"
- greyscale_colors = "#EDC9AF"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/sandblock
value_per_unit = 2 / SHEET_MATERIAL_AMOUNT
strength_modifier = 0.5
@@ -477,8 +559,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "sandstone"
desc = "Bialtaakid 'ant taerif ma hdha."
color = "#ECD5A8"
- greyscale_colors = "#ECD5A8"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/sandstone
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 1.25, ENERGY = 0.5, BOMB = 0.5, BIO = 0.25, FIRE = 1.5, ACID = 1.5)
@@ -490,8 +576,11 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "snow"
desc = "There's no business like snow business."
color = COLOR_WHITE
- greyscale_colors = COLOR_WHITE
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/snow
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, FIRE = 0.25, ACID = 1.5)
@@ -507,8 +596,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "runed metal"
desc = "Mir'ntrath barhah Nar'sie."
color = "#504742"
- greyscale_colors = "#504742"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/runed_metal
value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1, ENERGY = 1, BOMB = 1.2, BIO = 1.2, FIRE = 1.5, ACID = 1.5)
@@ -524,8 +617,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "bronze"
desc = "Clock Cult? Never heard of it."
color = "#876223"
- greyscale_colors = "#876223"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/bronze
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 1, BULLET = 1, LASER = 1, ENERGY = 1, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5)
@@ -535,8 +632,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "paper"
desc = "Ten thousand folds of pure starchy power."
color = "#E5DCD5"
- greyscale_colors = "#E5DCD5"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/paperframes
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.1, BULLET = 0.1, LASER = 0.1, ENERGY = 0.1, BOMB = 0.1, BIO = 0.1, ACID = 1.5)
@@ -544,15 +645,15 @@ Unless you know what you're doing, only use the first three numbers. They're in
turf_sound_override = FOOTSTEP_SAND
texture_layer_icon_state = "paper"
-/datum/material/paper/on_applied_obj(obj/source, amount, material_flags)
+/datum/material/paper/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+ if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
var/obj/paper = source
paper.resistance_flags |= FLAMMABLE
paper.obj_flags |= UNIQUE_RENAME
-/datum/material/paper/on_removed_obj(obj/source, amount, material_flags)
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+/datum/material/paper/on_main_removed(atom/source, mat_amount, multiplier)
+ if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
var/obj/paper = source
paper.resistance_flags &= ~FLAMMABLE
return ..()
@@ -561,22 +662,26 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "cardboard"
desc = "They say cardboard is used by hobos to make incredible things."
color = "#5F625C"
- greyscale_colors = "#5F625C"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/cardboard
value_per_unit = 6 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, ACID = 1.5)
beauty_modifier = -0.1
-/datum/material/cardboard/on_applied_obj(obj/source, amount, material_flags)
+/datum/material/cardboard/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+ if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
var/obj/cardboard = source
cardboard.resistance_flags |= FLAMMABLE
cardboard.obj_flags |= UNIQUE_RENAME
-/datum/material/cardboard/on_removed_obj(obj/source, amount, material_flags)
- if(material_flags & MATERIAL_AFFECT_STATISTICS)
+/datum/material/cardboard/on_main_removed(atom/source, mat_amount, multiplier)
+ if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
var/obj/cardboard = source
cardboard.resistance_flags &= ~FLAMMABLE
return ..()
@@ -585,8 +690,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "bone"
desc = "Man, building with this will make you the coolest caveman on the block."
color = "#e3dac9"
- greyscale_colors = "#e3dac9"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/bone
value_per_unit = 100 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 1.2, BULLET = 0.75, LASER = 0.75, ENERGY = 1.2, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5)
@@ -596,8 +705,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "bamboo"
desc = "If it's good enough for pandas, it's good enough for you."
color = "#87a852"
- greyscale_colors = "#87a852"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/bamboo
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 0.5, ENERGY = 0.5, BOMB = 0.5, BIO = 0.51, FIRE = 0.5, ACID = 1.5)
@@ -609,8 +722,12 @@ Unless you know what you're doing, only use the first three numbers. They're in
name = "zaukerite"
desc = "A light absorbing crystal"
color = COLOR_ALMOST_BLACK
- greyscale_colors = COLOR_ALMOST_BLACK
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/mineral/zaukerite
value_per_unit = 900 / SHEET_MATERIAL_AMOUNT
armor_modifiers = list(MELEE = 0.9, BULLET = 0.9, LASER = 1.75, ENERGY = 1.75, BOMB = 0.5, BIO = 1, FIRE = 0.1, ACID = 1)
diff --git a/code/datums/materials/hauntium.dm b/code/datums/materials/hauntium.dm
index 79e254417208d..b8eee26a08f36 100644
--- a/code/datums/materials/hauntium.dm
+++ b/code/datums/materials/hauntium.dm
@@ -2,10 +2,15 @@
name = "hauntium"
desc = "very scary!"
color = list(460/255, 464/255, 460/255, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
- greyscale_colors = "#FFFFFF64"
+ greyscale_color = "#FFFFFF"
alpha = 100
starlight_color = COLOR_ALMOST_BLACK
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/hauntium
value_per_unit = 0.05
beauty_modifier = 0.25
@@ -13,10 +18,14 @@
strength_modifier = 1.2
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, FIRE = 1, ACID = 0.7)
-/datum/material/hauntium/on_applied_obj(obj/o, amount, material_flags)
+/datum/material/hauntium/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- o.make_haunted(INNATE_TRAIT, "#f8f8ff")
+ if(isobj(source))
+ var/obj/obj = source
+ obj.make_haunted(INNATE_TRAIT, "#f8f8ff")
-/datum/material/hauntium/on_removed_obj(obj/o, amount, material_flags)
+/datum/material/hauntium/on_main_removed(atom/source, mat_amount, multiplier)
. = ..()
- o.remove_haunted(INNATE_TRAIT)
+ if(isobj(source))
+ var/obj/obj = source
+ obj.remove_haunted(INNATE_TRAIT)
diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm
index 552fa7a84cdf2..008099a526e93 100644
--- a/code/datums/materials/meat.dm
+++ b/code/datums/materials/meat.dm
@@ -4,8 +4,12 @@
desc = "Meat"
id = /datum/material/meat // So the bespoke versions are categorized under this
color = rgb(214, 67, 67)
- greyscale_colors = rgb(214, 67, 67)
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/meat
value_per_unit = 0.05
beauty_modifier = -0.3
@@ -15,33 +19,28 @@
turf_sound_override = FOOTSTEP_MEAT
texture_layer_icon_state = "meat"
-/datum/material/meat/on_removed(atom/source, amount, material_flags)
+/datum/material/meat/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- qdel(source.GetComponent(/datum/component/edible))
- qdel(source.GetComponent(/datum/component/blood_walk))
- qdel(source.GetComponent(/datum/component/bloody_spreader))
+ if(!IS_EDIBLE(source))
+ make_edible(source, mat_amount, multiplier)
-/datum/material/meat/on_applied_obj(obj/O, amount, material_flags)
+/datum/material/meat/on_applied(atom/source, mat_amount, multiplier)
. = ..()
- make_meaty(O, amount, material_flags)
+ if(IS_EDIBLE(source))
+ make_edible(source, mat_amount, multiplier)
-/datum/material/meat/on_applied_turf(turf/T, amount, material_flags)
- . = ..()
- make_meaty(T, amount, material_flags)
-
-/datum/material/meat/proc/make_meaty(atom/source, amount, material_flags)
- var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT)
- var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT)
+/datum/material/meat/proc/make_edible(atom/source, mat_amount, multiplier)
+ var/nutriment_count = 3 * (mat_amount / SHEET_MATERIAL_AMOUNT)
+ var/oil_count = 2 * (mat_amount / SHEET_MATERIAL_AMOUNT)
source.AddComponent(/datum/component/edible, \
initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \
foodtypes = RAW | MEAT | GROSS, \
eat_time = 3 SECONDS, \
tastes = list("Meaty"))
-
source.AddComponent(
/datum/component/bloody_spreader,\
- blood_left = (nutriment_count + oil_count) * 0.3,\
+ blood_left = (nutriment_count + oil_count) * 0.3 * multiplier,\
blood_dna = list("meaty DNA" = "MT-"),\
diseases = null,\
)
@@ -54,9 +53,18 @@
/datum/component/blood_walk,\
blood_type = /obj/effect/decal/cleanable/blood,\
blood_spawn_chance = 35,\
- max_blood = (nutriment_count + oil_count) * 0.3,\
+ max_blood = (nutriment_count + oil_count) * 0.3 * multiplier,\
)
+/datum/material/meat/on_removed(atom/source, mat_amount, multiplier)
+ . = ..()
+ qdel(source.GetComponent(/datum/component/blood_walk))
+ qdel(source.GetComponent(/datum/component/bloody_spreader))
+
+/datum/material/meat/on_main_removed(atom/source, mat_amount, multiplier)
+ . = ..()
+ qdel(source.GetComponent(/datum/component/edible))
+
/datum/material/meat/mob_meat
init_flags = MATERIAL_INIT_BESPOKE
var/subjectname = ""
diff --git a/code/datums/materials/pizza.dm b/code/datums/materials/pizza.dm
index 588018576befe..1906e5786d238 100644
--- a/code/datums/materials/pizza.dm
+++ b/code/datums/materials/pizza.dm
@@ -2,8 +2,12 @@
name = "pizza"
desc = "~Jamme, jamme, n'coppa, jamme ja! Jamme, jamme, n'coppa jamme ja, funi-culi funi-cala funi-culi funi-cala!! Jamme jamme ja funiculi funicula!~"
color = "#FF9F23"
- greyscale_colors = "#FF9F23"
- categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
+ categories = list(
+ MAT_CATEGORY_RIGID = TRUE,
+ MAT_CATEGORY_BASE_RECIPES = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL = TRUE,
+ MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
+ )
sheet_type = /obj/item/stack/sheet/pizza
value_per_unit = 0.05
beauty_modifier = 0.1
@@ -13,23 +17,25 @@
turf_sound_override = FOOTSTEP_MEAT
texture_layer_icon_state = "pizza"
-/datum/material/pizza/on_removed(atom/source, amount, material_flags)
+/datum/material/pizza/on_main_applied(atom/source, mat_amount, multiplier)
. = ..()
- qdel(source.GetComponent(/datum/component/edible))
-
-/datum/material/pizza/on_applied_obj(obj/O, amount, material_flags)
- . = ..()
- make_edible(O, amount, material_flags)
+ if(!IS_EDIBLE(source))
+ make_edible(source, mat_amount)
-/datum/material/pizza/on_applied_turf(turf/T, amount, material_flags)
+/datum/material/pizza/on_applied(atom/source, mat_amount, multiplier)
. = ..()
- make_edible(T, amount, material_flags)
+ if(IS_EDIBLE(source))
+ make_edible(source, mat_amount)
-/datum/material/pizza/proc/make_edible(atom/source, amount, material_flags)
- var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT)
- var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT)
+/datum/material/pizza/proc/make_edible(atom/source, mat_amount)
+ var/nutriment_count = 3 * (mat_amount / SHEET_MATERIAL_AMOUNT)
+ var/oil_count = 2 * (mat_amount / SHEET_MATERIAL_AMOUNT)
source.AddComponent(/datum/component/edible, \
initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \
foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES, \
eat_time = 3 SECONDS, \
tastes = list("crust", "tomato", "cheese", "meat"))
+
+/datum/material/pizza/on_main_removed(atom/source, mat_amount, multiplier)
+ . = ..()
+ qdel(source.GetComponent(/datum/component/edible))
diff --git a/code/datums/quirks/negative_quirks/prosopagnosia.dm b/code/datums/quirks/negative_quirks/prosopagnosia.dm
index 8634e13bf638c..9b41713e6cef9 100644
--- a/code/datums/quirks/negative_quirks/prosopagnosia.dm
+++ b/code/datums/quirks/negative_quirks/prosopagnosia.dm
@@ -7,3 +7,19 @@
medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces."
hardcore_value = 5
mail_goodies = list(/obj/item/skillchip/appraiser) // bad at recognizing faces but good at recognizing IDs
+
+/datum/quirk/prosopagnosia/add(client/client_source)
+ RegisterSignal(quirk_holder, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER, PROC_REF(screentip_name_override))
+ quirk_holder.mob_flags |= MOB_HAS_SCREENTIPS_NAME_OVERRIDE
+
+/datum/quirk/prosopagnosia/remove()
+ UnregisterSignal(quirk_holder, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER)
+
+/datum/quirk/prosopagnosia/proc/screentip_name_override(datum/source, list/returned_name, obj/item/held_item, atom/hovered)
+ SIGNAL_HANDLER
+
+ if(!ishuman(hovered))
+ return NONE
+
+ returned_name[1] = "Unknown"
+ return SCREENTIP_NAME_SET
diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm
index d6317b12ab15c..86e4dda381421 100644
--- a/code/datums/ruins/icemoon.dm
+++ b/code/datums/ruins/icemoon.dm
@@ -61,6 +61,12 @@
description = "Moffuchi's Family Pizzeria chain has a reputation for providing affordable artisanal meals of questionable edibility. This particular pizzeria seems to have been abandoned for some time."
suffix = "icemoon_surface_pizza.dmm"
+/datum/map_template/ruin/icemoon/Lodge
+ name = "Ice-Ruin Hunters Lodge"
+ id = "lodge"
+ description = "An old hunting hunting lodge. I wonder if anyone is still home?"
+ suffix = "icemoon_surface_lodge.dmm"
+
/datum/map_template/ruin/icemoon/frozen_phonebooth
name = "Ice-Ruin Frozen Phonebooth"
id = "frozen_phonebooth"
diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm
index 790ae33ade4b1..f2d76d9b86e6e 100644
--- a/code/datums/ruins/space.dm
+++ b/code/datums/ruins/space.dm
@@ -513,3 +513,25 @@
suffix = "hauntedtradingpost.dmm"
name = "Space-Ruin Donk Co. Interstellar Trading Post 6016"
description = "A small station for trading ships to dock at. It's been abandoned for some time, but its security systems have kept looters away. Rumored to be haunted."
+
+/datum/map_template/ruin/space/commsbuoy
+ id = "commsbuoy"
+ suffix = "commsbuoy_lowtech.dmm"
+ name = "Kosmokomm Communications Buoy"
+ description = "One of the SSC's many Comms Buoys, acting as a broadcaster, receiver and relay for interstellar communications. Due to the \
+ shoddy tech available, it does not enable local communications."
+
+/datum/map_template/ruin/space/commsbuoy_pirate
+ id = "commsbuoy_pirate"
+ suffix = "commsbuoy_pirate.dmm"
+ name = "Pirated Communications Buoy"
+ description = "A Comms Buoy satellite that has been hijacked by local criminal elements, acting as a broadcaster, receiver and relay for \
+ evil interstellar communications. Due to the shoddy tech available, it does not enable local communications."
+
+/datum/map_template/ruin/space/commsbuoy_nt
+ id = "commsbuoy_nt"
+ suffix = "commsbuoy_nt.dmm"
+ name = "Nanotrasen Model-7 Communications Buoy"
+ description = "One of Nanotrasen's highly advanced Communication Buoys. Besides acting as a broadcaster, receiver and relay for interstellar \
+ communications, the satellite also includes a Local-Network array and two multi-function satellite dishes, providing the local sector with \
+ connectivity - as long as you have your Employee ID handy. Though, this one has been reported to have some recent malfunctions."
diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm
index 5432701992b29..7d83439b6d494 100644
--- a/code/datums/station_traits/neutral_traits.dm
+++ b/code/datums/station_traits/neutral_traits.dm
@@ -544,3 +544,47 @@
dynamic_category = RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS
threat_reduction = 15
dynamic_threat_id = "Background Checks"
+
+
+/datum/station_trait/pet_day
+ name = "Bring Your Pet To Work Day"
+ trait_type = STATION_TRAIT_NEUTRAL
+ show_in_report = FALSE
+ weight = 2
+ sign_up_button = TRUE
+
+/datum/station_trait/pet_day/New()
+ . = ..()
+ RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn))
+
+/datum/station_trait/pet_day/setup_lobby_button(atom/movable/screen/lobby/button/sign_up/lobby_button)
+ lobby_button.desc = "Want to bring your innocent pet to a giant metal deathtrap? Click here to customize it!"
+ RegisterSignal(lobby_button, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_lobby_button_update_overlays))
+ return ..()
+
+/datum/station_trait/pet_day/can_display_lobby_button(client/player)
+ return sign_up_button
+
+/datum/station_trait/pet_day/on_round_start()
+ return
+
+/datum/station_trait/pet_day/on_lobby_button_click(atom/movable/screen/lobby/button/sign_up/lobby_button, updates)
+ var/mob/our_player = lobby_button.get_mob()
+ var/client/player_client = our_player.client
+ if(isnull(player_client))
+ return
+ var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)]
+ if(isnull(customization))
+ customization = new(player_client)
+ INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum, ui_interact), our_player)
+
+/datum/station_trait/pet_day/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned, client/player_client)
+ SIGNAL_HANDLER
+
+ var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)]
+ if(isnull(customization))
+ return
+ INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum/pet_customization, create_pet), spawned, player_client)
+
+/datum/station_trait/pet_day/proc/on_lobby_button_update_overlays(atom/movable/screen/lobby/button/sign_up/lobby_button, list/overlays)
+ overlays += "select_pet"
diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm
index 865e9869ebeea..5dab783eb37a0 100644
--- a/code/datums/status_effects/debuffs/debuffs.dm
+++ b/code/datums/status_effects/debuffs/debuffs.dm
@@ -245,7 +245,7 @@
var/mob/living/carbon/carbon_owner = owner
carbon_owner.handle_dreams()
- if(prob(2) && owner.health > owner.crit_threshold)
+ if(prob(8) && owner.health > owner.crit_threshold)
owner.emote("snore")
/atom/movable/screen/alert/status_effect/asleep
diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm
index 6fd10943b7edf..3f4586d4d1ddd 100644
--- a/code/datums/status_effects/neutral.dm
+++ b/code/datums/status_effects/neutral.dm
@@ -609,3 +609,32 @@
/datum/status_effect/gutted/proc/stop_gutting()
SIGNAL_HANDLER
qdel(src)
+
+/atom/movable/screen/alert/status_effect/shower_regen
+ name = "Washing"
+ desc = "A good wash fills me with energy!"
+ icon_state = "shower_regen"
+
+/atom/movable/screen/alert/status_effect/shower_regen/catgirl
+ name = "Washing"
+ desc = "Waaater... Fuck this WATER!!"
+ icon_state = "shower_regen_catgirl"
+
+/datum/status_effect/shower_regen
+ id = "shower_regen"
+ duration = -1
+ status_type = STATUS_EFFECT_UNIQUE
+ alert_type = /atom/movable/screen/alert/status_effect/shower_regen
+ /// How many heals from washing.
+ var/stamina_heal_per_tick = 4
+
+/datum/status_effect/shower_regen/on_apply()
+ . = ..()
+ if(isfelinid(owner))
+ alert_type = /atom/movable/screen/alert/status_effect/shower_regen/catgirl
+
+
+/datum/status_effect/shower_regen/tick(seconds_between_ticks)
+ . = ..()
+ var/heal_or_deal = isfelinid(owner) ? 1 : -1
+ owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks)
diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm
index fc3f3140593ea..30361dc9cf1a1 100644
--- a/code/datums/status_effects/wound_effects.dm
+++ b/code/datums/status_effects/wound_effects.dm
@@ -124,19 +124,6 @@
//////// WOUNDS /////////
/////////////////////////
-// wound alert
-/atom/movable/screen/alert/status_effect/wound
- name = "Wounded"
- desc = "Your body has sustained serious damage, click here to inspect yourself."
-
-/atom/movable/screen/alert/status_effect/wound/Click()
- . = ..()
- if(!.)
- return
-
- var/mob/living/carbon/carbon_owner = owner
- carbon_owner.check_self_for_injuries()
-
// wound status effect base
/datum/status_effect/wound
id = "wound"
diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm
index 5e5258c86deb9..fdecc89680a54 100644
--- a/code/datums/wounds/_wounds.dm
+++ b/code/datums/wounds/_wounds.dm
@@ -203,8 +203,7 @@
if(status_effect_type)
victim.apply_status_effect(status_effect_type, src)
SEND_SIGNAL(victim, COMSIG_CARBON_GAIN_WOUND, src, limb)
- if(!victim.alerts[ALERT_WOUNDED]) // only one alert is shared between all of the wounds
- victim.throw_alert(ALERT_WOUNDED, /atom/movable/screen/alert/status_effect/wound)
+ victim.update_health_hud()
var/demoted
if(old_wound)
@@ -348,13 +347,13 @@
if (ismob(old_victim))
var/mob/mob_victim = old_victim
SEND_SIGNAL(mob_victim, COMSIG_CARBON_POST_LOSE_WOUND, src, old_limb, ignore_limb, replaced)
+ if(!replaced && !limb)
+ mob_victim.update_health_hud()
/datum/wound/proc/remove_wound_from_victim()
if(!victim)
return
LAZYREMOVE(victim.all_wounds, src)
- if(!victim.all_wounds)
- victim.clear_alert(ALERT_WOUNDED)
SEND_SIGNAL(victim, COMSIG_CARBON_LOSE_WOUND, src, limb)
/**
diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm
index 061bd8f06d209..fa87fa832a1fb 100644
--- a/code/game/area/areas/ruins/icemoon.dm
+++ b/code/game/area/areas/ruins/icemoon.dm
@@ -57,6 +57,11 @@
/area/ruin/planetengi
name = "\improper Engineering Outpost"
+/area/ruin/huntinglodge
+ name = "\improper Hunting Lodge"
+ mood_bonus = -5
+ mood_message = "Something feels off..."
+
/area/ruin/smoking_room/house
name = "\improper Tobacco House"
sound_environment = SOUND_ENVIRONMENT_CITY
diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm
index 2b70cfde5f8e8..7f43cc2c6ee8c 100644
--- a/code/game/atom/_atom.dm
+++ b/code/game/atom/_atom.dm
@@ -876,10 +876,18 @@
var/shift_lmb_ctrl_shift_lmb_line = ""
var/extra_lines = 0
var/extra_context = ""
+ var/used_name = name
if(isliving(user) || isovermind(user) || isaicamera(user) || (ghost_screentips && isobserver(user)))
var/obj/item/held_item = user.get_active_held_item()
+ if (user.mob_flags & MOB_HAS_SCREENTIPS_NAME_OVERRIDE)
+ var/list/returned_name = list(used_name)
+
+ var/name_override_returns = SEND_SIGNAL(user, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER, returned_name, held_item, src)
+ if (name_override_returns & SCREENTIP_NAME_SET)
+ used_name = returned_name[1]
+
if (flags_1 & HAS_CONTEXTUAL_SCREENTIPS_1 || held_item?.item_flags & ITEM_HAS_CONTEXTUAL_SCREENTIPS)
var/list/context = list()
@@ -945,9 +953,9 @@
new_maptext = ""
else
//We inline a MAPTEXT() here, because there's no good way to statically add to a string like this
- new_maptext = "[name][extra_context]"
+ new_maptext = "[used_name][extra_context]"
- if (length(name) * 10 > active_hud.screentip_text.maptext_width)
+ if (length(used_name) * 10 > active_hud.screentip_text.maptext_width)
INVOKE_ASYNC(src, PROC_REF(set_hover_maptext), client, active_hud, new_maptext)
return
diff --git a/code/game/atom/atom_materials.dm b/code/game/atom/atom_materials.dm
index 345a8486dd60a..31ac1992a9b64 100644
--- a/code/game/atom/atom_materials.dm
+++ b/code/game/atom/atom_materials.dm
@@ -7,23 +7,274 @@
///Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.
var/material_modifier = 1
-/// Sets the custom materials for an item.
+/// Sets the custom materials for an atom. This is what you want to call, since most of the ones below are mainly internal.
/atom/proc/set_custom_materials(list/materials, multiplier = 1)
- if(custom_materials && material_flags & MATERIAL_EFFECTS) //Only runs if custom materials existed at first and affected src.
- for(var/current_material in custom_materials)
- var/datum/material/custom_material = GET_MATERIAL_REF(current_material)
- custom_material.on_removed(src, OPTIMAL_COST(custom_materials[current_material] * material_modifier), material_flags) //Remove the current materials
+ SHOULD_NOT_OVERRIDE(TRUE)
+ if(length(custom_materials))
+ remove_material_effects()
if(!length(materials))
custom_materials = null
return
- if(material_flags & MATERIAL_EFFECTS)
+ initialize_materials(materials, multiplier)
+
+/**
+ * The second part of set_custom_materials(), which handles applying the new materials
+ * It is a separate proc because Initialize calls may make use of this since they should've no prior materials to remove.
+ */
+/atom/proc/initialize_materials(list/materials, multiplier = 1)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ if(multiplier != 1)
+ materials = materials.Copy() //avoid editing the list that was originally used as argument if it's ever going to be used again.
for(var/current_material in materials)
- var/datum/material/custom_material = GET_MATERIAL_REF(current_material)
- custom_material.on_applied(src, OPTIMAL_COST(materials[current_material] * multiplier * material_modifier), material_flags)
+ materials[current_material] *= multiplier
+
+ apply_material_effects(materials)
+ custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials)
+
+///proc responsible for applying material effects when setting materials.
+/atom/proc/apply_material_effects(list/materials)
+ SHOULD_CALL_PARENT(TRUE)
+ if(!materials || !(material_flags & MATERIAL_EFFECTS))
+ return
+ var/list/material_effects = get_material_effects_list(materials)
+ finalize_material_effects(material_effects)
+
+/// Proc responsible for removing material effects when setting materials.
+/atom/proc/remove_material_effects()
+ SHOULD_CALL_PARENT(TRUE)
+ //Only runs if custom materials existed at first and affected src.
+ if(!custom_materials || !(material_flags & MATERIAL_EFFECTS))
+ return
+ var/list/material_effects = get_material_effects_list(custom_materials)
+ finalize_remove_material_effects(material_effects)
+
+/atom/proc/get_material_effects_list(list/materials)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ var/list/material_effects = list()
+ var/index = 1
+ for(var/current_material in materials)
+ var/datum/material/material = GET_MATERIAL_REF(current_material)
+ material_effects[material] = list(
+ MATERIAL_LIST_OPTIMAL_AMOUNT = OPTIMAL_COST(materials[current_material] * material_modifier),
+ MATERIAL_LIST_MULTIPLIER = get_material_multiplier(material, materials, index),
+ )
+ index++
+ return material_effects
+
+/**
+ * A proc that can be used to selectively control the statistics and affects from a material without affecting the others
+ * For example, we can have items made of two different materials, with the primary contributing a good 1.2 multiplier
+ * and the second a meager 0.3.
+ * The GET_MATERIAL_MODIFIER macro will handles some modifiers where the minimum should be 1 if above 1 and the maximum
+ * 1 if below 1, so you shouldn't worry about returning values between 0 and 1. Be ware about returning negative values tho.
+ */
+/atom/proc/get_material_multiplier(datum/material/custom_material, list/materials, index)
+ return 1
+
+///Called by apply_material_effects(). It ACTUALLY handles applying effects common to all atoms (depending on material flags)
+/atom/proc/finalize_material_effects(list/materials)
+ SHOULD_CALL_PARENT(TRUE)
+ var/total_alpha = 0
+ var/list/colors = list()
+ var/mat_length = length(materials)
+ var/datum/material/main_material //the material with the highest amount (after calculations)
+ var/main_mat_amount
+ var/main_mat_mult
+ for(var/datum/material/custom_material as anything in materials)
+ var/list/deets = materials[custom_material]
+ var/mat_amount = deets[MATERIAL_LIST_OPTIMAL_AMOUNT]
+ var/multiplier = deets[MATERIAL_LIST_MULTIPLIER]
+ if(mat_amount > main_mat_amount)
+ main_material = custom_material
+ main_mat_amount = mat_amount
+ main_mat_mult = multiplier
+
+ apply_single_mat_effect(custom_material, mat_amount, multiplier)
+ custom_material.on_applied(src, mat_amount, multiplier)
+
+ //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
+ if(material_flags & (MATERIAL_COLOR|MATERIAL_GREYSCALE))
+ gather_material_color(custom_material, colors, mat_amount, multicolor = mat_length > 1)
+ var/added_alpha = custom_material.alpha * (custom_material.alpha / 255)
+ total_alpha += GET_MATERIAL_MODIFIER(added_alpha, multiplier)
+ if(custom_material.beauty_modifier)
+ AddElement(/datum/element/beauty, custom_material.beauty_modifier * mat_amount)
+
+ apply_main_material_effects(main_material, main_mat_amount, main_mat_mult)
+
+ if(material_flags & (MATERIAL_COLOR|MATERIAL_GREYSCALE))
+ var/init_alpha = initial(alpha)
+ var/alpha_value = (total_alpha / length(materials)) * init_alpha
+
+ if(alpha_value < init_alpha * 0.9)
+ opacity = FALSE
+
+ if(material_flags & MATERIAL_GREYSCALE)
+ var/config_path = get_material_greyscale_config(main_material.type, greyscale_config)
+ //Make sure that we've no less than the expected amount
+ //expected_colors is zero for paths, the value is assigned when reading the json files.
+ var/datum/greyscale_config/config = SSgreyscale.configurations["[config_path || greyscale_config]"]
+ var/colors_len = length(colors)
+ if(config.expected_colors > colors_len)
+ var/list/filled_colors = colors.Copy()
+ for(var/index in colors_len to config.expected_colors - 1)
+ filled_colors += pick(colors)
+ colors = filled_colors
+ set_greyscale(colors, config_path)
+ else if(length(colors))
+ mix_material_colors(colors)
+
+ if(material_flags & MATERIAL_ADD_PREFIX)
+ var/prefixes = get_material_prefixes(materials)
+ name = "[prefixes] [name]"
+
+/**
+ * A proc used by both finalize_material_effects() and finalize_remove_material_effects() to get the colors
+ * that will later be applied to or removed from the atom
+ */
+/atom/proc/gather_material_color(datum/material/material, list/colors, amount, multicolor = FALSE)
+ SHOULD_CALL_PARENT(TRUE)
+ if(!material.color) //the material has no color. Nevermind
+ return
+ var/color_to_add = material.color
+ var/istext = istext(color_to_add)
+ if(istext)
+ if(material.alpha != 255)
+ color_to_add += num2hex(material.alpha, 2)
+ else
+ if(multicolor || material_flags & MATERIAL_GREYSCALE)
+ color_to_add = material.greyscale_color || color_matrix2color_hex(material.color)
+ if(material.greyscale_color)
+ color_to_add += num2hex(material.alpha, 2)
+ else
+ color_to_add = color_to_full_rgba_matrix(color_to_add)
+ color_to_add[20] *= (material.alpha / 255) // multiply the constant alpha of the color matrix
+
+ colors[color_to_add] += amount
+
+/// Manages mixing, adding or removing the material colors from the atom in absence of the MATERIAL_GREYSCALE flag.
+/atom/proc/mix_material_colors(list/colors, remove = FALSE)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ var/color_len = length(colors)
+ if(!color_len)
+ return
+ var/mixcolor = colors[1]
+ var/amount_divisor = colors[mixcolor]
+ for(var/i in 2 to length(colors))
+ var/color_to_add = colors[i]
+ if(islist(color_to_add))
+ color_to_add = color_matrix2color_hex(color_to_add)
+ var/mix_amount = colors[color_to_add]
+ amount_divisor += mix_amount
+ mixcolor = BlendRGB(mixcolor, color_to_add, mix_amount/amount_divisor)
+ if(remove)
+ remove_atom_colour(FIXED_COLOUR_PRIORITY, mixcolor)
+ else
+ add_atom_colour(mixcolor, FIXED_COLOUR_PRIORITY)
+
+///Returns the prefixes to attach to the atom when setting materials, from a list argument.
+/atom/proc/get_material_prefixes(list/materials)
+ var/list/mat_names = list()
+ for(var/datum/material/material as anything in materials)
+ mat_names |= material.name
+ return mat_names.Join("-")
+
+///Returns a string like "plasma, paper and glass" from a list of materials
+/atom/proc/get_material_english_list(list/materials)
+ var/list/mat_names = list()
+ for(var/datum/material/material as anything in materials)
+ mat_names += material.name
+ return english_list(mat_names)
+
+///Searches for a subtype of config_type that is to be used in its place for specific materials (like shimmering gold for cleric maces)
+/atom/proc/get_material_greyscale_config(mat_type, config_type)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ if(!config_type)
+ return
+ for(var/datum/greyscale_config/path as anything in subtypesof(config_type))
+ if(mat_type != initial(path.material_skin))
+ continue
+ return path
+
+///Apply material effects of a single material.
+/atom/proc/apply_single_mat_effect(datum/material/custom_material, amount, multipier)
+ SHOULD_CALL_PARENT(TRUE)
+ return
+
+///A proc for material effects that only the main material (which the atom's primarly composed of) should apply.
+/atom/proc/apply_main_material_effects(datum/material/main_material, amount, multipier)
+ SHOULD_CALL_PARENT(TRUE)
+ if(main_material.texture_layer_icon_state && material_flags & MATERIAL_COLOR)
+ ADD_KEEP_TOGETHER(src, MATERIAL_SOURCE(main_material))
+ add_filter("material_texture_[main_material.name]", 1, layering_filter(icon = main_material.cached_texture_filter_icon, blend_mode = BLEND_INSET_OVERLAY))
+
+ main_material.on_main_applied(src, amount, multipier)
+
+///Called by remove_material_effects(). It ACTUALLY handles removing effects common to all atoms (depending on material flags)
+/atom/proc/finalize_remove_material_effects(list/materials)
+ var/list/colors = list()
+ var/datum/material/main_material = get_master_material()
+ var/mat_length = length(materials)
+ var/main_mat_amount
+ var/main_mat_mult
+ for(var/datum/material/custom_material as anything in materials)
+ var/list/deets = materials[custom_material]
+ var/mat_amount = deets[MATERIAL_LIST_OPTIMAL_AMOUNT]
+ var/multiplier = deets[MATERIAL_LIST_MULTIPLIER]
+ if(custom_material == main_material)
+ main_mat_amount = mat_amount
+ main_mat_mult = multiplier
+
+ remove_single_mat_effect(custom_material, mat_amount, multiplier)
+ custom_material.on_removed(src, mat_amount, multiplier)
+ if(material_flags & MATERIAL_COLOR)
+ gather_material_color(custom_material, colors, mat_amount, multicolor = mat_length > 1)
+ if(custom_material.beauty_modifier)
+ RemoveElement(/datum/element/beauty, custom_material.beauty_modifier * mat_amount)
+
+ remove_main_material_effects(main_material, main_mat_amount, main_mat_mult)
+
+ if(material_flags & (MATERIAL_GREYSCALE|MATERIAL_COLOR))
+ if(material_flags & MATERIAL_COLOR)
+ mix_material_colors(colors, remove = TRUE)
+ else
+ set_greyscale(initial(greyscale_colors), initial(greyscale_config))
+ alpha = initial(alpha)
+ opacity = initial(opacity)
+
+ if(material_flags & MATERIAL_ADD_PREFIX)
+ name = initial(name)
+
+///Remove material effects of a single material.
+/atom/proc/remove_single_mat_effect(datum/material/custom_material, amount, multipier)
+ SHOULD_CALL_PARENT(TRUE)
+ return
+
+///A proc to remove the material effects previously applied by the (ex-)main material
+/atom/proc/remove_main_material_effects(datum/material/main_material, amount, multipier)
+ SHOULD_CALL_PARENT(TRUE)
+ if(main_material.texture_layer_icon_state)
+ remove_filter("material_texture_[main_material.name]")
+ REMOVE_KEEP_TOGETHER(src, MATERIAL_SOURCE(main_material))
+ main_material.on_main_removed(src, amount, multipier)
+
+///Remove the old effects, change the material_modifier variable, and then reapply all the effects.
+/atom/proc/change_material_modifier(new_value)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ remove_material_effects()
+ material_modifier = new_value
+ apply_material_effects(custom_materials)
- custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials, multiplier)
+///For enabling and disabling material effects from an item (mainly VV)
+/atom/proc/toggle_material_flags(new_flags)
+ SHOULD_NOT_OVERRIDE(TRUE)
+ if(material_flags & MATERIAL_EFFECTS && !(new_flags & MATERIAL_EFFECTS))
+ remove_material_effects()
+ else if(!(material_flags & MATERIAL_EFFECTS) && new_flags & MATERIAL_EFFECTS)
+ apply_material_effects()
+ material_flags = new_flags
/**
* Returns the material composition of the atom.
diff --git a/code/game/atom/atom_vv.dm b/code/game/atom/atom_vv.dm
index 10a6cbff24a92..7a7dc8d3a877d 100644
--- a/code/game/atom/atom_vv.dm
+++ b/code/game/atom/atom_vv.dm
@@ -270,6 +270,12 @@
if(NAMEOF(src, base_pixel_y))
set_base_pixel_y(var_value)
. = TRUE
+ if(NAMEOF(src, material_flags))
+ toggle_material_flags(var_value)
+ . = TRUE
+ if(NAMEOF(src, material_modifier))
+ change_material_modifier(var_value)
+ . = TRUE
light_flags = old_light_flags
if(!isnull(.))
diff --git a/code/game/atom/atoms_initializing_EXPENSIVE.dm b/code/game/atom/atoms_initializing_EXPENSIVE.dm
index 205617fdbc8f9..b73504fb137b8 100644
--- a/code/game/atom/atoms_initializing_EXPENSIVE.dm
+++ b/code/game/atom/atoms_initializing_EXPENSIVE.dm
@@ -142,7 +142,8 @@
// This MUST come after atom_integrity is set above, as if old materials get removed,
// atom_integrity is checked against max_integrity and can BREAK the atom.
// The integrity to max_integrity ratio is still preserved.
- set_custom_materials(custom_materials)
+ if(custom_materials)
+ initialize_materials(custom_materials)
if(ispath(ai_controller))
ai_controller = new ai_controller(src)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 67b2346c2eeaa..45b77efdb1f4c 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -1630,8 +1630,14 @@
/* End language procs */
-//Returns an atom's power cell, if it has one. Overload for individual items.
-/atom/movable/proc/get_cell()
+/**
+ * Returns an atom's power cell, if it has one. Overload for individual items.
+ * Args
+ *
+ * * /atom/movable/interface - the atom that is trying to interact with this cell
+ * * mob/user - the mob that is holding the interface
+ */
+/atom/movable/proc/get_cell(atom/movable/interface, mob/user)
return
/atom/movable/proc/can_be_pulled(user, grab_state, force)
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index 34b8612c2d4be..282e7f6a34ae2 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -648,6 +648,11 @@
if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_SILICON) //if the user was a silicon, we'd have returned out earlier, so the user must not be a silicon
return FALSE
+ if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_STANDING)
+ var/mob/living/living_user = user
+ if(!(living_user.mobility_flags & MOBILITY_MOVE))
+ return FALSE
+
return TRUE // If we passed all of those checks, woohoo! We can interact with this machine.
/obj/machinery/proc/check_nap_violations()
diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm
index f4d1b29da186f..9e089eeaf2be8 100644
--- a/code/game/machinery/airlock_control.dm
+++ b/code/game/machinery/airlock_control.dm
@@ -18,9 +18,9 @@
update_appearance()
/// Forces the airlock to close and bolt
-/obj/machinery/door/airlock/proc/secure_close()
+/obj/machinery/door/airlock/proc/secure_close(force_crush = FALSE)
locked = FALSE
- close(forced = TRUE)
+ close(forced = TRUE, force_crush = force_crush)
locked = TRUE
stoplag(0.2 SECONDS)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 0a89c4e8b5b08..06c88f4749e1f 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -112,7 +112,7 @@
highest_mat = present_mat
highest_mat_ref = mat
- flick_overlay_view(material_insertion_animation(highest_mat_ref.greyscale_colors), 1 SECONDS)
+ flick_overlay_view(material_insertion_animation(highest_mat_ref), 1 SECONDS)
/obj/machinery/autolathe/ui_interact(mob/user, datum/tgui/ui)
if(!is_operational)
@@ -255,7 +255,7 @@
if(istext(material)) // category
var/list/choices = list()
for(var/datum/material/valid_candidate as anything in SSmaterials.materials_by_category[material])
- if(materials.get_material_amount(valid_candidate) < amount_needed)
+ if(materials.get_material_amount(valid_candidate) < (amount_needed + materials_needed[material]))
continue
choices[valid_candidate.name] = valid_candidate
if(!length(choices))
@@ -274,7 +274,7 @@
if(isnull(material))
stack_trace("got passed an invalid material id: [material]")
return
- materials_needed[material] = amount_needed
+ materials_needed[material] += amount_needed
//checks for available materials
var/material_cost_coefficient = ispath(design.build_path, /obj/item/stack) ? 1 : creation_efficiency
diff --git a/code/game/machinery/computer/atmos_computers/_air_sensor.dm b/code/game/machinery/computer/atmos_computers/_air_sensor.dm
index 91a616cc5f678..1f4a8bf834098 100644
--- a/code/game/machinery/computer/atmos_computers/_air_sensor.dm
+++ b/code/game/machinery/computer/atmos_computers/_air_sensor.dm
@@ -15,6 +15,8 @@
var/inlet_id
/// The outlet[vent pump] controlled by this sensor
var/outlet_id
+ /// The air alarm connected to this sensor
+ var/obj/machinery/airalarm/connected_airalarm
/obj/machinery/air_sensor/Initialize(mapload)
id_tag = assign_random_name()
@@ -57,7 +59,7 @@
/obj/machinery/air_sensor/examine(mob/user)
. = ..()
- . += span_notice("Use multitool to link it to an injector/vent or reset its ports")
+ . += span_notice("Use a multitool to link it to an injector, vent, or air alarm, or reset its ports.")
. += span_notice("Click with hand to turn it off.")
/obj/machinery/air_sensor/attack_hand(mob/living/user, list/modifiers)
@@ -78,6 +80,11 @@
/obj/machinery/air_sensor/proc/reset()
inlet_id = null
outlet_id = null
+ if(connected_airalarm)
+ connected_airalarm.disconnect_sensor()
+ // if air alarm and sensor were linked at roundstart we allow them to link to new devices
+ connected_airalarm.allow_link_change = TRUE
+ connected_airalarm = null
///right click with multi tool to disconnect everything
/obj/machinery/air_sensor/multitool_act_secondary(mob/living/user, obj/item/tool)
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 58de43525357c..95732d38437ef 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -440,7 +440,7 @@
// GUARD CHECK - Can we genetically modify the occupant? Includes scanner
// operational guard checks.
// GUARD CHECK - Is scramble DNA actually ready?
- if(!can_modify_occupant() || !(scramble_ready < world.time))
+ if(!can_modify_occupant() || !(scramble_ready < world.time) || HAS_TRAIT(scanner_occupant, TRAIT_NO_DNA_SCRAMBLE))
return
scanner_occupant.dna.remove_all_mutations(list(MUT_NORMAL, MUT_EXTRA))
diff --git a/code/game/machinery/computer/operating_computer.dm b/code/game/machinery/computer/operating_computer.dm
index 0354806d85ebd..83a2a08d986c3 100644
--- a/code/game/machinery/computer/operating_computer.dm
+++ b/code/game/machinery/computer/operating_computer.dm
@@ -7,6 +7,7 @@
icon_screen = "crew"
icon_keyboard = "med_key"
circuit = /obj/item/circuitboard/computer/operating
+ interaction_flags_machine = parent_type::interaction_flags_machine | INTERACT_MACHINE_REQUIRES_STANDING
var/obj/structure/table/optable/table
var/list/advanced_surgeries = list()
@@ -77,7 +78,7 @@
break
/obj/machinery/computer/operating/ui_state(mob/user)
- return GLOB.not_incapacitated_state
+ return GLOB.standing_state
/obj/machinery/computer/operating/ui_interact(mob/user, datum/tgui/ui)
. = ..()
diff --git a/code/game/machinery/flatpacker.dm b/code/game/machinery/flatpacker.dm
index 56fcc8a8ae74c..6c90e45e4f67b 100644
--- a/code/game/machinery/flatpacker.dm
+++ b/code/game/machinery/flatpacker.dm
@@ -124,7 +124,7 @@
highest_mat = present_mat
highest_mat_ref = mat
- flick_overlay_view(material_insertion_animation(highest_mat_ref.greyscale_colors), 1 SECONDS)
+ flick_overlay_view(material_insertion_animation(highest_mat_ref), 1 SECONDS)
/**
* Attempts to find the total material cost of a typepath (including our creation efficiency), modifying a list
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index c9ed74caa02a9..97ac006bcd500 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -11,10 +11,12 @@
density = TRUE
layer = BELOW_MOB_LAYER //so people can't hide it and it's REALLY OBVIOUS
verb_say = "states"
- var/cooldown = 0
+ /// Cooldown each time singularity is pulled in our direction
+ COOLDOWN_DECLARE(singularity_beacon_cd)
var/active = FALSE
var/icontype = "beacon"
+ var/energy_used = 1.5 KILO JOULES
/obj/machinery/power/singularity_beacon/proc/Activate(mob/user = null)
@@ -42,11 +44,9 @@
if(user)
to_chat(user, span_notice("You deactivate the beacon."))
-
/obj/machinery/power/singularity_beacon/attack_ai(mob/user)
return
-
/obj/machinery/power/singularity_beacon/attack_hand(mob/user, list/modifiers)
. = ..()
if(.)
@@ -93,10 +93,10 @@
if(!active)
return
- if(surplus() >= 1500)
- add_load(1500)
- if(cooldown <= world.time)
- cooldown = world.time + 80
+ if(surplus() >= energy_used)
+ add_load(energy_used)
+ if(COOLDOWN_FINISHED(src, singularity_beacon_cd))
+ COOLDOWN_START(src, singularity_beacon_cd, 8 SECONDS)
for(var/_singulo_component in GLOB.singularities)
var/datum/component/singularity/singulo_component = _singulo_component
var/atom/singulo = singulo_component.parent
@@ -106,6 +106,95 @@
Deactivate()
say("Insufficient charge detected - powering down")
+// Used for the No Escape final objective that attracts a singularity to the escape shuttle
+// needs to be charged with an inducer to work
+/obj/machinery/power/singularity_beacon/syndicate/no_escape
+ name = "ominous beacon"
+ desc = "This looks very suspicious..."
+ processing_flags = START_PROCESSING_MANUALLY
+ /// The cell we spawn with
+ var/obj/item/stock_parts/power_store/cell/cell = /obj/item/stock_parts/power_store/cell/super/empty
+ /// The black hole shuttle event that is triggered
+ var/datum/shuttle_event/simple_spawner/black_hole/no_escape/no_escape_event
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/Initialize(mapload)
+ . = ..()
+ cell = new cell(src)
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/Destroy()
+ if(active)
+ Deactivate()
+ QDEL_NULL(cell)
+ // destroying the beacon doesn't automatically stop the event
+ no_escape_event = null
+ return ..()
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/examine(mob/user)
+ . = ..()
+ . += "\The [src] is [active ? "on" : "off"]."
+ if(cell)
+ . += "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%."
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/get_cell()
+ return cell
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/attack_hand(mob/user, list/modifiers)
+ return active ? Deactivate(user) : Activate(user)
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/Activate(mob/user = null)
+ if(!cell.charge())
+ say("Insufficient charge detected")
+ return
+
+ icon_state = "[icontype]1"
+ active = TRUE
+ begin_processing()
+ if(user)
+ to_chat(user, span_notice("You activate the beacon."))
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/Deactivate(mob/user = null)
+ icon_state = "[icontype]0"
+ active = FALSE
+ end_processing()
+ if(user)
+ to_chat(user, span_notice("You deactivate the beacon."))
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/wrench_act(mob/living/user, obj/item/tool)
+ . = TRUE
+
+ tool.play_tool_sound(src, 50)
+ if(anchored)
+ set_anchored(FALSE)
+ to_chat(user, span_notice("You unbolt \the [src] from the floor."))
+ return
+ else
+ set_anchored(TRUE)
+ to_chat(user, span_notice("You bolt \the [src] to the floor."))
+ return
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/screwdriver_act(mob/living/user, obj/item/tool)
+ return
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/emp_act(severity)
+ . = ..()
+ if(machine_stat & (NOPOWER|BROKEN) || . & EMP_PROTECT_CONTENTS)
+ return
+ cell?.emp_act(severity)
+
+/obj/machinery/power/singularity_beacon/syndicate/no_escape/process()
+ if(cell.charge())
+ cell.use(energy_used, force = TRUE)
+
+ if(!no_escape_event)
+ var/area/escape_shuttle_area = get_area(src)
+ // beacon must be on the traveling escape shuttle (not a pod)
+ if(istype(escape_shuttle_area, /area/shuttle/escape) && (SSshuttle.emergency.mode == SHUTTLE_ESCAPE) && SSshuttle.emergency.is_in_shuttle_bounds(src))
+ var/obj/docking_port/mobile/port = SSshuttle.emergency
+ no_escape_event = port.add_shuttle_event(/datum/shuttle_event/simple_spawner/black_hole/no_escape)
+ no_escape_event.beacon = src
+ else
+ Deactivate()
+ say("Insufficient charge detected - powering down")
/obj/machinery/power/singularity_beacon/syndicate
icontype = "beaconsynd"
@@ -131,6 +220,10 @@
qdel(src)
return
+/obj/item/sbeacondrop/no_escape
+ name = "very suspicious beacon"
+ droptype = /obj/machinery/power/singularity_beacon/syndicate/no_escape
+
/obj/item/sbeacondrop/bomb
desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location."
droptype = /obj/machinery/syndicatebomb
diff --git a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm
index 2d92eaabb929c..8f10717c771e9 100644
--- a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm
+++ b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm
@@ -36,7 +36,7 @@
/datum/dimension_theme/New()
if (material)
var/datum/material/using_mat = GET_MATERIAL_REF(material)
- window_colour = using_mat.greyscale_colors
+ window_colour = using_mat.color
/**
* Applies themed transformation to the provided turf.
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index b6837df6f9546..21eff5028b57e 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -1,6 +1,5 @@
/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/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm
index bf826e207db37..bc7923ac0ed47 100644
--- a/code/game/objects/effects/decals/cleanable/aliens.dm
+++ b/code/game/objects/effects/decals/cleanable/aliens.dm
@@ -23,7 +23,8 @@
desc = "Gnarly..."
icon = 'icons/effects/blood.dmi'
icon_state = "xgib1"
- layer = LOW_OBJ_LAYER
+ plane = GAME_PLANE
+ layer = BELOW_OBJ_LAYER
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
mergeable_decal = FALSE
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index 062ba3837230b..4e7fd2d01a902 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -111,7 +111,7 @@
desc = "They look bloody and gruesome."
icon = 'icons/effects/blood.dmi'
icon_state = "gib1"
- layer = LOW_OBJ_LAYER
+ layer = BELOW_OBJ_LAYER
plane = GAME_PLANE
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
mergeable_decal = FALSE
@@ -354,6 +354,8 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
pass_flags = PASSTABLE | PASSGRILLE
icon_state = "hitsplatter1"
random_icon_states = list("hitsplatter1", "hitsplatter2", "hitsplatter3")
+ plane = GAME_PLANE
+ layer = ABOVE_WINDOW_LAYER
/// The turf we just came from, so we can back up when we hit a wall
var/turf/prev_loc
/// The cached info about the blood
diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index 1124e32983f31..caf7428ef01fa 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -10,6 +10,8 @@
desc = "Ashes to ashes, dust to dust, and into space."
icon = 'icons/obj/debris.dmi'
icon_state = "ash"
+ plane = GAME_PLANE
+ layer = GAME_CLEAN_LAYER
mergeable_decal = FALSE
beauty = -50
decal_reagent = /datum/reagent/ash
@@ -144,6 +146,7 @@
name = "cobweb"
desc = "Somebody should remove that."
gender = NEUTER
+ plane = GAME_PLANE
layer = WALL_OBJ_LAYER
icon = 'icons/effects/web.dmi'
icon_state = "cobweb1"
@@ -160,6 +163,8 @@
gender = NEUTER
icon = 'icons/effects/effects.dmi'
icon_state = "molten"
+ plane = GAME_PLANE
+ layer = GAME_CLEAN_LAYER
mergeable_decal = FALSE
beauty = -150
clean_type = CLEAN_TYPE_HARD_DECAL
@@ -245,6 +250,8 @@
name = "chemical pile"
desc = "A pile of chemicals. You can't quite tell what's inside it."
gender = NEUTER
+ plane = GAME_PLANE
+ layer = GAME_CLEAN_LAYER
icon = 'icons/obj/debris.dmi'
icon_state = "ash"
@@ -322,6 +329,8 @@
desc = "Torn pieces of cardboard and paper, left over from a package."
icon = 'icons/obj/debris.dmi'
icon_state = "paper_shreds"
+ plane = GAME_PLANE
+ layer = GAME_CLEAN_LAYER
/obj/effect/decal/cleanable/wrapping/pinata
name = "pinata shreds"
@@ -340,7 +349,7 @@
icon = 'icons/obj/debris.dmi'
icon_state = "garbage"
plane = GAME_PLANE
- layer = FLOOR_CLEAN_LAYER //To display the decal over wires.
+ layer = GAME_CLEAN_LAYER
beauty = -150
clean_type = CLEAN_TYPE_HARD_DECAL
@@ -443,7 +452,6 @@
name = "pool of fuel"
desc = "A pool of flammable fuel. Its probably wise to clean this off before something ignites it..."
icon_state = "fuel_pool"
- layer = LOW_OBJ_LAYER
beauty = -50
clean_type = CLEAN_TYPE_BLOOD
mouse_opacity = MOUSE_OPACITY_OPAQUE
@@ -558,6 +566,8 @@
icon_state = "rubble"
mergeable_decal = FALSE
beauty = -10
+ plane = GAME_PLANE
+ layer = BELOW_OBJ_LAYER
/obj/effect/decal/cleanable/rubble/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm
index 808a68d6f5eb0..3f2957a9c9e16 100644
--- a/code/game/objects/effects/decals/cleanable/robots.dm
+++ b/code/game/objects/effects/decals/cleanable/robots.dm
@@ -5,7 +5,8 @@
desc = "It's a useless heap of junk... or is it?"
icon = 'icons/mob/silicon/robots.dmi'
icon_state = "gib1"
- layer = LOW_OBJ_LAYER
+ plane = GAME_PLANE
+ layer = BELOW_OBJ_LAYER
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
blood_state = BLOOD_STATE_OIL
bloodiness = BLOOD_AMOUNT_PER_DECAL
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index eced2fb66f1ee..e27e6f91337fe 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -4,7 +4,6 @@
icon = 'icons/effects/crayondecal.dmi'
icon_state = "rune1"
gender = NEUTER
- plane = GAME_PLANE //makes the graffiti visible over a wall.
mergeable_decal = FALSE
flags_1 = ALLOW_DARK_PAINTS_1
var/do_icon_rotate = TRUE
@@ -13,6 +12,10 @@
/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null, desc_override = null)
. = ..()
+ if(isclosedturf(loc) && loc.density)
+ // allows for wall graffiti to be seen
+ SET_PLANE_IMPLICIT(src, GAME_PLANE)
+ layer = GAME_CLEAN_LAYER
if(e_name)
name = e_name
if(desc_override)
diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm
index 4445815a422be..60ce9d7662b81 100644
--- a/code/game/objects/effects/forcefields.dm
+++ b/code/game/objects/effects/forcefields.dm
@@ -84,7 +84,7 @@
icon = 'icons/effects/eldritch.dmi'
icon_state = "cosmic_carpet"
anchored = TRUE
- layer = LOW_SIGIL_LAYER
+ layer = BELOW_OBJ_LAYER
density = FALSE
can_atmos_pass = ATMOS_PASS_NO
initial_duration = 30 SECONDS
diff --git a/code/game/objects/effects/material_insert.dm b/code/game/objects/effects/material_insert.dm
index 9ca86226b24b9..3dcdd904a01d5 100644
--- a/code/game/objects/effects/material_insert.dm
+++ b/code/game/objects/effects/material_insert.dm
@@ -2,21 +2,18 @@
* Creates a mutable appearance with the material color applied for its insertion animation into an autolathe or techfab
* Arguments
*
- * * color - the material color that will be applied
+ * * material - the material used to generate the overlay
*/
-/proc/material_insertion_animation(color)
+/proc/material_insertion_animation(datum/material/material)
RETURN_TYPE(/mutable_appearance)
var/static/list/mutable_appearance/apps = list()
- var/mutable_appearance/cached_app = apps[color]
+ var/mutable_appearance/cached_app = apps[material]
if(isnull(cached_app))
- var/icon/modified_icon = icon('icons/obj/machines/research.dmi', "material_insertion")
+ cached_app = mutable_appearance('icons/obj/machines/research.dmi', "material_insertion")
+ cached_app.color = material.color
+ cached_app.alpha = material.alpha
- //assuming most of the icon is white we find what ratio to scale the intensity of each part roughly
- var/list/rgb_list = rgb2num(color)
- modified_icon.SetIntensity(rgb_list[1] / 255, rgb_list[2] / 255, rgb_list[3] / 255)
- cached_app = mutable_appearance(modified_icon, "material_insertion")
-
- apps[color] = cached_app
+ apps[material] = cached_app
return cached_app
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 5692101ec2524..d957cfe54310e 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -142,7 +142,7 @@
var/slowdown = 0
///percentage of armour effectiveness to remove
var/armour_penetration = 0
- ///Whether or not our object is easily hindered by the presence of armor
+ ///Whether or not our object doubles the value of affecting armour
var/weak_against_armour = FALSE
/// The click cooldown given after attacking. Lower numbers means faster attacks
var/attack_speed = CLICK_CD_MELEE
@@ -1761,6 +1761,56 @@
embed_data = ispath(embed) ? get_embed_by_type(embed) : embed
SEND_SIGNAL(src, COMSIG_ITEM_EMBEDDING_UPDATE)
+/obj/item/apply_main_material_effects(datum/material/main_material, amount, multipier)
+ . = ..()
+ if(material_flags & MATERIAL_GREYSCALE)
+ var/main_mat_type = main_material.type
+ var/worn_path = get_material_greyscale_config(main_mat_type, greyscale_config_worn)
+ var/lefthand_path = get_material_greyscale_config(main_mat_type, greyscale_config_inhand_left)
+ var/righthand_path = get_material_greyscale_config(main_mat_type, greyscale_config_inhand_right)
+ set_greyscale(
+ new_worn_config = worn_path,
+ new_inhand_left = lefthand_path,
+ new_inhand_right = righthand_path
+ )
+ if(!main_material.item_sound_override)
+ return
+ hitsound = main_material.item_sound_override
+ usesound = main_material.item_sound_override
+ mob_throw_hit_sound = main_material.item_sound_override
+ equip_sound = main_material.item_sound_override
+ pickup_sound = main_material.item_sound_override
+ drop_sound = main_material.item_sound_override
+
+/obj/item/remove_main_material_effects(datum/material/main_material, amount, multipier)
+ . = ..()
+ if(material_flags & MATERIAL_GREYSCALE)
+ set_greyscale(
+ new_worn_config = initial(greyscale_config_worn),
+ new_inhand_left = initial(greyscale_config_inhand_left),
+ new_inhand_right = initial(greyscale_config_inhand_right)
+ )
+ if(!main_material.item_sound_override)
+ return
+ hitsound = initial(hitsound)
+ usesound = initial(usesound)
+ mob_throw_hit_sound = initial(mob_throw_hit_sound)
+ equip_sound = initial(equip_sound)
+ pickup_sound = initial(pickup_sound)
+ drop_sound = initial(drop_sound)
+
+/obj/item/apply_single_mat_effect(datum/material/material, mat_amount, multiplier)
+ . = ..()
+ if(!(material_flags & MATERIAL_AFFECT_STATISTICS) || !slowdown)
+ return
+ slowdown += GET_MATERIAL_MODIFIER(material.added_slowdown * mat_amount, multiplier)
+
+/obj/item/remove_single_mat_effect(datum/material/material, mat_amount, multiplier)
+ . = ..()
+ if(!(material_flags & MATERIAL_AFFECT_STATISTICS) || !slowdown)
+ return
+ slowdown -= GET_MATERIAL_MODIFIER(material.added_slowdown * mat_amount, multiplier)
+
/**
* Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us
* For example an object can have different `tool_behaviours` (e.g borg omni tool) but will return an internal reference of that tool to attack for us
@@ -1807,3 +1857,14 @@
return bait.reagents?.has_reagent(special_identifier[FISH_BAIT_VALUE], special_identifier[FISH_BAIT_AMOUNT], check_subtypes = TRUE)
else
CRASH("Unknown bait identifier in fish favourite/disliked list")
+
+/obj/item/vv_get_header()
+ . = ..()
+ . += {"
+
+ DAMTYPE: [uppertext(damtype)]
+ FORCE: [force]
+ WOUND: [wound_bonus]
+ BARE WOUND: [bare_wound_bonus]
+
+ "}
diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
index ec5294fd61eed..12cb48c3a478d 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -1407,7 +1407,7 @@
/obj/item/circuitboard/machine/fishing_portal_generator/emagged
name = "Emagged Fishing Portal Generator"
- build_path = /obj/machinery/fishing_portal_generator
+ build_path = /obj/machinery/fishing_portal_generator/emagged
//Supply
/obj/item/circuitboard/machine/ore_redemption
diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm
index 88a3a98a5bb26..e863f09ecde5b 100644
--- a/code/game/objects/items/dehy_carp.dm
+++ b/code/game/objects/items/dehy_carp.dm
@@ -71,3 +71,6 @@
UnregisterSignal(owner, COMSIG_QDELETING)
owner = null
+
+/obj/item/toy/plush/carpplushie/dehy_carp/peaceful
+ mobtype = /mob/living/basic/carp/passive
diff --git a/code/game/objects/items/devices/aicard_evil.dm b/code/game/objects/items/devices/aicard_evil.dm
index 852a105de350f..bb23779fafec6 100644
--- a/code/game/objects/items/devices/aicard_evil.dm
+++ b/code/game/objects/items/devices/aicard_evil.dm
@@ -35,7 +35,7 @@
balloon_alert(user, "invalid access!")
return
var/mob/chosen_one = SSpolling.poll_ghosts_for_target(
- check_jobban = ROLE_OPERATIVE,
+ check_jobban = list(ROLE_OPERATIVE, JOB_AI),
poll_time = 20 SECONDS,
checked_target = src,
ignore_category = POLL_IGNORE_SYNDICATE,
@@ -47,12 +47,12 @@
/// Poll has concluded with a ghost, create the AI
/obj/item/aicard/syndie/loaded/proc/on_poll_concluded(mob/user, datum/antagonist/nukeop/op_datum, mob/dead/observer/ghost)
- if(isnull(ghost))
+ if(!ismob(ghost))
to_chat(user, span_warning("Unable to connect to S.E.L.F. dispatch. Please wait and try again later or use the intelliCard on your uplink to get your points refunded."))
return
// pick ghost, create AI and transfer
- var/mob/living/silicon/ai/weak_syndie/new_ai = new /mob/living/silicon/ai/weak_syndie(get_turf(src), new /datum/ai_laws/syndicate_override, ghost)
+ var/mob/living/silicon/ai/weak_syndie/new_ai = new /mob/living/silicon/ai/weak_syndie(null, new /datum/ai_laws/syndicate_override, ghost)
// create and apply syndie datum
var/datum/antagonist/nukeop/nuke_datum = new()
nuke_datum.send_to_spawnpoint = FALSE
diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm
index 18bb026745ac0..17f324d109f99 100644
--- a/code/game/objects/items/devices/pressureplates.dm
+++ b/code/game/objects/items/devices/pressureplates.dm
@@ -7,7 +7,8 @@
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
icon_state = "pressureplate"
- layer = LOW_OBJ_LAYER
+ plane = FLOOR_PLANE
+ layer = HIGH_TURF_LAYER
var/trigger_mob = TRUE
var/trigger_item = FALSE
var/specific_item = null
diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm
index 9bda586b2693f..770b6f8bf3124 100644
--- a/code/game/objects/items/food/meatdish.dm
+++ b/code/game/objects/items/food/meatdish.dm
@@ -88,6 +88,13 @@
cell_line = null
starting_reagent_purity = 0.3
+///carp fillet, but without the toxin. Used by baby carps (fish item), which have a trait that handles the toxin already.
+/obj/item/food/fishmeat/carp/no_tox
+
+/obj/item/food/fishmeat/carp/no_tox/Initialize(mapload)
+ food_reagents -= /datum/reagent/toxin/carpotoxin
+ return ..()
+
/obj/item/food/fishmeat/moonfish
name = "moonfish fillet"
desc = "A fillet of moonfish."
diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm
index 2404974d69970..0f66cd4b6d108 100644
--- a/code/game/objects/items/inducer.dm
+++ b/code/game/objects/items/inducer.dm
@@ -7,212 +7,219 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
force = 7
+
/// Multiplier that determines the speed at which this inducer works at.
var/power_transfer_multiplier = 1
+ /// Is the battery hatch opened
var/opened = FALSE
- var/cell_type = /obj/item/stock_parts/power_store/battery/high
- var/obj/item/stock_parts/power_store/powerdevice
+ /// The cell for used in recharging cycles
+ var/obj/item/stock_parts/power_store/powerdevice = /obj/item/stock_parts/power_store/battery/high
+ /// Are we in the process of recharging something
var/recharging = FALSE
/obj/item/inducer/Initialize(mapload)
. = ..()
- if(!powerdevice && cell_type)
- powerdevice = new cell_type
-/obj/item/inducer/proc/induce(obj/item/stock_parts/power_store/target, coefficient)
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
- var/rating_base = target.rating_base
- var/totransfer = min(our_cell.charge, (rating_base * coefficient * power_transfer_multiplier))
- var/transferred = target.give(totransfer)
+ if(ispath(powerdevice))
+ powerdevice = new powerdevice(src)
- our_cell.use(transferred)
- our_cell.update_appearance()
- target.update_appearance()
+ register_context()
-/obj/item/inducer/get_cell()
- return powerdevice
+ update_appearance(UPDATE_OVERLAYS)
-/obj/item/inducer/emp_act(severity)
+/obj/item/inducer/Destroy(force)
+ QDEL_NULL(powerdevice)
. = ..()
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
- if(!isnull(our_cell) && !(. & EMP_PROTECT_CONTENTS))
- our_cell.emp_act(severity)
-/obj/item/inducer/attack_atom(obj/target, mob/living/carbon/user, params)
- if(user.combat_mode)
- return ..()
+/obj/item/inducer/Exited(atom/movable/gone, direction)
+ . = ..()
+ if(gone == powerdevice)
+ powerdevice = null
- if(cantbeused(user))
- return
+/obj/item/inducer/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ . = NONE
- if(recharge(target, user))
+ if(isnull(held_item))
+ if(opened && !QDELETED(powerdevice))
+ context[SCREENTIP_CONTEXT_LMB] = "Remove Cell"
+ . = CONTEXTUAL_SCREENTIP_SET
return
- return ..()
+ if(opened)
+ if(istype(held_item, /obj/item/stock_parts/power_store) && QDELETED(powerdevice))
+ context[SCREENTIP_CONTEXT_LMB] = "Insert cell"
+ return CONTEXTUAL_SCREENTIP_SET
-/obj/item/inducer/proc/cantbeused(mob/user)
- if(!ISADVANCEDTOOLUSER(user))
- to_chat(user, span_warning("You don't have the dexterity to use [src]!"))
- return TRUE
+ if(istype(held_item, /obj/item/stack/sheet/mineral/plasma) && !QDELETED(powerdevice))
+ context[SCREENTIP_CONTEXT_LMB] = "Charge cell"
+ return CONTEXTUAL_SCREENTIP_SET
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
+ if(held_item.tool_behaviour == TOOL_SCREWDRIVER)
+ context[SCREENTIP_CONTEXT_LMB] = "[opened ? "Close" : "Open"] Panel"
+ return CONTEXTUAL_SCREENTIP_SET
- if(isnull(our_cell))
- balloon_alert(user, "no cell installed!")
- return TRUE
+/obj/item/inducer/examine(mob/living/user)
+ . = ..()
- if(!our_cell.charge)
- balloon_alert(user, "no charge!")
- return TRUE
- return FALSE
+ if(!QDELETED(powerdevice))
+ . += span_notice("Its display shows: [display_energy(powerdevice.charge)].")
+ if(opened)
+ . += span_notice("The cell can be removed with an empty hand.")
+ . += span_notice("Plasma sheets can be used to recharge the cell.")
+ else
+ . += span_warning("It's missing a power cell.")
-/obj/item/inducer/screwdriver_act(mob/living/user, obj/item/tool)
- . = TRUE
- tool.play_tool_sound(src)
+ . += span_notice("Its battery compartment can be [EXAMINE_HINT("screwed")] [opened ? "shut" : "open"].")
+
+/obj/item/inducer/update_overlays()
+ . = ..()
if(!opened)
- to_chat(user, span_notice("You unscrew the battery compartment."))
- opened = TRUE
- update_appearance()
return
- else
- to_chat(user, span_notice("You close the battery compartment."))
- opened = FALSE
- update_appearance()
+ . += "inducer-[!QDELETED(powerdevice) ? "bat" : "nobat"]"
+
+/obj/item/inducer/get_cell()
+ return powerdevice
+
+/obj/item/inducer/emp_act(severity)
+ . = ..()
+ if(!QDELETED(powerdevice) && !(. & EMP_PROTECT_CONTENTS))
+ powerdevice.emp_act(severity)
+
+/obj/item/inducer/screwdriver_act(mob/living/user, obj/item/tool)
+ . = NONE
+
+ if(!tool.use_tool(src, user, delay = 0))
return
-/obj/item/inducer/attackby(obj/item/used_item, mob/user)
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
- if(istype(used_item, /obj/item/stock_parts/power_store))
- if(opened)
- if(isnull(our_cell))
- if(!user.transferItemToLoc(used_item, src))
- return
- to_chat(user, span_notice("You insert [used_item] into [src]."))
- powerdevice = used_item
- update_appearance()
- return
- else
- to_chat(user, span_warning("[src] already has \a [our_cell] installed!"))
- return
-
- if (istype(used_item, /obj/item/stack/sheet/mineral/plasma) && !isnull(our_cell))
- if(our_cell.charge == our_cell.maxcharge)
- balloon_alert(user, "already fully charged!")
- return
- used_item.use(1)
- our_cell.give(1.5 * STANDARD_CELL_CHARGE)
+ opened = !opened
+ to_chat(user, span_notice("You [opened ? "open" : "close"] the battery compartment."))
+ update_appearance(UPDATE_OVERLAYS)
+
+ return ITEM_INTERACT_SUCCESS
+
+/obj/item/inducer/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
+ . = NONE
+ if(user.combat_mode || !istype(tool) || tool.flags_1 & HOLOGRAM_1 || tool.item_flags & ABSTRACT)
+ return ITEM_INTERACT_SKIP_TO_ATTACK
+
+ if(!opened)
+ balloon_alert(user, "open first!")
+ return ITEM_INTERACT_FAILURE
+
+ if(istype(tool, /obj/item/stock_parts/power_store))
+ if(!QDELETED(powerdevice))
+ balloon_alert(user, "cell already installed!")
+ return ITEM_INTERACT_FAILURE
+
+ if(!user.transferItemToLoc(tool, src))
+ balloon_alert(user, "stuck in hand!")
+ return ITEM_INTERACT_FAILURE
+
+ powerdevice = tool
+ return ITEM_INTERACT_SUCCESS
+
+ if(istype(tool, /obj/item/stack/sheet/mineral/plasma) && !QDELETED(powerdevice))
+ if(!powerdevice.used_charge())
+ balloon_alert(user, "fully charged!")
+ return ITEM_INTERACT_FAILURE
+
+ tool.use(1)
+ powerdevice.give(1.5 * STANDARD_CELL_CHARGE)
balloon_alert(user, "cell recharged")
- return
- if(cantbeused(user))
- return
+ return ITEM_INTERACT_SUCCESS
- if(recharge(used_item, user))
- return
+/obj/item/inducer/interact_with_atom(atom/movable/interacting_with, mob/living/user, list/modifiers)
+ . = NONE
+ if(user.combat_mode || !istype(interacting_with) || interacting_with.flags_1 & HOLOGRAM_1)
+ return ITEM_INTERACT_SKIP_TO_ATTACK
+
+ //basic checks
+ if(opened)
+ balloon_alert(user, "close first!")
+ return ITEM_INTERACT_FAILURE
- return ..()
+ if(recharging || (!isturf(interacting_with) && user.loc == interacting_with))
+ return ITEM_INTERACT_FAILURE
-/obj/item/inducer/proc/recharge(atom/movable/target, mob/user)
- if(!isturf(target) && user.loc == target)
- return FALSE
- if(recharging)
- return TRUE
+ if(!ISADVANCEDTOOLUSER(user))
+ to_chat(user, span_warning("You don't have the dexterity to use [src]!"))
+ return ITEM_INTERACT_FAILURE
+ if(QDELETED(powerdevice))
+ balloon_alert(user, "no cell installed!")
+ return ITEM_INTERACT_FAILURE
+
+ if(!powerdevice.charge)
+ balloon_alert(user, "no charge!")
+ return ITEM_INTERACT_FAILURE
+
+ var/obj/item/stock_parts/power_store/target_cell = interacting_with.get_cell(src, user)
+
+ if(QDELETED(target_cell))
+ return ITEM_INTERACT_FAILURE
+
+ if(!target_cell.used_charge())
+ balloon_alert(user, "fully charged!")
+ return ITEM_INTERACT_FAILURE
+
+ //begin recharging
recharging = TRUE
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
- var/obj/item/stock_parts/power_store/target_cell = target.get_cell()
- var/obj/target_as_object = target
- var/coefficient = 1
-
- if(istype(target, /obj/item/gun/energy) || istype(target, /obj/item/clothing/suit/space))
- to_chat(user, span_alert("Error: unable to interface with device."))
- return FALSE
-
- if(target_cell)
- var/done_any = FALSE
- if(target_cell.charge >= target_cell.maxcharge)
- balloon_alert(user, "it's fully charged!")
- recharging = FALSE
- return TRUE
-
- user.visible_message(span_notice("[user] starts recharging [target] with [src]."), span_notice("You start recharging [target] with [src]."))
-
- while(target_cell.charge < target_cell.maxcharge)
- if(do_after(user, 1 SECONDS, target = user) && our_cell.charge)
- done_any = TRUE
- induce(target_cell, coefficient)
- do_sparks(1, FALSE, target)
- if(istype(target_as_object))
- target_as_object.update_appearance()
- else
- break
- if(done_any) // Only show a message if we succeeded at least once
- user.visible_message(span_notice("[user] recharged [target]!"), span_notice("You recharged [target]!"))
- recharging = FALSE
- return TRUE
- recharging = FALSE
+ user.visible_message(span_notice("[user] starts recharging [interacting_with] with [src]."), span_notice("You start recharging [interacting_with] with [src]."))
+ var/done_any = FALSE
+ while(target_cell.used_charge())
+ if(!do_after(user, 1 SECONDS, target = user))
+ break
-/obj/item/inducer/attack(mob/target, mob/living/user)
- if(user.combat_mode)
- return ..()
+ //transfer of charge
+ var/transferred = min(powerdevice.charge, target_cell.used_charge(), (target_cell.rating_base * target_cell.rating * power_transfer_multiplier))
+ if(!transferred)
+ break
+ powerdevice.use(target_cell.give(transferred))
- if(cantbeused(user))
- return
+ //update all appearances
+ powerdevice.update_appearance()
+ target_cell.update_appearance()
+ interacting_with.update_appearance()
- if(recharge(target, user))
- return
+ //sparks & update
+ do_sparks(1, FALSE, interacting_with)
+ done_any = TRUE
- return ..()
+ recharging = FALSE
+ // Only show a message if we succeeded at least once
+ if(done_any)
+ user.visible_message(span_notice("[user] recharges [interacting_with]!"), span_notice("You recharge [interacting_with]!"))
+
+ return ITEM_INTERACT_SUCCESS
/obj/item/inducer/attack_self(mob/user)
- if(opened && powerdevice)
+ if(opened && !QDELETED(powerdevice))
user.visible_message(span_notice("[user] removes [powerdevice] from [src]!"), span_notice("You remove [powerdevice]."))
powerdevice.update_appearance()
user.put_in_hands(powerdevice)
- powerdevice = null
- update_appearance()
-
-
-/obj/item/inducer/examine(mob/living/user)
- . = ..()
- var/obj/item/stock_parts/power_store/our_cell = get_cell()
- if(!isnull(our_cell))
- . += span_notice("Its display shows: [display_energy(our_cell.charge)].")
- else
- . += span_notice("Its display is dark.")
- if(opened)
- . += span_notice("Its battery compartment is open.")
-
-/obj/item/inducer/update_overlays()
- . = ..()
- if(!opened)
- return
- . += "inducer-[!isnull(get_cell()) ? "bat" : "nobat"]"
+ update_appearance(UPDATE_OVERLAYS)
/obj/item/inducer/empty
- cell_type = null
+ powerdevice = null
opened = TRUE
/obj/item/inducer/orderable
- cell_type = /obj/item/stock_parts/power_store/battery/upgraded
+ powerdevice = /obj/item/stock_parts/power_store/battery/upgraded
opened = FALSE
/obj/item/inducer/sci
icon_state = "inducer-sci"
inhand_icon_state = "inducer-sci"
desc = "A tool for inductively charging internal power cells. This one has a science color scheme, and is less potent than its engineering counterpart."
- cell_type = null
+ powerdevice = null
opened = TRUE
-/obj/item/inducer/sci/Initialize(mapload)
- . = ..()
- update_appearance()
-
/obj/item/inducer/syndicate
icon_state = "inducer-syndi"
inhand_icon_state = "inducer-syndi"
desc = "A tool for inductively charging internal power cells. This one has a suspicious colour scheme, and seems to be rigged to transfer charge at a much faster rate."
power_transfer_multiplier = 2 // 2x the base speed
- cell_type = /obj/item/stock_parts/power_store/cell/super
+ powerdevice = /obj/item/stock_parts/power_store/battery/super
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 813ace6ced89e..95d99d64ef80d 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -515,10 +515,10 @@
greyscale_config_inhand_left = /datum/greyscale_config/cleric_mace_lefthand
greyscale_config_inhand_right = /datum/greyscale_config/cleric_mace_righthand
greyscale_config_worn = /datum/greyscale_config/cleric_mace
- greyscale_colors = COLOR_WHITE
+ greyscale_colors = COLOR_WHITE + COLOR_BROWN
material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color.
- custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*6) //Defaults to an Iron Mace.
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 4.5, /datum/material/wood = SHEET_MATERIAL_AMOUNT * 1.5) //Defaults to an Iron Mace.
slot_flags = ITEM_SLOT_BELT
force = 14
w_class = WEIGHT_CLASS_BULKY
@@ -529,6 +529,26 @@
attack_verb_continuous = list("smacks", "strikes", "cracks", "beats")
attack_verb_simple = list("smack", "strike", "crack", "beat")
+///Cleric maces are made of two custom materials: one is handle, and the other is the mace itself.
+/obj/item/melee/cleric_mace/get_material_multiplier(datum/material/custom_material, list/materials, index)
+ if(length(materials) < 1)
+ return 1.2
+ if(index == 1)
+ return 1
+ else
+ return 0.3
+
+/obj/item/melee/cleric_mace/get_material_prefixes(list/materials)
+ var/datum/material/material = materials[1]
+ return material.name //It only inherits the name of the main material it's made of. The secondary is in the description.
+
+/obj/item/melee/cleric_mace/finalize_material_effects(list/materials)
+ . = ..()
+ if(length(materials) == 1)
+ return
+ var/datum/material/material = materials[2]
+ desc = "[initial(desc)] Its handle is made of [material.name]."
+
/obj/item/melee/cleric_mace/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(attack_type == PROJECTILE_ATTACK || attack_type == LEAP_ATTACK)
final_block_chance = 0 //Don't bring a...mace to a gunfight, and also you aren't going to really block someone full body tackling you with a mace
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 0148076f529ec..2d700cf3ff0c0 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -11,6 +11,10 @@
inhand_icon_state = "pet_carrier"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ greyscale_config = /datum/greyscale_config/pet_carrier
+ greyscale_config_inhand_left = /datum/greyscale_config/pet_carrier_inhands_left
+ greyscale_config_inhand_right = /datum/greyscale_config/pet_carrier_inhands_right
+ greyscale_colors = COLOR_BLUE
force = 5
attack_verb_continuous = list("bashes", "carries")
attack_verb_simple = list("bash", "carry")
@@ -19,7 +23,6 @@
throw_range = 3
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 7.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT)
interaction_flags_mouse_drop = NEED_DEXTERITY
-
var/open = TRUE
var/locked = FALSE
var/list/occupants = list()
@@ -147,14 +150,9 @@
if(open)
icon_state = initial(icon_state)
return ..()
- icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]"
+ icon_state = "[base_icon_state]_[!occupants.len ? "closed" : "occupied"]_[locked ? "locked" : "unlocked"]"
return ..()
-/obj/item/pet_carrier/update_overlays()
- . = ..()
- if(!open)
- . += "[base_icon_state]_[locked ? "" : "un"]locked"
-
/obj/item/pet_carrier/mouse_drop_dragged(atom/over_atom, mob/user, src_location, over_location, params)
if(isopenturf(over_atom) && open && occupants.len)
user.visible_message(span_notice("[user] unloads [src]."), \
@@ -202,5 +200,9 @@
base_icon_state = "biopod"
icon_state = "biopod_open"
inhand_icon_state = "biopod"
+ greyscale_config = null
+ greyscale_config_inhand_left = null
+ greyscale_config_inhand_right = null
+ greyscale_colors = null
#undef pet_carrier_full
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 4b210c47e9fca..2e7682eda1fd1 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -648,7 +648,7 @@
name = "Internal inducer"
icon = 'icons/obj/tools.dmi'
icon_state = "inducer-engi"
- cell_type = null
+ powerdevice = null
/obj/item/inducer/cyborg/get_cell()
var/obj/item/robot_model/possible_model = loc
@@ -657,7 +657,7 @@
. = silicon_friend.cell
/obj/item/inducer/cyborg/screwdriver_act(mob/living/user, obj/item/tool)
- return FALSE
+ return NONE
/obj/item/borg/upgrade/pinpointer
name = "medical cyborg crew pinpointer"
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index e2a8e10c4df49..18891ebdd9306 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -77,18 +77,19 @@
amount = new_amount
while(amount > max_amount)
amount -= max_amount
- new type(loc, max_amount, FALSE)
+ new type(loc, max_amount, FALSE, mat_override, mat_amt)
if(!merge_type)
merge_type = type
+ . = ..()
+
+ var/materials_mult = amount
if(LAZYLEN(mat_override))
- set_mats_per_unit(mat_override, mat_amt)
- else if(LAZYLEN(mats_per_unit))
- set_mats_per_unit(mats_per_unit, 1)
- else if(LAZYLEN(custom_materials))
- set_mats_per_unit(custom_materials, amount ? 1/amount : 1)
+ materials_mult *= mat_amt
+ mats_per_unit = mat_override
+ if(LAZYLEN(mats_per_unit))
+ initialize_materials(mats_per_unit, materials_mult)
- . = ..()
if(merge)
for(var/obj/item/stack/item_stack in loc)
if(item_stack == src)
@@ -118,26 +119,15 @@
if(is_path_in_list(merge_type, GLOB.golem_stack_food_directory))
AddComponent(/datum/component/golem_food, golem_food_key = merge_type)
-/** Sets the amount of materials per unit for this stack.
- *
- * Arguments:
- * - [mats][/list]: The value to set the mats per unit to.
- * - multiplier: The amount to multiply the mats per unit by. Defaults to 1.
- */
-/obj/item/stack/proc/set_mats_per_unit(list/mats, multiplier=1)
- mats_per_unit = SSmaterials.FindOrCreateMaterialCombo(mats, multiplier)
- update_custom_materials()
-
-/** Updates the custom materials list of this stack.
- */
+///Called to lazily update the materials of the item whenever the used or if more is added
/obj/item/stack/proc/update_custom_materials()
- set_custom_materials(mats_per_unit, amount, is_update=TRUE)
+ if(length(mats_per_unit))
+ set_custom_materials(mats_per_unit, amount)
-/**
- * Override to make things like metalgen accurately set custom materials
- */
-/obj/item/stack/set_custom_materials(list/materials, multiplier=1, is_update=FALSE)
- return is_update ? ..() : set_mats_per_unit(materials, multiplier/(amount || 1))
+/obj/item/stack/apply_material_effects(list/materials)
+ . = ..()
+ if(amount)
+ mats_per_unit = SSmaterials.FindOrCreateMaterialCombo(materials, 1/amount)
/obj/item/stack/blend_requirements()
if(is_cyborg)
@@ -437,7 +427,7 @@
if((recipe.crafting_flags & CRAFT_APPLIES_MATS) && LAZYLEN(mats_per_unit))
if(isstack(created))
var/obj/item/stack/crafted_stack = created
- crafted_stack.set_mats_per_unit(mats_per_unit, recipe.req_amount / recipe.res_amount)
+ crafted_stack.set_custom_materials(mats_per_unit, (recipe.req_amount / recipe.res_amount) * crafted_stack.amount)
else
created.set_custom_materials(mats_per_unit, recipe.req_amount / recipe.res_amount)
@@ -540,8 +530,7 @@
amount -= used
if(check && is_zero_amount(delete_if_zero = TRUE))
return TRUE
- if(length(mats_per_unit))
- update_custom_materials()
+ update_custom_materials()
update_appearance()
update_weight()
return TRUE
@@ -588,8 +577,7 @@
source.add_charge(_amount * cost)
else
amount += _amount
- if(length(mats_per_unit))
- update_custom_materials()
+ update_custom_materials()
update_appearance()
update_weight()
diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm
index 010cc7ffd7f5a..b1bdc86b39db8 100644
--- a/code/game/objects/items/storage/holsters.dm
+++ b/code/game/objects/items/storage/holsters.dm
@@ -198,7 +198,7 @@
/obj/item/storage/belt/holster/nukie/cowboy/full/PopulateContents()
generate_items_inside(list(
/obj/item/ammo_box/a357 = 2,
- /obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1,
+ /obj/item/gun/ballistic/revolver/cowboy/nuclear = 1,
), src)
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index c939e3d0dd9f4..5f08747e60c92 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -19,7 +19,7 @@
hitsound = 'sound/items/weapons/smash.ogg'
drop_sound = 'sound/items/handling/toolbox/toolbox_drop.ogg'
pickup_sound = 'sound/items/handling/toolbox/toolbox_pickup.ogg'
- material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR
+ material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
var/latches = "single_latch"
var/has_latches = TRUE
wound_bonus = 5
@@ -381,7 +381,7 @@
/obj/item/storage/toolbox/guncase/revolver
name = "revolver gun case"
- weapon_to_spawn = /obj/item/gun/ballistic/revolver/syndicate/nuclear
+ weapon_to_spawn = /obj/item/gun/ballistic/revolver/badass/nuclear
extra_to_spawn = /obj/item/ammo_box/a357
/obj/item/storage/toolbox/guncase/sword_and_board
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 05b8a5a0e8ab0..9e5ae3ba74b1c 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -78,7 +78,7 @@
new /obj/item/jammer(src) // 5 tc
if(KIT_GUN)
- new /obj/item/gun/ballistic/revolver/syndicate(src) // 13 tc
+ new /obj/item/gun/ballistic/revolver(src) // 13 tc
new /obj/item/ammo_box/a357(src) // 4tc
new /obj/item/ammo_box/a357(src)
new /obj/item/storage/belt/holster/chameleon(src) // 1 tc
diff --git a/code/game/objects/items/syndie_spraycan.dm b/code/game/objects/items/syndie_spraycan.dm
index fb6192c6e3990..5690ecb7a28cc 100644
--- a/code/game/objects/items/syndie_spraycan.dm
+++ b/code/game/objects/items/syndie_spraycan.dm
@@ -157,7 +157,8 @@
mergeable_decal = FALSE
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
clean_type = CLEAN_TYPE_HARD_DECAL
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
var/slip_time = 6 SECONDS
var/slip_flags = NO_SLIP_WHEN_WALKING
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index 5b5c930f04718..6fca04c7a3f40 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -110,10 +110,12 @@
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 5)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5)
armor_type = /datum/armor/item_hand_tele
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- var/list/active_portal_pairs
+ ///List of portal pairs created by this hand tele
+ var/list/active_portal_pairs = list()
+ ///Maximum concurrent active portal pairs allowed
var/max_portal_pairs = 3
/**
@@ -130,10 +132,7 @@
fire = 100
acid = 100
-/obj/item/hand_tele/Initialize(mapload)
- . = ..()
- active_portal_pairs = list()
-
+///Checks if the targeted portal was created by us, then causes it to expire, removing it
/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user)
if(is_parent_of_portal(target))
to_chat(user, span_notice("You dispel [target] with [src]!"))
@@ -262,6 +261,9 @@
RegisterSignal(portal2, COMSIG_QDELETING, PROC_REF(on_portal_destroy))
try_move_adjacent(portal1, user.dir)
+ if(QDELETED(portal1) || QDELETED(portal2)) //in the event that something managed to delete the portal objects, i.e. something teleported them
+ to_chat(user, span_notice("[src] vibrates, but no portal seems to appear. Maybe you should try something else."))
+ return
active_portal_pairs[portal1] = portal2
investigate_log("was used by [key_name(user)] at [AREACOORD(user)] to create a portal pair with destinations [AREACOORD(portal1)] and [AREACOORD(portal2)].", INVESTIGATE_PORTAL)
@@ -271,6 +273,9 @@
return TRUE
+///Checks for whether creating a portal in our area is allowed or not,
+///returning FALSE when in a NOTELEPORT area, an away mission or when the user is not on a turf.
+///Is, for some reason, separate from the teleport target's check in try_create_portal_to()
/obj/item/hand_tele/proc/can_teleport_notifies(mob/user)
var/turf/current_location = get_turf(user)
var/area/current_area = current_location.loc
@@ -280,6 +285,7 @@
return TRUE
+///Clears last teleport location when the teleporter providing our target location changes its target
/obj/item/hand_tele/proc/on_teleporter_new_target(datum/source)
SIGNAL_HANDLER
@@ -287,6 +293,7 @@
last_portal_location = null
UnregisterSignal(source, COMSIG_TELEPORTER_NEW_TARGET)
+///Removes a destroyed portal from active_portal_pairs list
/obj/item/hand_tele/proc/on_portal_destroy(obj/effect/portal/P)
SIGNAL_HANDLER
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 0a88aade6978f..c51adf91b3b10 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -291,3 +291,28 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
pixel_z = anchored_tabletop_offset
else
pixel_z = initial(pixel_z)
+
+/obj/apply_single_mat_effect(datum/material/material, mat_amount, multiplier)
+ . = ..()
+ if(!(material_flags & MATERIAL_AFFECT_STATISTICS))
+ return
+ var/integrity_mod = GET_MATERIAL_MODIFIER(material.integrity_modifier, multiplier)
+ modify_max_integrity(ceil(max_integrity * integrity_mod))
+ var/strength_mod = GET_MATERIAL_MODIFIER(material.strength_modifier, multiplier)
+ force *= strength_mod
+ throwforce *= strength_mod
+ var/list/armor_mods = material.get_armor_modifiers(multiplier)
+ set_armor(get_armor().generate_new_with_multipliers(armor_mods))
+
+///This proc is called when the material is removed from an object specifically.
+/obj/remove_single_mat_effect(datum/material/material, mat_amount, multiplier)
+ . = ..()
+ if(!(material_flags & MATERIAL_AFFECT_STATISTICS))
+ return
+ var/integrity_mod = GET_MATERIAL_MODIFIER(material.integrity_modifier, multiplier)
+ modify_max_integrity(floor(max_integrity / integrity_mod))
+ var/strength_mod = GET_MATERIAL_MODIFIER(material.strength_modifier, multiplier)
+ force /= strength_mod
+ throwforce /= strength_mod
+ var/list/armor_mods = material.get_armor_modifiers(1 / multiplier)
+ set_armor(get_armor().generate_new_with_multipliers(armor_mods))
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 58e99dc8839aa..7a3fcef368ada 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
if(isnull(card_reader_choices))
card_reader_choices = list(
"Personal",
- "Departmental",
+ "Job",
"None"
)
if(access_choices)
@@ -800,11 +800,11 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
switch(choice)
if("Personal") //only the player who swiped their id has access.
id_card = WEAKREF(id)
- name = "[id.registered_name] locker"
- desc = "now owned by [id.registered_name]. [initial(desc)]"
- if("Departmental") //anyone who has the same access permissions as this id has access
- name = "[id.assignment] closet"
- desc = "Its a [id.assignment] closet. [initial(desc)]"
+ name = "[id.registered_name]'s locker"
+ desc += " It has been ID locked to [id.registered_name]."
+ if("Job") //anyone who has the same access permissions as this id has access. Does NOT apply to the whole department.
+ name = "[id.assignment]'s locker"
+ desc += " It has been access locked to [id.assignment]s."
set_access(id.GetAccess())
if("None") //free for all
name = initial(name)
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index a4d35f02e0c09..5c2f1972c33ef 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -392,8 +392,9 @@
var/datum/material/material_datum = material
new material_datum.sheet_type(loc, FLOOR(custom_materials[material_datum] / SHEET_MATERIAL_AMOUNT, 1))
-/obj/structure/falsewall/material/mat_update_desc(mat)
- desc = "A huge chunk of [mat] used to separate rooms."
+/obj/structure/falsewall/material/finalize_material_effects(list/materials)
+ . = ..()
+ desc = "A huge chunk of [get_material_english_list(materials)] used to separate rooms."
/obj/structure/falsewall/material/toggle_open()
if(!QDELETED(src))
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index a464f41827678..f5e63bcf23bba 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -452,6 +452,10 @@
desc = "A wondrous decorated Christmas tree."
icon_state = "pine_c"
+/obj/structure/flora/tree/pine/xmas/presentless
+ icon_state = "pinepresents"
+ desc = "A wondrous decorated Christmas tree. It has presents, though none of them seem to have your name on them."
+
/obj/structure/flora/tree/pine/xmas/presents
icon_state = "pinepresents"
desc = "A wondrous decorated Christmas tree. It has presents!"
diff --git a/code/game/objects/structures/plaques/static_plaques.dm b/code/game/objects/structures/plaques/static_plaques.dm
index 3ae3b66b71b66..4b53ae0437301 100644
--- a/code/game/objects/structures/plaques/static_plaques.dm
+++ b/code/game/objects/structures/plaques/static_plaques.dm
@@ -3,6 +3,12 @@
/obj/structure/plaque/static_plaque
engraved = TRUE
+/obj/structure/plaque/static_plaque/Initialize(mapload)
+ . = ..()
+ if(isopenturf(loc) && !isProbablyWallMounted(src))
+ SET_PLANE_IMPLICIT(src, FLOOR_PLANE)
+ layer = HIGH_TURF_LAYER
+
/obj/structure/plaque/static_plaque/atmos
name = "\improper FEA Atmospherics Division plaque"
desc = "This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands."
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 1ae66f2f82f19..6c5435c1bfad8 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -90,6 +90,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
AddComponent(/datum/component/plumbing/simple_demand, extend_pipe_to_edge = TRUE)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
+ COMSIG_ATOM_EXITED = PROC_REF(on_exited),
)
AddElement(/datum/element/connect_loc, loc_connections)
@@ -233,18 +234,33 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
qdel(mist)
-/obj/machinery/shower/proc/on_entered(datum/source, atom/movable/AM)
+/obj/machinery/shower/proc/on_entered(datum/source, atom/movable/enterer)
SIGNAL_HANDLER
+
if(actually_on && reagents.total_volume)
- wash_atom(AM)
+ wash_atom(enterer)
+
+/obj/machinery/shower/proc/on_exited(datum/source, atom/movable/exiter)
+ SIGNAL_HANDLER
+
+ if(!isliving(exiter))
+ return
+
+ var/obj/machinery/shower/locate_new_shower = locate() in get_turf(exiter)
+ if(locate_new_shower && isturf(exiter.loc))
+ return
+ var/mob/living/take_his_status_effect = exiter
+ take_his_status_effect.remove_status_effect(/datum/status_effect/shower_regen)
/obj/machinery/shower/proc/wash_atom(atom/target)
target.wash(CLEAN_RAD | CLEAN_WASH)
reagents.expose(target, (TOUCH), SHOWER_EXPOSURE_MULTIPLIER * SHOWER_SPRAY_VOLUME / max(reagents.total_volume, SHOWER_SPRAY_VOLUME))
- if(isliving(target))
- var/mob/living/living_target = target
- check_heat(living_target)
- living_target.add_mood_event("shower", /datum/mood_event/nice_shower)
+ if(!isliving(target))
+ return
+ var/mob/living/living_target = target
+ check_heat(living_target)
+ living_target.add_mood_event("shower", /datum/mood_event/nice_shower)
+ living_target.apply_status_effect(/datum/status_effect/shower_regen)
/**
* Toggle whether shower is actually on and outputting water.
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index f6ea2cfe33b9c..ac7282f9386b6 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -361,13 +361,10 @@
material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
buildstack = null //No buildstack, so generate from mat datums
-/obj/structure/table/greyscale/set_custom_materials(list/materials, multiplier)
+/obj/structure/table/greyscale/finalize_material_effects(list/materials)
. = ..()
- var/list/materials_list = list()
- for(var/custom_material in custom_materials)
- var/datum/material/current_material = GET_MATERIAL_REF(custom_material)
- materials_list += "[current_material.name]"
- desc = "A square [(materials_list.len > 1) ? "amalgamation" : "piece"] of [english_list(materials_list)] on four legs. It can not move."
+ var/english_list = get_material_english_list(materials)
+ desc = "A square [(length(materials) > 1) ? "amalgamation" : "piece"] of [english_list] on four legs. It can not move."
///Table on wheels
/obj/structure/table/rolling
diff --git a/code/game/sound.dm b/code/game/sound.dm
index ee91eebffa140..f1fec41cf692d 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -228,7 +228,10 @@
if(SFX_CLOWN_STEP)
soundin = pick('sound/effects/footstep/clownstep1.ogg','sound/effects/footstep/clownstep2.ogg')
if(SFX_SUIT_STEP)
- soundin = pick('sound/effects/suitstep1.ogg','sound/effects/suitstep2.ogg')
+ soundin = pick(
+ 'sound/items/handling/armor_rustle/riot_armor/suitstep1.ogg',
+ 'sound/items/handling/armor_rustle/riot_armor/suitstep2.ogg',
+ )
if(SFX_SWING_HIT)
soundin = pick('sound/items/weapons/genhit1.ogg', 'sound/items/weapons/genhit2.ogg', 'sound/items/weapons/genhit3.ogg')
if(SFX_HISS)
@@ -525,6 +528,22 @@
'sound/effects/liquid_pour/liquid_pour2.ogg',
'sound/effects/liquid_pour/liquid_pour3.ogg',
)
+ if(SFX_SNORE_FEMALE)
+ soundin = pick_weight(list(
+ 'sound/mobs/humanoids/human/snore/snore_female1.ogg' = 33,
+ 'sound/mobs/humanoids/human/snore/snore_female2.ogg' = 33,
+ 'sound/mobs/humanoids/human/snore/snore_female3.ogg' = 33,
+ 'sound/mobs/humanoids/human/snore/snore_mimimi1.ogg' = 1,
+ ))
+ if(SFX_SNORE_MALE)
+ soundin = pick_weight(list(
+ 'sound/mobs/humanoids/human/snore/snore_male1.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_male2.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_male3.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_male3.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_male5.ogg' = 20,
+ 'sound/mobs/humanoids/human/snore/snore_mimimi2.ogg' = 1,
+ ))
if(SFX_CAT_MEOW)
soundin = pick_weight(list(
'sound/creatures/cat/cat_meow1.ogg' = 33,
diff --git a/code/game/turfs/closed/wall/material_walls.dm b/code/game/turfs/closed/wall/material_walls.dm
index 5f16a68584f3e..f8f9d58c220fb 100644
--- a/code/game/turfs/closed/wall/material_walls.dm
+++ b/code/game/turfs/closed/wall/material_walls.dm
@@ -22,6 +22,7 @@
var/datum/material/M = i
new M.sheet_type(src, FLOOR(custom_materials[M] / SHEET_MATERIAL_AMOUNT, 1))
-/turf/closed/wall/material/mat_update_desc(mat)
- desc = "A huge chunk of [mat] used to separate rooms."
+/turf/closed/wall/material/finalize_material_effects(list/materials)
+ . = ..()
+ desc = "A huge chunk of [get_material_english_list(materials)] used to separate rooms."
diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm
index b62de34f14690..c2b9963c5ed41 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -486,6 +486,15 @@
playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE)
new used_tiles.tile_type(src)
+/turf/open/apply_main_material_effects(datum/material/main_material, amount, multipier)
+ . = ..()
+ if(!main_material.turf_sound_override)
+ return
+ footstep = main_material.turf_sound_override
+ barefootstep = main_material.turf_sound_override + "barefoot"
+ clawfootstep = main_material.turf_sound_override + "claw"
+ heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+
/// Very similar to build_with_rods, this exists to allow building transport/tram girders on openspace
/turf/open/proc/build_with_titanium(obj/item/stack/sheet/mineral/titanium/used_stack, user)
var/obj/structure/transport/linear/platform = locate(/obj/structure/transport/linear, src)
diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm
index dad46fd8de6b6..c3ea369404331 100644
--- a/code/game/turfs/open/floor.dm
+++ b/code/game/turfs/open/floor.dm
@@ -382,4 +382,4 @@
. = ..()
if(.)
var/obj/item/stack/tile = .
- tile.set_mats_per_unit(custom_materials, 1)
+ tile.set_custom_materials(custom_materials)
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 5c2dcbe34d6bb..5b39caf571faa 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -770,6 +770,23 @@ GLOBAL_LIST_EMPTY(station_turfs)
inherent_explosive_resistance = explosion_block
explosive_resistance += get_explosive_block()
+/turf/apply_main_material_effects(datum/material/main_material, amount, multipier)
+ . = ..()
+ if(alpha < 255)
+ AddElement(/datum/element/turf_z_transparency)
+ main_material.setup_glow(src)
+ rust_resistance = main_material.mat_rust_resistance
+
+/turf/remove_main_material_effects(datum/material/custom_material, amount, multipier)
+ . = ..()
+ rust_resistance = initial(rust_resistance)
+ if(alpha == 255)
+ return
+ RemoveElement(/datum/element/turf_z_transparency)
+ // yeets glow
+ UnregisterSignal(SSdcs, COMSIG_STARLIGHT_COLOR_CHANGED)
+ set_light(0, 0, null)
+
/// Returns whether it is safe for an atom to move across this turf
/turf/proc/can_cross_safely(atom/movable/crossing)
return TRUE
diff --git a/code/modules/admin/verbs/adminevents.dm b/code/modules/admin/verbs/adminevents.dm
index b3c61e8e787f2..649ae3e3a34f8 100644
--- a/code/modules/admin/verbs/adminevents.dm
+++ b/code/modules/admin/verbs/adminevents.dm
@@ -121,103 +121,6 @@ ADMIN_VERB(cmd_admin_add_freeform_ai_law, R_ADMIN, "Add Custom AI Law", "Add a c
BLACKBOX_LOG_ADMIN_VERB("Add Custom AI Law")
-ADMIN_VERB(call_shuttle, R_ADMIN, "Call Shuttle", "Force a shuttle call with additional modifiers.", ADMIN_CATEGORY_EVENTS)
- if(EMERGENCY_AT_LEAST_DOCKED)
- return
-
- var/confirm = tgui_alert(user, "You sure?", "Confirm", list("Yes", "Yes (No Recall)", "No"))
- switch(confirm)
- if(null, "No")
- return
- if("Yes (No Recall)")
- SSshuttle.admin_emergency_no_recall = TRUE
- SSshuttle.emergency.mode = SHUTTLE_IDLE
-
- SSshuttle.emergency.request()
- BLACKBOX_LOG_ADMIN_VERB("Call Shuttle")
- log_admin("[key_name(user)] admin-called the emergency shuttle.")
- message_admins(span_adminnotice("[key_name_admin(user)] admin-called the emergency shuttle[confirm == "Yes (No Recall)" ? " (non-recallable)" : ""]."))
-
-ADMIN_VERB(cancel_shuttle, R_ADMIN, "Cancel Shuttle", "Recall the shuttle, regardless of circumstances.", ADMIN_CATEGORY_EVENTS)
- if(EMERGENCY_AT_LEAST_DOCKED)
- return
-
- if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
- return
- SSshuttle.admin_emergency_no_recall = FALSE
- SSshuttle.emergency.cancel()
- BLACKBOX_LOG_ADMIN_VERB("Cancel Shuttle")
- log_admin("[key_name(user)] admin-recalled the emergency shuttle.")
- message_admins(span_adminnotice("[key_name_admin(user)] admin-recalled the emergency shuttle."))
-
-ADMIN_VERB(disable_shuttle, R_ADMIN, "Disable Shuttle", "Those fuckers aren't getting out.", ADMIN_CATEGORY_EVENTS)
- if(SSshuttle.emergency.mode == SHUTTLE_DISABLED)
- to_chat(user, span_warning("Error, shuttle is already disabled."))
- return
-
- if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
- return
-
- message_admins(span_adminnotice("[key_name_admin(user)] disabled the shuttle."))
-
- SSshuttle.last_mode = SSshuttle.emergency.mode
- SSshuttle.last_call_time = SSshuttle.emergency.timeLeft(1)
- SSshuttle.admin_emergency_no_recall = TRUE
- SSshuttle.emergency.setTimer(0)
- SSshuttle.emergency.mode = SHUTTLE_DISABLED
- priority_announce(
- text = "Emergency Shuttle uplink failure, shuttle disabled until further notice.",
- title = "Uplink Failure",
- sound = 'sound/announcer/announcement/announce_dig.ogg',
- sender_override = "Emergency Shuttle Uplink Alert",
- color_override = "grey",
- )
-
-ADMIN_VERB(enable_shuttle, R_ADMIN, "Enable Shuttle", "Those fuckers ARE getting out.", ADMIN_CATEGORY_EVENTS)
- if(SSshuttle.emergency.mode != SHUTTLE_DISABLED)
- to_chat(user, span_warning("Error, shuttle not disabled."))
- return
-
- if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
- return
-
- message_admins(span_adminnotice("[key_name_admin(user)] enabled the emergency shuttle."))
- SSshuttle.admin_emergency_no_recall = FALSE
- SSshuttle.emergency_no_recall = FALSE
- if(SSshuttle.last_mode == SHUTTLE_DISABLED) //If everything goes to shit, fix it.
- SSshuttle.last_mode = SHUTTLE_IDLE
-
- SSshuttle.emergency.mode = SSshuttle.last_mode
- if(SSshuttle.last_call_time < 10 SECONDS && SSshuttle.last_mode != SHUTTLE_IDLE)
- SSshuttle.last_call_time = 10 SECONDS //Make sure no insta departures.
- SSshuttle.emergency.setTimer(SSshuttle.last_call_time)
- priority_announce(
- text = "Emergency Shuttle uplink reestablished, shuttle enabled.",
- title = "Uplink Restored",
- sound = 'sound/announcer/announcement/announce_dig.ogg',
- sender_override = "Emergency Shuttle Uplink Alert",
- color_override = "green",
- )
-
-ADMIN_VERB(hostile_environment, R_ADMIN, "Hostile Environment", "Disable the shuttle, naturally.", ADMIN_CATEGORY_EVENTS)
- switch(tgui_alert(user, "Select an Option", "Hostile Environment Manager", list("Enable", "Disable", "Clear All")))
- if("Enable")
- if (SSshuttle.hostile_environments["Admin"] == TRUE)
- to_chat(user, span_warning("Error, admin hostile environment already enabled."))
- else
- message_admins(span_adminnotice("[key_name_admin(user)] Enabled an admin hostile environment"))
- SSshuttle.registerHostileEnvironment("Admin")
- if("Disable")
- if (!SSshuttle.hostile_environments["Admin"])
- to_chat(user, span_warning("Error, no admin hostile environment found."))
- else
- message_admins(span_adminnotice("[key_name_admin(user)] Disabled the admin hostile environment"))
- SSshuttle.clearHostileEnvironment("Admin")
- if("Clear All")
- message_admins(span_adminnotice("[key_name_admin(user)] Disabled all current hostile environment sources"))
- SSshuttle.hostile_environments.Cut()
- SSshuttle.checkHostileEnvironment()
-
ADMIN_VERB(toggle_nuke, R_DEBUG|R_ADMIN, "Toggle Nuke", "Arm or disarm a nuke.", ADMIN_CATEGORY_EVENTS)
var/list/nukes = list()
for (var/obj/machinery/nuclearbomb/bomb in world)
diff --git a/code/modules/admin/verbs/adminshuttle.dm b/code/modules/admin/verbs/adminshuttle.dm
new file mode 100644
index 0000000000000..6f2a0d42b190c
--- /dev/null
+++ b/code/modules/admin/verbs/adminshuttle.dm
@@ -0,0 +1,196 @@
+ADMIN_VERB(change_shuttle_events, R_ADMIN|R_FUN, "Change Shuttle Events", "Change the events on a shuttle.", ADMIN_CATEGORY_SHUTTLE)
+ //At least for now, just letting admins modify the emergency shuttle is fine
+ var/obj/docking_port/mobile/port = SSshuttle.emergency
+
+ if(!port)
+ to_chat(user, span_admin("Uh oh, couldn't find the escape shuttle!"))
+
+ var/list/options = list("Clear"="Clear")
+
+ //Grab the active events so we know which ones we can Add or Remove
+ var/list/active = list()
+ for(var/datum/shuttle_event/event in port.event_list)
+ active[event.type] = event
+
+ for(var/datum/shuttle_event/event as anything in subtypesof(/datum/shuttle_event))
+ options[((event in active) ? "(Remove)" : "(Add)") + initial(event.name)] = event
+
+ //Throw up an ugly menu with the shuttle events and the options to add or remove them, or clear them all
+ var/result = input(user, "Choose an event to add/remove", "Shuttle Events") as null|anything in sort_list(options)
+
+ if(result == "Clear")
+ port.event_list.Cut()
+ message_admins("[key_name_admin(user)] has cleared the shuttle events on: [port]")
+ else if(options[result])
+ var/typepath = options[result]
+ if(typepath in active)
+ port.event_list.Remove(active[options[result]])
+ message_admins("[key_name_admin(user)] has removed '[active[result]]' from [port].")
+ else
+ message_admins("[key_name_admin(user)] has added '[typepath]' to [port].")
+ port.add_shuttle_event(typepath)
+
+ADMIN_VERB(call_shuttle, R_ADMIN, "Call Shuttle", "Force a shuttle call with additional modifiers.", ADMIN_CATEGORY_SHUTTLE)
+ if(EMERGENCY_AT_LEAST_DOCKED)
+ return
+
+ var/confirm = tgui_alert(user, "You sure?", "Confirm", list("Yes", "Yes (No Recall)", "No"))
+ switch(confirm)
+ if(null, "No")
+ return
+ if("Yes (No Recall)")
+ SSshuttle.admin_emergency_no_recall = TRUE
+ SSshuttle.emergency.mode = SHUTTLE_IDLE
+
+ SSshuttle.emergency.request()
+ BLACKBOX_LOG_ADMIN_VERB("Call Shuttle")
+ log_admin("[key_name(user)] admin-called the emergency shuttle.")
+ message_admins(span_adminnotice("[key_name_admin(user)] admin-called the emergency shuttle[confirm == "Yes (No Recall)" ? " (non-recallable)" : ""]."))
+
+ADMIN_VERB(cancel_shuttle, R_ADMIN, "Cancel Shuttle", "Recall the shuttle, regardless of circumstances.", ADMIN_CATEGORY_SHUTTLE)
+ if(EMERGENCY_AT_LEAST_DOCKED)
+ return
+
+ if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
+ return
+ SSshuttle.admin_emergency_no_recall = FALSE
+ SSshuttle.emergency.cancel()
+ BLACKBOX_LOG_ADMIN_VERB("Cancel Shuttle")
+ log_admin("[key_name(user)] admin-recalled the emergency shuttle.")
+ message_admins(span_adminnotice("[key_name_admin(user)] admin-recalled the emergency shuttle."))
+
+ADMIN_VERB(disable_shuttle, R_ADMIN, "Disable Shuttle", "Those fuckers aren't getting out.", ADMIN_CATEGORY_SHUTTLE)
+ if(SSshuttle.emergency.mode == SHUTTLE_DISABLED)
+ to_chat(user, span_warning("Error, shuttle is already disabled."))
+ return
+
+ if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
+ return
+
+ message_admins(span_adminnotice("[key_name_admin(user)] disabled the shuttle."))
+
+ SSshuttle.last_mode = SSshuttle.emergency.mode
+ SSshuttle.last_call_time = SSshuttle.emergency.timeLeft(1)
+ SSshuttle.admin_emergency_no_recall = TRUE
+ SSshuttle.emergency.setTimer(0)
+ SSshuttle.emergency.mode = SHUTTLE_DISABLED
+ priority_announce(
+ text = "Emergency Shuttle uplink failure, shuttle disabled until further notice.",
+ title = "Uplink Failure",
+ sound = 'sound/announcer/announcement/announce_dig.ogg',
+ sender_override = "Emergency Shuttle Uplink Alert",
+ color_override = "grey",
+ )
+
+ADMIN_VERB(enable_shuttle, R_ADMIN, "Enable Shuttle", "Those fuckers ARE getting out.", ADMIN_CATEGORY_SHUTTLE)
+ if(SSshuttle.emergency.mode != SHUTTLE_DISABLED)
+ to_chat(user, span_warning("Error, shuttle not disabled."))
+ return
+
+ if(tgui_alert(user, "You sure?", "Confirm", list("Yes", "No")) != "Yes")
+ return
+
+ message_admins(span_adminnotice("[key_name_admin(user)] enabled the emergency shuttle."))
+ SSshuttle.admin_emergency_no_recall = FALSE
+ SSshuttle.emergency_no_recall = FALSE
+ if(SSshuttle.last_mode == SHUTTLE_DISABLED) //If everything goes to shit, fix it.
+ SSshuttle.last_mode = SHUTTLE_IDLE
+
+ SSshuttle.emergency.mode = SSshuttle.last_mode
+ if(SSshuttle.last_call_time < 10 SECONDS && SSshuttle.last_mode != SHUTTLE_IDLE)
+ SSshuttle.last_call_time = 10 SECONDS //Make sure no insta departures.
+ SSshuttle.emergency.setTimer(SSshuttle.last_call_time)
+ priority_announce(
+ text = "Emergency Shuttle uplink reestablished, shuttle enabled.",
+ title = "Uplink Restored",
+ sound = 'sound/announcer/announcement/announce_dig.ogg',
+ sender_override = "Emergency Shuttle Uplink Alert",
+ color_override = "green",
+ )
+
+ADMIN_VERB(hostile_environment, R_ADMIN, "Hostile Environment", "Disable the shuttle, naturally.", ADMIN_CATEGORY_SHUTTLE)
+ switch(tgui_alert(user, "Select an Option", "Hostile Environment Manager", list("Enable", "Disable", "Clear All")))
+ if("Enable")
+ if (SSshuttle.hostile_environments["Admin"] == TRUE)
+ to_chat(user, span_warning("Error, admin hostile environment already enabled."))
+ else
+ message_admins(span_adminnotice("[key_name_admin(user)] Enabled an admin hostile environment"))
+ SSshuttle.registerHostileEnvironment("Admin")
+ if("Disable")
+ if (!SSshuttle.hostile_environments["Admin"])
+ to_chat(user, span_warning("Error, no admin hostile environment found."))
+ else
+ message_admins(span_adminnotice("[key_name_admin(user)] Disabled the admin hostile environment"))
+ SSshuttle.clearHostileEnvironment("Admin")
+ if("Clear All")
+ message_admins(span_adminnotice("[key_name_admin(user)] Disabled all current hostile environment sources"))
+ SSshuttle.hostile_environments.Cut()
+ SSshuttle.checkHostileEnvironment()
+
+ADMIN_VERB(shuttle_panel, R_ADMIN, "Shuttle Manipulator", "Opens the shuttle manipulator UI.", ADMIN_CATEGORY_SHUTTLE)
+ SSshuttle.ui_interact(user.mob)
+
+/obj/docking_port/mobile/proc/admin_fly_shuttle(mob/user)
+ var/list/options = list()
+
+ for(var/port in SSshuttle.stationary_docking_ports)
+ if (istype(port, /obj/docking_port/stationary/transit))
+ continue // please don't do this
+ var/obj/docking_port/stationary/S = port
+ if (canDock(S) == SHUTTLE_CAN_DOCK)
+ options[S.name || S.shuttle_id] = S
+
+ options += "--------"
+ options += "Infinite Transit"
+ options += "Delete Shuttle"
+ options += "Into The Sunset (delete & greentext 'escape')"
+
+ var/selection = tgui_input_list(user, "Select where to fly [name || shuttle_id]:", "Fly Shuttle", options)
+ if(isnull(selection))
+ return
+
+ switch(selection)
+ if("Infinite Transit")
+ destination = null
+ mode = SHUTTLE_IGNITING
+ setTimer(ignitionTime)
+
+ if("Delete Shuttle")
+ if(tgui_alert(user, "Really delete [name || shuttle_id]?", "Delete Shuttle", list("Cancel", "Really!")) != "Really!")
+ return
+ jumpToNullSpace()
+
+ if("Into The Sunset (delete & greentext 'escape')")
+ if(tgui_alert(user, "Really delete [name || shuttle_id] and greentext escape objectives?", "Delete Shuttle", list("Cancel", "Really!")) != "Really!")
+ return
+ intoTheSunset()
+
+ else
+ if(options[selection])
+ request(options[selection])
+
+/obj/docking_port/mobile/emergency/admin_fly_shuttle(mob/user)
+ return // use the existing verbs for this
+
+/obj/docking_port/mobile/arrivals/admin_fly_shuttle(mob/user)
+ switch(tgui_alert(user, "Would you like to fly the arrivals shuttle once or change its destination?", "Fly Shuttle", list("Fly", "Retarget", "Cancel")))
+ if("Cancel")
+ return
+ if("Fly")
+ return ..()
+
+ var/list/options = list()
+
+ for(var/port in SSshuttle.stationary_docking_ports)
+ if (istype(port, /obj/docking_port/stationary/transit))
+ continue // please don't do this
+ var/obj/docking_port/stationary/S = port
+ if (canDock(S) == SHUTTLE_CAN_DOCK)
+ options[S.name || S.shuttle_id] = S
+
+ var/selection = tgui_input_list(user, "New arrivals destination", "Fly Shuttle", options)
+ if(isnull(selection))
+ return
+ target_dock = options[selection]
+ if(!QDELETED(target_dock))
+ destination = target_dock
diff --git a/code/modules/admin/verbs/change_shuttle_events.dm b/code/modules/admin/verbs/change_shuttle_events.dm
deleted file mode 100644
index 258370df3b7b5..0000000000000
--- a/code/modules/admin/verbs/change_shuttle_events.dm
+++ /dev/null
@@ -1,31 +0,0 @@
-ADMIN_VERB(change_shuttle_events, R_ADMIN|R_FUN, "Change Shuttle Events", "Change the events on a shuttle.", ADMIN_CATEGORY_EVENTS)
- //At least for now, just letting admins modify the emergency shuttle is fine
- var/obj/docking_port/mobile/port = SSshuttle.emergency
-
- if(!port)
- to_chat(user, span_admin("Uh oh, couldn't find the escape shuttle!"))
-
- var/list/options = list("Clear"="Clear")
-
- //Grab the active events so we know which ones we can Add or Remove
- var/list/active = list()
- for(var/datum/shuttle_event/event in port.event_list)
- active[event.type] = event
-
- for(var/datum/shuttle_event/event as anything in subtypesof(/datum/shuttle_event))
- options[((event in active) ? "(Remove)" : "(Add)") + initial(event.name)] = event
-
- //Throw up an ugly menu with the shuttle events and the options to add or remove them, or clear them all
- var/result = input(user, "Choose an event to add/remove", "Shuttle Events") as null|anything in sort_list(options)
-
- if(result == "Clear")
- port.event_list.Cut()
- message_admins("[key_name_admin(user)] has cleared the shuttle events on: [port]")
- else if(options[result])
- var/typepath = options[result]
- if(typepath in active)
- port.event_list.Remove(active[options[result]])
- message_admins("[key_name_admin(user)] has removed '[active[result]]' from [port].")
- else
- message_admins("[key_name_admin(user)] has added '[typepath]' to [port].")
- port.add_shuttle_event(typepath)
diff --git a/code/modules/admin/verbs/ert.dm b/code/modules/admin/verbs/ert.dm
index 23f1627503e06..71722eb6d64ab 100644
--- a/code/modules/admin/verbs/ert.dm
+++ b/code/modules/admin/verbs/ert.dm
@@ -77,6 +77,8 @@
else
ertemplate = new /datum/ert/centcom_official
+ var/human_authority_setting = CONFIG_GET(string/human_authority)
+
var/list/settings = list(
"preview_callback" = CALLBACK(src, PROC_REF(makeERTPreviewIcon)),
"mainsettings" = list(
@@ -84,7 +86,7 @@
"teamsize" = list("desc" = "Team Size", "type" = "number", "value" = ertemplate.teamsize),
"mission" = list("desc" = "Mission", "type" = "string", "value" = ertemplate.mission),
"polldesc" = list("desc" = "Ghost poll description", "type" = "string", "value" = ertemplate.polldesc),
- "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "[(CONFIG_GET(flag/enforce_human_authority) ? "Yes" : "No")]"),
+ "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "[(human_authority_setting == HUMAN_AUTHORITY_ENFORCED ? "Yes" : "No")]"),
"open_armory" = list("desc" = "Open armory doors", "type" = "boolean", "value" = "[(ertemplate.opendoors ? "Yes" : "No")]"),
"leader_experience" = list("desc" = "Pick an experienced leader", "type" = "boolean", "value" = "[(ertemplate.leader_experience ? "Yes" : "No")]"),
"random_names" = list("desc" = "Randomize names", "type" = "boolean", "value" = "[(ertemplate.random_names ? "Yes" : "No")]"),
diff --git a/code/modules/admin/verbs/shuttlepanel.dm b/code/modules/admin/verbs/shuttlepanel.dm
deleted file mode 100644
index ae0ad4dcde3c5..0000000000000
--- a/code/modules/admin/verbs/shuttlepanel.dm
+++ /dev/null
@@ -1,68 +0,0 @@
-ADMIN_VERB(shuttle_panel, R_ADMIN, "Shuttle Manipulator", "Opens the shuttle manipulator UI.", ADMIN_CATEGORY_EVENTS)
- SSshuttle.ui_interact(user.mob)
-
-/obj/docking_port/mobile/proc/admin_fly_shuttle(mob/user)
- var/list/options = list()
-
- for(var/port in SSshuttle.stationary_docking_ports)
- if (istype(port, /obj/docking_port/stationary/transit))
- continue // please don't do this
- var/obj/docking_port/stationary/S = port
- if (canDock(S) == SHUTTLE_CAN_DOCK)
- options[S.name || S.shuttle_id] = S
-
- options += "--------"
- options += "Infinite Transit"
- options += "Delete Shuttle"
- options += "Into The Sunset (delete & greentext 'escape')"
-
- var/selection = tgui_input_list(user, "Select where to fly [name || shuttle_id]:", "Fly Shuttle", options)
- if(isnull(selection))
- return
-
- switch(selection)
- if("Infinite Transit")
- destination = null
- mode = SHUTTLE_IGNITING
- setTimer(ignitionTime)
-
- if("Delete Shuttle")
- if(tgui_alert(user, "Really delete [name || shuttle_id]?", "Delete Shuttle", list("Cancel", "Really!")) != "Really!")
- return
- jumpToNullSpace()
-
- if("Into The Sunset (delete & greentext 'escape')")
- if(tgui_alert(user, "Really delete [name || shuttle_id] and greentext escape objectives?", "Delete Shuttle", list("Cancel", "Really!")) != "Really!")
- return
- intoTheSunset()
-
- else
- if(options[selection])
- request(options[selection])
-
-/obj/docking_port/mobile/emergency/admin_fly_shuttle(mob/user)
- return // use the existing verbs for this
-
-/obj/docking_port/mobile/arrivals/admin_fly_shuttle(mob/user)
- switch(tgui_alert(user, "Would you like to fly the arrivals shuttle once or change its destination?", "Fly Shuttle", list("Fly", "Retarget", "Cancel")))
- if("Cancel")
- return
- if("Fly")
- return ..()
-
- var/list/options = list()
-
- for(var/port in SSshuttle.stationary_docking_ports)
- if (istype(port, /obj/docking_port/stationary/transit))
- continue // please don't do this
- var/obj/docking_port/stationary/S = port
- if (canDock(S) == SHUTTLE_CAN_DOCK)
- options[S.name || S.shuttle_id] = S
-
- var/selection = tgui_input_list(user, "New arrivals destination", "Fly Shuttle", options)
- if(isnull(selection))
- return
- target_dock = options[selection]
- if(!QDELETED(target_dock))
- destination = target_dock
-
diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm
index 75ed4aab4a59c..4fde1e30d1a0e 100644
--- a/code/modules/admin/view_variables/topic.dm
+++ b/code/modules/admin/view_variables/topic.dm
@@ -113,10 +113,51 @@
admin_ticket_log(L, "[log_msg]")
vv_update_display(L, Text, "[newamt]")
+ else if(href_list["item_to_tweak"] && href_list["var_tweak"])
+ if(!check_rights(NONE))
+ return
+
+ var/obj/item/editing = locate(href_list["item_to_tweak"])
+ if(!istype(editing) || QDELING(editing))
+ return
+
+ var/existing_val = -1
+ switch(href_list["var_tweak"])
+ if("damtype")
+ existing_val = editing.damtype
+ if("force")
+ existing_val = editing.force
+ if("wound")
+ existing_val = editing.wound_bonus
+ if("bare wound")
+ existing_val = editing.bare_wound_bonus
+ else
+ CRASH("Invalid var_tweak passed to item vv set var: [href_list["var_tweak"]]")
+
+ var/new_val
+ if(href_list["var_tweak"] == "damtype")
+ new_val = input("Enter the new damage type for [editing]","Set Damtype", existing_val) in list(BRUTE, BURN, TOX, OXY, STAMINA, BRAIN)
+ else
+ new_val = input("Enter the new value for [editing]'s [href_list["var_tweak"]]","Set [href_list["var_tweak"]]", existing_val) as num|null
+ if(isnull(new_val) || new_val == existing_val || QDELETED(editing) || !check_rights(NONE))
+ return
+
+ switch(href_list["var_tweak"])
+ if("damtype")
+ editing.damtype = new_val
+ if("force")
+ editing.force = new_val
+ if("wound")
+ editing.wound_bonus = new_val
+ if("bare wound")
+ editing.bare_wound_bonus = new_val
+
+ message_admins("[key_name(usr)] set [editing]'s [href_list["var_tweak"]] to [new_val] (was [existing_val])")
+ log_admin("[key_name(usr)] set [editing]'s [href_list["var_tweak"]] to [new_val] (was [existing_val])")
+ vv_update_display(editing, href_list["var_tweak"], istext(new_val) ? uppertext(new_val) : new_val)
//Finally, refresh if something modified the list.
if(href_list["datumrefresh"])
var/datum/DAT = locate(href_list["datumrefresh"])
if(isdatum(DAT) || istype(DAT, /client) || islist(DAT))
debug_variables(DAT)
-
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index 27c1fd5a0ea89..741bdeeed7b7c 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -381,7 +381,10 @@
if(ishuman(spawned_mob))
var/mob/living/carbon/human/human_mob = spawned_mob
- human_mob.set_species(species_type)
+ // ignore if it's already the same
+ if(human_mob.dna.species != species_type)
+ human_mob.set_species(species_type)
+
human_mob.equipOutfit(outfit)
op_mind.special_role = role_to_play
@@ -411,6 +414,7 @@
desc = "Call up some backup from ARC for monkey mayhem."
icon = 'icons/obj/devices/voice.dmi'
icon_state = "walkietalkie"
+ spawn_type = /mob/living/carbon/human/species/monkey
species_type = /datum/species/monkey
outfit = /datum/outfit/syndicate_monkey
antag_datum = /datum/antagonist/syndicate_monkey
@@ -424,13 +428,26 @@
monkey_man.fully_replace_character_name(monkey_man.real_name, pick(GLOB.syndicate_monkey_names))
- monkey_man.make_clever_and_no_dna_scramble()
+ monkey_man.crewlike_monkify()
+
+ // fuck you i am no longer playing around. this goes against the entire soul of the item
+ RegisterSignal(monkey_man, COMSIG_SPECIES_GAIN, PROC_REF(allergy))
+
monkey_man.mind.enslave_mind_to_creator(user)
var/obj/item/implant/explosive/imp = new(src)
imp.implant(monkey_man, user)
+/obj/item/antag_spawner/loadout/monkey_man/proc/allergy(mob/living/second_lifer, datum/species/folly_species)
+ SIGNAL_HANDLER
+ if(is_simian(second_lifer))
+ return
+ // timer is long to let them panic and consider their folly, and because allergies take a while
+ second_lifer.visible_message(span_bolddanger("[second_lifer] starts swelling unhealthily in size. It looks like they had an allergic reaction to becoming a [folly_species]!"), span_userdanger("As your monkey features morph, you feel your allergies coming in. Oh no."))
+ // no brain or items. organs are funny though
+ second_lifer.inflate_gib(drop_bitflags = DROP_ORGANS|DROP_BODYPARTS, gib_time = 25 SECONDS, anim_time = 40 SECONDS)
+
/datum/outfit/syndicate_monkey
name = "Syndicate Monkey Agent Kit"
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index e7cde6d1425c2..e334b17e3603a 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -34,7 +34,8 @@ Runes can either be invoked by one's self or with many different cultists. Each
icon = 'icons/obj/antags/cult/rune.dmi'
icon_state = "1"
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
color = RUNE_COLOR_RED
/// The name of the rune to cultists
diff --git a/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm b/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm
index 5491251d1aa53..20eccc6977900 100644
--- a/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm
+++ b/code/modules/antagonists/fugitive/hunters/hunter_outfits.dm
@@ -249,7 +249,7 @@
/obj/item/clothing/mask/chameleon = 20,
/obj/item/language_manual/codespeak_manual/unlimited = 10,
/obj/item/storage/mail_counterfeit_device = 10,
- /obj/item/traitor_machine_trapper = 10,
+ /obj/item/clothing/glasses/thermal = 10,
/obj/item/gun/ballistic/automatic/pistol/clandestine/fisher = 10,
))
diff --git a/code/modules/antagonists/heretic/magic/cosmic_runes.dm b/code/modules/antagonists/heretic/magic/cosmic_runes.dm
index 1003920dfa9ad..be8f103678e09 100644
--- a/code/modules/antagonists/heretic/magic/cosmic_runes.dm
+++ b/code/modules/antagonists/heretic/magic/cosmic_runes.dm
@@ -57,7 +57,8 @@
icon = 'icons/obj/service/hand_of_god_structures.dmi'
icon_state = "cosmic_rune"
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
/// The other rune this rune is linked with
var/datum/weakref/linked_rune
/// Effect for when someone teleports
@@ -133,7 +134,8 @@
name = "cosmic rune"
icon = 'icons/obj/service/hand_of_god_structures.dmi'
icon_state = "cosmic_rune_fade"
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
anchored = TRUE
duration = 5
@@ -147,7 +149,8 @@
name = "cosmic rune"
icon = 'icons/obj/service/hand_of_god_structures.dmi'
icon_state = "cosmic_rune_light"
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
anchored = TRUE
duration = 5
diff --git a/code/modules/antagonists/heretic/rust_effect.dm b/code/modules/antagonists/heretic/rust_effect.dm
index ad86fa5a747f5..9af6c4f6d89a0 100644
--- a/code/modules/antagonists/heretic/rust_effect.dm
+++ b/code/modules/antagonists/heretic/rust_effect.dm
@@ -3,9 +3,9 @@
icon = 'icons/effects/eldritch.dmi'
icon_state = "small_rune_1"
anchored = TRUE
- layer = LOW_SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = LOWER_RUNE_LAYER
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
- plane = GAME_PLANE
/obj/effect/glowing_rune/Initialize(mapload)
. = ..()
diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm
index d60129ae3d930..387301f2c489d 100644
--- a/code/modules/antagonists/heretic/status_effects/buffs.dm
+++ b/code/modules/antagonists/heretic/status_effects/buffs.dm
@@ -254,13 +254,13 @@
var/static/list/caretaking_traits = list(TRAIT_GODMODE, TRAIT_HANDS_BLOCKED, TRAIT_IGNORESLOWDOWN, TRAIT_SECLUDED_LOCATION)
/datum/status_effect/caretaker_refuge/on_apply()
- owner.add_traits(caretaking_traits, TRAIT_STATUS_EFFECT(id))
animate(owner, alpha = 45,time = 0.5 SECONDS)
owner.density = FALSE
RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING), PROC_REF(on_focus_lost))
RegisterSignal(owner, COMSIG_MOB_BEFORE_SPELL_CAST, PROC_REF(prevent_spell_usage))
RegisterSignal(owner, COMSIG_ATOM_HOLYATTACK, PROC_REF(nullrod_handler))
RegisterSignal(owner, COMSIG_CARBON_CUFF_ATTEMPTED, PROC_REF(prevent_cuff))
+ owner.add_traits(caretaking_traits, TRAIT_STATUS_EFFECT(id))
return TRUE
/datum/status_effect/caretaker_refuge/on_remove()
@@ -288,7 +288,7 @@
/datum/status_effect/caretaker_refuge/proc/on_focus_lost()
SIGNAL_HANDLER
to_chat(owner, span_danger("Without a focus, your refuge weakens and dissipates!"))
- owner.remove_status_effect(type)
+ qdel(src)
/datum/status_effect/caretaker_refuge/proc/prevent_spell_usage(datum/source, datum/spell)
SIGNAL_HANDLER
diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm
index 72b224d117dd4..b93b52eb8e8e9 100644
--- a/code/modules/antagonists/heretic/structures/carving_knife.dm
+++ b/code/modules/antagonists/heretic/structures/carving_knife.dm
@@ -175,7 +175,7 @@
/obj/structure/trap/eldritch/on_entered(datum/source, atom/movable/entering_atom)
if(!isliving(entering_atom))
- return ..()
+ return
var/mob/living/living_mob = entering_atom
if(WEAKREF(living_mob) == owner)
return
diff --git a/code/modules/antagonists/heretic/transmutation_rune.dm b/code/modules/antagonists/heretic/transmutation_rune.dm
index 02c27c353a90e..a2bf4af77f4fa 100644
--- a/code/modules/antagonists/heretic/transmutation_rune.dm
+++ b/code/modules/antagonists/heretic/transmutation_rune.dm
@@ -7,7 +7,8 @@
anchored = TRUE
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
///Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
var/is_in_use = FALSE
@@ -222,8 +223,8 @@
pixel_x = -30
pixel_y = 18
pixel_z = -48
- plane = GAME_PLANE
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
greyscale_config = /datum/greyscale_config/heretic_rune
/// We only set this state after setting the colour, otherwise the animation doesn't colour correctly
var/animation_state = "transmutation_rune_draw"
diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm
index 6038c5e6820b7..6299bde9275cd 100644
--- a/code/modules/antagonists/space_dragon/carp_rift.dm
+++ b/code/modules/antagonists/space_dragon/carp_rift.dm
@@ -111,6 +111,8 @@
healing_color = COLOR_BLUE, \
)
+ AddComponent(/datum/component/fishing_spot, /datum/fish_source/carp_rift)
+
gravity_aura = new(
/* host = */src,
/* range = */15,
diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm
index 090c8f66dc82e..74b0c60a872ce 100644
--- a/code/modules/antagonists/space_dragon/space_dragon.dm
+++ b/code/modules/antagonists/space_dragon/space_dragon.dm
@@ -112,7 +112,7 @@
var/icon/icon = icon('icons/mob/nonhuman-player/spacedragon.dmi', "spacedragon")
icon.Blend(COLOR_STRONG_VIOLET, ICON_MULTIPLY)
- icon.Blend(icon('icons/mob/nonhuman-player/spacedragon.dmi', "overlay_base"), ICON_OVERLAY)
+ icon.Blend(icon('icons/mob/nonhuman-player/spacedragon.dmi', "spacedragon_overlay_base"), ICON_OVERLAY)
icon.Crop(10, 9, 54, 53)
icon.Scale(ANTAGONIST_PREVIEW_ICON_SIZE, ANTAGONIST_PREVIEW_ICON_SIZE)
diff --git a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm
index 6e722b1515eb4..3367540239703 100644
--- a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm
+++ b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm
@@ -7,6 +7,7 @@
/datum/traitor_objective/ultimate/infect_ai = 1,
/datum/traitor_objective/ultimate/romerol = 1,
/datum/traitor_objective/ultimate/supermatter_cascade = 1,
+ /datum/traitor_objective/ultimate/no_escape = 1,
)
weight = 100
diff --git a/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm b/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm
new file mode 100644
index 0000000000000..12cbdcf2d01fa
--- /dev/null
+++ b/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm
@@ -0,0 +1,48 @@
+/datum/traitor_objective/ultimate/no_escape
+ name = "Attach a beacon to the escape shuttle that will attract a singularity to consume everything."
+ description = "Go to %AREA%, and receive the smuggled beacon. Set up the beacon anywhere on the shuttle, \
+ and charge it using an inducer then, IT COMES. Warning: The singularity will consume all in it's path, you included."
+
+ ///area type the objective owner must be in to receive the satellites
+ var/area/beacon_spawn_area_type
+ ///checker on whether we have sent the beacon yet
+ var/sent_beacon = FALSE
+
+/datum/traitor_objective/ultimate/no_escape/generate_objective(datum/mind/generating_for, list/possible_duplicates)
+ var/list/possible_areas = GLOB.the_station_areas.Copy()
+ for(var/area/possible_area as anything in possible_areas)
+ if(!ispath(possible_area, /area/station/maintenance/solars) && !ispath(possible_area, /area/station/solars))
+ possible_areas -= possible_area
+ if(length(possible_areas) == 0)
+ return FALSE
+ beacon_spawn_area_type = pick(possible_areas)
+ replace_in_name("%AREA%", initial(beacon_spawn_area_type.name))
+ return TRUE
+
+/datum/traitor_objective/ultimate/no_escape/generate_ui_buttons(mob/user)
+ var/list/buttons = list()
+ if(!sent_beacon)
+ buttons += add_ui_button("", "Pressing this will call down a pod with the smuggled beacon.", "beacon", "beacon")
+ return buttons
+
+/datum/traitor_objective/ultimate/no_escape/ui_perform_action(mob/living/user, action)
+ . = ..()
+ switch(action)
+ if("beacon")
+ if(sent_beacon)
+ return
+ var/area/delivery_area = get_area(user)
+ if(delivery_area.type != beacon_spawn_area_type)
+ to_chat(user, span_warning("You must be in [initial(beacon_spawn_area_type.name)] to receive the smuggled beacon."))
+ return
+ sent_beacon = TRUE
+ podspawn(list(
+ "target" = get_turf(user),
+ "style" = /datum/pod_style/syndicate,
+ "spawn" = list(
+ /obj/item/sbeacondrop/no_escape,
+ /obj/item/inducer/syndicate,
+ /obj/item/wrench
+ )
+ ))
+
diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm
index 2134e2862a461..e5611411a67e8 100644
--- a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm
+++ b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm
@@ -299,8 +299,8 @@
pixel_y = 16
pixel_z = -48
anchored = TRUE
- layer = SIGIL_LAYER
- plane = GAME_PLANE
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
duration = 0 SECONDS
/obj/effect/temp_visual/wizard_rune/Initialize(mapload)
diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm b/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm
index 009853bed22d1..6d08cd539fed5 100644
--- a/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm
+++ b/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm
@@ -21,7 +21,8 @@
anchored = TRUE
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_ATTACK_PAW
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- layer = SIGIL_LAYER
+ plane = FLOOR_PLANE
+ layer = RUNE_LAYER
/// How many prior grand rituals have been completed?
var/potency = 0
/// Time to take per invocation of rune.
@@ -393,7 +394,7 @@
mergeable_decal = FALSE
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
clean_type = CLEAN_TYPE_HARD_DECAL
- layer = SIGIL_LAYER
+ layer = RUNE_LAYER
/obj/effect/decal/cleanable/grand_remains/cheese
name = "cheese soot marks"
diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm
index bc302a188d825..39e9cf925da62 100644
--- a/code/modules/asset_cache/asset_list.dm
+++ b/code/modules/asset_cache/asset_list.dm
@@ -391,6 +391,11 @@ GLOBAL_LIST_EMPTY(asset_datums)
to_generate += list(args.Copy())
/datum/asset/spritesheet/proc/queuedInsert(sprite_name, icon/I, icon_state="", dir=SOUTH, frame=1, moving=FALSE)
+#ifdef UNIT_TESTS
+ if (I && icon_state && !(icon_state in icon_states(I))) // check the base icon prior to extracting the state we want
+ stack_trace("Tried to insert nonexistent icon_state '[icon_state]' from [I] into spritesheet [name] ([type])")
+ return
+#endif
I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving)
if (!I || !length(icon_states(I))) // that direction or state doesn't exist
return
diff --git a/code/modules/asset_cache/assets/plumbing.dm b/code/modules/asset_cache/assets/plumbing.dm
index 73b1dfc7df57d..980a85e83b040 100644
--- a/code/modules/asset_cache/assets/plumbing.dm
+++ b/code/modules/asset_cache/assets/plumbing.dm
@@ -17,7 +17,6 @@
"synthesizer",
"reaction_chamber",
"grinder_chemical",
- "growing_vat",
"fermenter",
"pump",
"disposal",
diff --git a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm
index 5f073d17fc1e2..1e9045d82279c 100644
--- a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm
+++ b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm
@@ -99,13 +99,14 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm)
tlv_collection = list()
tlv_collection["pressure"] = new /datum/tlv/pressure
tlv_collection["temperature"] = new /datum/tlv/temperature
- var/list/meta_info = GLOB.meta_gas_info // shorthand
- for(var/gas_path in meta_info)
+
+ var/list/cached_gas_info = GLOB.meta_gas_info
+ for(var/datum/gas/gas_path as anything in cached_gas_info)
if(ispath(gas_path, /datum/gas/oxygen))
tlv_collection[gas_path] = new /datum/tlv/oxygen
else if(ispath(gas_path, /datum/gas/carbon_dioxide))
tlv_collection[gas_path] = new /datum/tlv/carbon_dioxide
- else if(meta_info[gas_path][META_GAS_DANGER])
+ else if(cached_gas_info[gas_path][META_GAS_DANGER])
tlv_collection[gas_path] = new /datum/tlv/dangerous
else
tlv_collection[gas_path] = new /datum/tlv/no_checks
@@ -137,6 +138,12 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm)
/obj/machinery/airalarm/Destroy()
if(my_area)
my_area = null
+ if(connected_sensor)
+ UnregisterSignal(connected_sensor, COMSIG_QDELETING)
+ UnregisterSignal(connected_sensor.loc, COMSIG_TURF_EXPOSE)
+ connected_sensor.connected_airalarm = null
+ connected_sensor = null
+
QDEL_NULL(alarm_manager)
GLOB.air_alarms -= src
return ..()
@@ -201,10 +208,16 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm)
return .
if(istype(multi_tool.buffer, /obj/machinery/air_sensor))
+ var/obj/machinery/air_sensor/sensor = multi_tool.buffer
+
if(!allow_link_change)
balloon_alert(user, "linking disabled")
return ITEM_INTERACT_BLOCKING
- connect_sensor(multi_tool.buffer)
+ if(connected_sensor || sensor.connected_airalarm)
+ balloon_alert(user, "sensor already connected!")
+ return ITEM_INTERACT_BLOCKING
+
+ connect_sensor(sensor)
balloon_alert(user, "connected sensor")
return ITEM_INTERACT_SUCCESS
@@ -568,34 +581,40 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm)
danger_level = max(danger_level, tlv_collection["pressure"].check_value(pressure))
danger_level = max(danger_level, tlv_collection["temperature"].check_value(temp))
if(total_moles)
- for(var/gas_path in GLOB.meta_gas_info)
+ var/list/cached_gas_info = GLOB.meta_gas_info
+ for(var/datum/gas/gas_path as anything in cached_gas_info)
var/moles = environment.gases[gas_path] ? environment.gases[gas_path][MOLES] : 0
danger_level = max(danger_level, tlv_collection[gas_path].check_value(pressure * moles / total_moles))
if(danger_level)
alarm_manager.send_alarm(ALARM_ATMOS)
- if(pressure <= tlv_collection["pressure"].hazard_min && temp <= tlv_collection["temperature"].hazard_min)
+ var/is_high_pressure = tlv_collection["pressure"].hazard_max != TLV_VALUE_IGNORE && pressure >= tlv_collection["pressure"].hazard_max
+ var/is_high_temp = tlv_collection["temperature"].hazard_max != TLV_VALUE_IGNORE && temp >= tlv_collection["temperature"].hazard_max
+ var/is_low_pressure = tlv_collection["pressure"].hazard_min != TLV_VALUE_IGNORE && pressure <= tlv_collection["pressure"].hazard_min
+ var/is_low_temp = tlv_collection["temperature"].hazard_min != TLV_VALUE_IGNORE && temp <= tlv_collection["temperature"].hazard_min
+
+ if(is_low_pressure && is_low_temp)
warning_message = "Danger! Low pressure and temperature detected."
return
- if(pressure <= tlv_collection["pressure"].hazard_min && temp >= tlv_collection["temperature"].hazard_max)
+ if(is_low_pressure && is_high_temp)
warning_message = "Danger! Low pressure and high temperature detected."
return
- if(pressure >= tlv_collection["pressure"].hazard_max && temp >= tlv_collection["temperature"].hazard_max)
+ if(is_high_pressure && is_high_temp)
warning_message = "Danger! High pressure and temperature detected."
return
- if(pressure >= tlv_collection["pressure"].hazard_max && temp <= tlv_collection["temperature"].hazard_min)
+ if(is_high_pressure && is_low_temp)
warning_message = "Danger! High pressure and low temperature detected."
return
- if(pressure <= tlv_collection["pressure"].hazard_min)
+ if(is_low_pressure)
warning_message = "Danger! Low pressure detected."
return
- if(pressure >= tlv_collection["pressure"].hazard_max)
+ if(is_high_pressure)
warning_message = "Danger! High pressure detected."
return
- if(temp <= tlv_collection["temperature"].hazard_min)
+ if(is_low_temp)
warning_message = "Danger! Low temperature detected."
return
- if(temp >= tlv_collection["temperature"].hazard_max)
+ if(is_high_temp)
warning_message = "Danger! High temperature detected."
return
else
@@ -686,14 +705,22 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
if(isnull(sensor))
log_mapping("[src] at [AREACOORD(src)] tried to connect to a sensor, but no sensor with chamber_id:[air_sensor_chamber_id] found!")
return
+ if(connected_sensor)
+ log_mapping("[src] at [AREACOORD(src)] tried to connect to more than one sensor!")
+ return
connect_sensor(sensor)
///Used to connect air alarm with a sensor
/obj/machinery/airalarm/proc/connect_sensor(obj/machinery/air_sensor/sensor)
- if(!isnull(connected_sensor))
- UnregisterSignal(connected_sensor, COMSIG_QDELETING)
+ sensor.connected_airalarm = src
connected_sensor = sensor
+
RegisterSignal(connected_sensor, COMSIG_QDELETING, PROC_REF(disconnect_sensor))
+
+ // Transfer signal from air alarm to sensor
+ UnregisterSignal(loc, COMSIG_TURF_EXPOSE)
+ RegisterSignal(connected_sensor.loc, COMSIG_TURF_EXPOSE, PROC_REF(check_danger), override=TRUE)
+
my_area = get_area(connected_sensor)
check_enviroment()
@@ -704,6 +731,12 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
///Used to reset the air alarm to default configuration after disconnecting from air sensor
/obj/machinery/airalarm/proc/disconnect_sensor()
UnregisterSignal(connected_sensor, COMSIG_QDELETING)
+
+ // Transfer signal from sensor to air alarm
+ UnregisterSignal(connected_sensor.loc, COMSIG_TURF_EXPOSE)
+ RegisterSignal(loc, COMSIG_TURF_EXPOSE, PROC_REF(check_danger), override=TRUE)
+
+ connected_sensor.connected_airalarm = null
connected_sensor = null
my_area = get_area(src)
diff --git a/code/modules/atmospherics/machinery/components/tank.dm b/code/modules/atmospherics/machinery/components/tank.dm
index f76f3dc470f57..6aa23f84e934b 100644
--- a/code/modules/atmospherics/machinery/components/tank.dm
+++ b/code/modules/atmospherics/machinery/components/tank.dm
@@ -88,7 +88,6 @@
air_contents = new
air_contents.temperature = T20C
air_contents.volume = volume
- refresh_pressure_limit()
if(gas_type)
fill_to_pressure(gas_type)
@@ -121,7 +120,7 @@
. += span_notice("The pipe port can be moved or closed with a [wrench_hint].")
. += span_notice("A holographic sticker on it says that its maximum safe pressure is: [siunit_pressure(max_pressure, 0)].")
-/obj/machinery/atmospherics/components/tank/set_custom_materials(list/materials, multiplier)
+/obj/machinery/atmospherics/components/tank/finalize_material_effects(list/materials)
. = ..()
refresh_pressure_limit()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm
index 804f868e9c189..2cde2acd0ace8 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/airlock_pump.dm
@@ -48,6 +48,8 @@
var/allowed_pressure_error = ONE_ATMOSPHERE / 100
///Minimal distro pressure to start cycling
var/min_distro_pressure = ONE_ATMOSPHERE / 10
+ ///Which pressure holds docked vessel\station for override of external_pressure_target
+ var/docked_side_pressure
///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
@@ -125,7 +127,31 @@
/obj/machinery/atmospherics/components/unary/airlock_pump/post_machine_initialize()
. = ..()
set_links()
+ // If we are on docked shuttle - setup docking variables
+ // Example - 'build your own shuttle' evac vessel
+ var/turf/local_turf = get_turf(src)
+ if (!cycling_set_up || !isshuttleturf(local_turf))
+ return
+ var/tile_air_pressure
+ for(var/obj/machinery/door/airlock/external_airlock in external_airlocks)
+ var/current_area = get_area(external_airlock)
+ for(var/obj/machinery/door/airlock/other_airlock in orange(2, external_airlock)) // does not include src, extended because some escape pods have 1 plating turf exposed to space
+ if(get_area(other_airlock) != current_area) // does not include double-wide airlocks unless actually docked
+ // Cycle linking is only disabled if we are actually adjacent to another airlock
+ external_airlock.shuttledocked = TRUE
+ other_airlock.shuttledocked = TRUE
+ if (other_airlock.cycle_pump)
+ INVOKE_ASYNC(other_airlock.cycle_pump, TYPE_PROC_REF(/obj/machinery/atmospherics/components/unary/airlock_pump, on_dock_request), internal_pressure_target) // Only case when airlock pumps speaking to each other directly
+ // Save external airlocks turf in case our own docking purpouses
+ local_turf = get_turf(other_airlock)
+
+ if (local_turf)
+ local_turf = get_step(local_turf, REVERSE_DIR(dir))
+ tile_air_pressure = 0
+ if (local_turf)
+ tile_air_pressure = max(0, local_turf.return_air().return_pressure())
+ on_dock_request(tile_air_pressure)
/obj/machinery/atmospherics/components/unary/airlock_pump/New()
. = ..()
@@ -239,6 +265,22 @@
airlock.say("Airlock pair not found.")
return
if(airlock in external_airlocks)
+ // If it's not null - we shuttledocked
+ // (it may be 0. Maybe badmin set internal pressure to 0 as well, who knows)
+ if(docked_side_pressure != null)
+ // Space-faced airlock detection
+ var/turf/external_tile = get_step(airlock, REVERSE_DIR(dir))
+ // Map edge or space turf
+ if (external_tile == null || is_space_or_openspace(external_tile))
+ airlock.run_animation(DOOR_DENY_ANIMATION)
+ return
+ var/tile_air_pressure = max(0, external_tile.return_air().return_pressure())
+ var/pressure_delta = docked_side_pressure - tile_air_pressure
+ if (pressure_delta > 0 ? (pressure_delta > allowed_pressure_error*10) : (pressure_delta*-1 > allowed_pressure_error*10))
+ // Disabled to avoid airlocks close-open spam
+ airlock.run_animation(DOOR_DENY_ANIMATION)
+ return
+
start_cycle(ATMOS_DIRECTION_SIPHONING, airlock)
else if(airlock in internal_airlocks)
start_cycle(ATMOS_DIRECTION_RELEASING, airlock)
@@ -281,17 +323,12 @@
if(is_cycling_audible)
source_airlock.say("Pressurizing airlock.")
else
- cycle_pressure_target = external_pressure_target
+ cycle_pressure_target = docked_side_pressure != null ? docked_side_pressure : 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)
@@ -307,6 +344,11 @@
return FALSE
on = FALSE
+ // In case we can open both sides safe_dock will do it for us
+ // it also handles its own messages. If we can't - procceed
+ if (docked_side_pressure != null && safe_dock(unbolt_only))
+ return TRUE
+
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()
@@ -323,6 +365,106 @@
update_appearance()
return TRUE
+/obj/machinery/atmospherics/components/unary/airlock_pump/proc/on_dock_request(requester_pressure = 0)
+ if (docked_side_pressure != null)
+ return
+
+ docked_side_pressure = requester_pressure
+
+ if (!powered() || !cycling_set_up)
+ return
+
+ // We just finishing previous cycle
+ if (airlocks_animating)
+ say("Docking request queued.")
+ stoplag(1.1 SECONDS) // Wait for opening animation
+ if (airlocks_animating) // Should (almost) never happened
+ say("ERROR: D11. Please re-initiate docking sequence.")
+ return
+
+ if (on)
+ // You can't go there, there is a shuttle now
+ if (pump_direction == ATMOS_DIRECTION_SIPHONING)
+ stop_cycle("Cycling sequence overriden by docking sequence.", TRUE)
+ start_cycle(ATMOS_DIRECTION_RELEASING)
+ // If cycling inside, docking will be handled by stop_cycle proc
+ return
+
+ // Check if we need cycle in
+ var/turf/local_turf = get_turf(src)
+ var/tile_air_pressure = max(0, local_turf.return_air().return_pressure())
+ var/pressure_delta = internal_pressure_target - tile_air_pressure
+ if(pressure_delta <= allowed_pressure_error)
+ // We fine
+ safe_dock()
+ else
+ var/obj/machinery/door/airlock/source_airlock = pick(internal_airlocks)
+ source_airlock.say("Docking sequence initiated")
+ start_cycle(ATMOS_DIRECTION_RELEASING)
+
+
+/obj/machinery/atmospherics/components/unary/airlock_pump/proc/safe_dock(unbolt_only = FALSE)
+ var/pressure_delta = internal_pressure_target - docked_side_pressure
+ // Docked vessel has pressure higher then our internal
+ if ((pressure_delta + allowed_pressure_error) < 0)
+ return FALSE
+ // Pressure is too different, its unsafe to open both sides
+ else if (pressure_delta > allowed_pressure_error * 10)
+ return FALSE
+ // No power handles by stop_cycle pretty good
+ else if (!powered())
+ return FALSE
+
+ var/turf/local_turf = get_turf(src)
+ var/tile_air_pressure = max(0, local_turf.return_air().return_pressure())
+ pressure_delta = internal_pressure_target - tile_air_pressure
+ // Chamber is not pressurised
+ if(pressure_delta > allowed_pressure_error)
+ return FALSE
+
+ for(var/obj/machinery/door/airlock/airlock as anything in (external_airlocks + internal_airlocks))
+ if (airlock in external_airlocks)
+ airlock.air_tight = TRUE
+ local_turf = get_step(airlock, REVERSE_DIR(dir))
+ // Map edge or space turf
+ if (local_turf == null || is_space_or_openspace(local_turf))
+ continue
+
+ tile_air_pressure = max(0, local_turf.return_air().return_pressure())
+ pressure_delta = docked_side_pressure - tile_air_pressure
+ // Do not open airlocks leading in space
+ // If docked entity now has pressure lower or higher then was declared on docking
+ // We will keep airlocks closed until redocking or fixing atmos
+ if (pressure_delta > 0 ? (pressure_delta > allowed_pressure_error*10) : (pressure_delta*-1 > allowed_pressure_error*10))
+ continue
+
+ airlock.unbolt()
+ if(open_airlock_on_cycle && !unbolt_only)
+ INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_open))
+
+ airlocks_animating = TRUE
+ stoplag(1 SECONDS) // Wait for closing animation
+ airlocks_animating = FALSE
+ update_appearance()
+ say("Docking complete.")
+ return TRUE
+
+
+/obj/machinery/atmospherics/components/unary/airlock_pump/proc/undock()
+ if (docked_side_pressure == null)
+ return
+ docked_side_pressure = null
+ if(!powered())
+ return
+
+ for(var/obj/machinery/door/airlock/airlock as anything in external_airlocks)
+ INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock, secure_close), TRUE)
+
+ say("Docking connection terminated.")
+ airlocks_animating = TRUE
+ stoplag(1 SECONDS) // Wait for closing animation
+ airlocks_animating = FALSE
+
///Update adjacent_turfs with atmospherically adjacent tiles
/obj/machinery/atmospherics/components/unary/airlock_pump/proc/check_turfs()
diff --git a/code/modules/bitrunning/objects/clothing.dm b/code/modules/bitrunning/objects/clothing.dm
index de2b6789d5812..731b7dc2cca58 100644
--- a/code/modules/bitrunning/objects/clothing.dm
+++ b/code/modules/bitrunning/objects/clothing.dm
@@ -8,3 +8,4 @@
name = "trenchcoat"
desc = "A long, black trenchcoat. Makes you feel like you're the one, but you're not."
icon_state = "trenchcoat"
+ flags_inv = HIDEBELT
diff --git a/code/modules/cargo/materials_market.dm b/code/modules/cargo/materials_market.dm
index 4037a51c6916b..dd3093a0aafec 100644
--- a/code/modules/cargo/materials_market.dm
+++ b/code/modules/cargo/materials_market.dm
@@ -143,7 +143,7 @@
trend_string = "down"
//get mat color
- var/initial_colors = initial(traded_mat.greyscale_colors)
+ var/initial_colors = initial(traded_mat.greyscale_color) || initial(traded_mat.color)
if(initial_colors)
color_string = splicetext(initial_colors, 7, length(initial_colors), "") //slice it to a standard 6 char hex
else
diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm
index a0e927c631938..d6ab89cb8a855 100644
--- a/code/modules/clothing/outfits/plasmaman.dm
+++ b/code/modules/clothing/outfits/plasmaman.dm
@@ -4,7 +4,7 @@
uniform = /obj/item/clothing/under/plasmaman
gloves = /obj/item/clothing/gloves/color/plasmaman
head = /obj/item/clothing/head/helmet/space/plasmaman
- r_hand= /obj/item/tank/internals/plasmaman/belt/full
+ r_hand = /obj/item/tank/internals/plasmaman/belt/full
internals_slot = ITEM_SLOT_HANDS
/datum/outfit/plasmaman/security
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index 124dfcee41c0b..cd646d1df9ac2 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -93,6 +93,12 @@
if(fishing_modifier)
AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier)
+/obj/item/clothing/suit/space/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot)
+ . = ..()
+ if(isnull(cell))
+ return
+ toggle_spacesuit(toggler = null, manual_toggle = FALSE) //turn on the thermal regulator by default.
+
/// Start Processing on the space suit when it is worn to heat the wearer
/obj/item/clothing/suit/space/equipped(mob/living/user, slot)
. = ..()
@@ -161,7 +167,10 @@
thermal_on = FALSE
// support for items that interact with the cell
-/obj/item/clothing/suit/space/get_cell()
+/obj/item/clothing/suit/space/get_cell(atom/movable/interface, mob/user)
+ if(istype(interface, /obj/item/inducer))
+ to_chat(user, span_alert("Error: unable to interface with [interface]."))
+ return null
return cell
// Show the status of the suit and the cell
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 23e4d89ff2dbb..ec1e2f303c44b 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -297,6 +297,10 @@
/obj/item/clothing/suit/armor/riot/Initialize(mapload)
. = ..()
AddComponent(/datum/component/adjust_fishing_difficulty, 5)
+ init_rustle_component()
+
+/obj/item/clothing/suit/armor/riot/proc/init_rustle_component()
+ AddComponent(/datum/component/item_equipped_movement_rustle)
/datum/armor/armor_riot
melee = 50
@@ -420,6 +424,10 @@
/obj/item/clothing/suit/armor/swat/Initialize(mapload)
. = ..()
AddComponent(/datum/component/adjust_fishing_difficulty, 5)
+ init_rustle_component()
+
+/obj/item/clothing/suit/armor/swat/proc/init_rustle_component()
+ AddComponent(/datum/component/item_equipped_movement_rustle)
//All of the armor below is mostly unused
@@ -519,6 +527,8 @@
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
)
+/obj/item/clothing/suit/armor/riot/knight/init_rustle_component()
+ return
/obj/item/clothing/suit/armor/riot/knight/yellow
icon_state = "knight_yellow"
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 4fa5eeb5a90f7..25b28c74d1a7a 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -36,7 +36,7 @@
slowdown = 0.5
allowed = list(/obj/item/tank/internals, /obj/item/reagent_containers/dropper, /obj/item/flashlight/pen, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/cup/beaker, /obj/item/gun/syringe)
armor_type = /datum/armor/suit_bio_suit
- flags_inv = HIDEGLOVES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDEBELT
strip_delay = 70
equip_delay_other = 70
resistance_flags = ACID_PROOF
diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm
index a720f49b9383f..d3918752056d1 100644
--- a/code/modules/clothing/suits/costume.dm
+++ b/code/modules/clothing/suits/costume.dm
@@ -121,7 +121,7 @@
icon_state = "imperium_monk"
inhand_icon_state = "imperium_monk"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDESHOES|HIDEJUMPSUIT|HIDEBELT
allowed = list(/obj/item/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/cup/glass/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/flashlight/flare/candle, /obj/item/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/costume/chickensuit
@@ -219,6 +219,7 @@
icon_state = "classicponcho"
inhand_icon_state = null
species_exception = list(/datum/species/golem)
+ flags_inv = HIDEBELT
/obj/item/clothing/suit/costume/poncho/green
name = "green poncho"
@@ -248,7 +249,7 @@
icon_state = "white_dress"
inhand_icon_state = "w_suit"
body_parts_covered = CHEST|GROIN|LEGS|FEET
- flags_inv = HIDEJUMPSUIT|HIDESHOES
+ flags_inv = HIDEJUMPSUIT|HIDESHOES|HIDEBELT
/obj/item/clothing/suit/hooded/carp_costume
name = "carp costume"
@@ -503,6 +504,7 @@
desc = "Perfect for those who want to stalk around a corner of a bar."
icon_state = "gothcoat"
inhand_icon_state = null
+ flags_inv = HIDEBELT
/obj/item/clothing/suit/costume/xenos
name = "xenos suit"
@@ -510,7 +512,7 @@
icon_state = "xenos"
inhand_icon_state = "xenos_suit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDEBELT
allowed = list(/obj/item/clothing/mask/facehugger/toy)
/obj/item/clothing/suit/costume/nemes
diff --git a/code/modules/clothing/suits/ghostsheet.dm b/code/modules/clothing/suits/ghostsheet.dm
index 965adc9b7e2ff..52c19be3bd160 100644
--- a/code/modules/clothing/suits/ghostsheet.dm
+++ b/code/modules/clothing/suits/ghostsheet.dm
@@ -7,7 +7,7 @@
throw_speed = 1
throw_range = 2
w_class = WEIGHT_CLASS_TINY
- flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+ flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT|HIDEBELT|HIDEJUMPSUIT
alternate_worn_layer = UNDER_HEAD_LAYER
species_exception = list(/datum/species/golem)
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON
@@ -34,7 +34,7 @@
throw_speed = 1
throw_range = 2
w_class = WEIGHT_CLASS_TINY
- flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+ flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT|HIDEBELT|HIDEJUMPSUIT
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/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 2ba150ab692ee..504558229639c 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -124,6 +124,7 @@
armor_type = /datum/armor/jacket_det_suit
cold_protection = CHEST|GROIN|ARMS
heat_protection = CHEST|GROIN|ARMS
+ flags_inv = HIDEBELT
/datum/armor/jacket_det_suit
melee = 25
diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm
index 68d817bf70b21..5670995512001 100644
--- a/code/modules/deathmatch/deathmatch_loadouts.dm
+++ b/code/modules/deathmatch/deathmatch_loadouts.dm
@@ -606,7 +606,7 @@
l_hand = /obj/item/melee/energy/sword
r_pocket = /obj/item/reagent_containers/hypospray/medipen/stimulants
l_pocket = /obj/item/soap/syndie
- belt = /obj/item/gun/ballistic/revolver/syndicate
+ belt = /obj/item/gun/ballistic/revolver
/datum/outfit/deathmatch_loadout/nukie
name = "Deathmatch: Nuclear Operative"
diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm
index 1cf617ce4513e..6585f92f9b61c 100644
--- a/code/modules/error_handler/error_handler.dm
+++ b/code/modules/error_handler/error_handler.dm
@@ -26,7 +26,9 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0)
Reboot(reason = 1)
return
- var/static/regex/stack_workaround = regex("[WORKAROUND_IDENTIFIER](.+?)[WORKAROUND_IDENTIFIER]")
+ var/static/regex/stack_workaround
+ if(isnull(stack_workaround))
+ stack_workaround = regex("[WORKAROUND_IDENTIFIER](.+?)[WORKAROUND_IDENTIFIER]")
var/static/list/error_last_seen = list()
var/static/list/error_cooldown = list() /* Error_cooldown items will either be positive(cooldown time) or negative(silenced error)
If negative, starts at -1, and goes down by 1 each time that error gets skipped*/
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 5b7cceb72b196..c5bd80e5d7174 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -1304,6 +1304,10 @@
/obj/item/fish/proc/undo_petted()
fish_flags &= ~FISH_FLAG_PETTED
+/obj/item/fish/update_atom_colour()
+ . = ..()
+ aquarium_vc_color = color || initial(aquarium_vc_color)
+
/// Returns random fish, using random_case_rarity probabilities.
/proc/random_fish_type(required_fluid)
var/static/probability_table
diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm
index c9ab3325af367..b0eec9d58f29e 100644
--- a/code/modules/fishing/fish/fish_traits.dm
+++ b/code/modules/fishing/fish/fish_traits.dm
@@ -427,6 +427,8 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish contains toxins. Feeding it to predatory fishes or people is not recommended."
diff_traits_inheritability = 25
reagents_to_add = list(/datum/reagent/toxin/tetrodotoxin = 1)
+ ///The amount of venom injected if the fish has a stinger is multiplied by this value.
+ var/venom_mult = 1
/datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish)
. = ..()
@@ -438,13 +440,13 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
SIGNAL_HANDLER
if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
return
- add_venom(source, /datum/reagent/toxin/tetrodotoxin, new_weight, mult = source.status == FISH_DEAD ? 0.1 : 0.25)
+ add_venom(source, reagents_to_add[1], new_weight, mult = (source.status == FISH_DEAD ? 0.1 : 0.25) * venom_mult)
/datum/fish_trait/toxic/proc/on_status_change(obj/item/fish/source)
SIGNAL_HANDLER
if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
return
- change_venom_on_death(source, /datum/reagent/toxin/tetrodotoxin, 0.25, 0.1)
+ change_venom_on_death(source, reagents_to_add[1], 0.25 * venom_mult, 0.1 * venom_mult)
/datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator)
if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE))
@@ -463,7 +465,14 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
/datum/fish_trait/toxic/apply_to_mob(mob/living/basic/mob)
. = ..()
- mob.AddElement(/datum/element/venomous, /datum/reagent/toxin/tetrodotoxin, 0.5 * mob.mob_size)
+ mob.AddElement(/datum/element/venomous, reagents_to_add[1], 0.5 * mob.mob_size * venom_mult)
+
+/datum/fish_trait/toxic/carpotoxin
+ name = "Carpotoxic"
+ catalog_description = "This fish contains carpotoxin. Definitely not safe for consumption."
+ diff_traits_inheritability = 50
+ reagents_to_add = list(/datum/reagent/toxin/carpotoxin = 4)
+ venom_mult = 6
/datum/fish_trait/toxin_immunity
name = "Toxin Immunity"
diff --git a/code/modules/fishing/fish/types/air_space.dm b/code/modules/fishing/fish/types/air_space.dm
index dda3794ff4e1c..177ae9c6e0e7d 100644
--- a/code/modules/fishing/fish/types/air_space.dm
+++ b/code/modules/fishing/fish/types/air_space.dm
@@ -99,3 +99,85 @@
///It spins, and dimly glows in the dark.
/obj/item/fish/starfish/flop_animation()
DO_FLOATING_ANIM(src)
+
+/obj/item/fish/baby_carp
+ name = "baby space carp"
+ desc = "A juvenile spawn of the dreaded space carp. Don't let the innocent looks fool you, they're aggressive little bastards."
+ icon_state = "baby_carp"
+ sprite_height = 3
+ sprite_width = 5
+ average_size = 35
+ average_weight = 550
+ stable_population = 7
+ required_fluid_type = AQUARIUM_FLUID_ANY_WATER
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ required_temperature_min = 0
+ required_temperature_max = MIN_AQUARIUM_TEMP+200
+ safe_air_limits = null
+ fillet_type = /obj/item/food/fishmeat/carp/no_tox
+ fish_traits = list(
+ /datum/fish_trait/carnivore,
+ /datum/fish_trait/aggressive,
+ /datum/fish_trait/predator,
+ /datum/fish_trait/necrophage,
+ /datum/fish_trait/no_mating,
+ /datum/fish_trait/toxic/carpotoxin,
+ )
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = MEAT,
+ ),
+ )
+ disliked_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = GRAIN|DAIRY,
+ ),
+ )
+ beauty = FISH_BEAUTY_GREAT
+
+/obj/item/fish/baby_carp/Initialize(mapload, apply_qualities = TRUE)
+ color = pick_weight(GLOB.carp_colors)
+ . = ..()
+ RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
+ RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
+ update_appearance(UPDATE_OVERLAYS)
+
+/obj/item/fish/baby_carp/update_overlays()
+ . = ..()
+ var/mutable_appearance/eyes = mutable_appearance(icon, "baby_carp_eyes")
+ if(status == FISH_DEAD)
+ eyes.icon_state += "_dead"
+ else
+ eyes.appearance_flags = RESET_COLOR
+ . += eyes
+
+///Determines the speed at which the carp grows based on how big it's
+/obj/item/fish/baby_carp/update_size_and_weight(new_size = average_size, new_weight = average_weight)
+ . = ..()
+ var/growth_rate = 4.5 MINUTES
+ growth_rate *= clamp(size/average_size, 0.5, 2)
+ growth_rate *= clamp(weight/average_weight, 0.5, 2)
+
+ AddComponent(/datum/component/fish_growth, /mob/living/basic/carp/advanced, growth_rate)
+
+/obj/item/fish/baby_carp/proc/growth_checks(datum/source, seconds_per_tick)
+ SIGNAL_HANDLER
+ var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency)
+ if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow.
+ return COMPONENT_DONT_GROW
+
+ if(!isaquarium(loc))
+ return
+
+ var/obj/structure/aquarium/aquarium = loc
+ if(!aquarium.reproduction_and_growth) //the aquarium has breeding disabled
+ return COMPONENT_DONT_GROW
+ if(length(aquarium.get_fishes()) > AQUARIUM_MAX_BREEDING_POPULATION * 0.5) //check if there's enough room to maturate.
+ return COMPONENT_DONT_GROW
+
+/obj/item/fish/baby_carp/proc/on_growth(datum/source, mob/living/basic/carp/result)
+ SIGNAL_HANDLER
+ //yes, this means that if we use a spraycan on the fish, the resulting space carp will be of spraycan color
+ result.set_greyscale(colors = list(color))
diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm
index 38455068ce22e..c2db0a43fc9b5 100644
--- a/code/modules/fishing/sources/_fish_source.dm
+++ b/code/modules/fishing/sources/_fish_source.dm
@@ -41,6 +41,7 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons())
/obj/item/fish/stingray = FISH_ICON_WEAPON,
/obj/item/fish/swordfish = FISH_ICON_WEAPON,
/obj/item/fish/zipzap = FISH_ICON_ELECTRIC,
+ /obj/item/knife/carp = FISH_ICON_WEAPON,
/obj/item/seeds/grass = FISH_ICON_SEED,
/obj/item/seeds/random = FISH_ICON_SEED,
/obj/item/storage/wallet = FISH_ICON_COIN,
diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm
index 2f56ffaad3cd1..f182287040082 100644
--- a/code/modules/fishing/sources/source_types.dm
+++ b/code/modules/fishing/sources/source_types.dm
@@ -193,6 +193,7 @@
fish_table = list(
FISHING_DUD = 5,
/obj/item/fish/starfish = 6,
+ /obj/item/fish/baby_carp = 6,
/obj/item/stack/ore/bluespace_crystal = 2,
/mob/living/basic/carp = 2,
)
@@ -580,6 +581,25 @@
var/picked_path = pick(seeds_to_draw_from)
return new picked_path(get_turf(fishing_spot))
+/datum/fish_source/carp_rift
+ catalog_description = "Space Dragon Rifts"
+ radial_state = "carp"
+ fish_table = list(
+ FISHING_DUD = 3,
+ /obj/item/fish/baby_carp = 5,
+ /mob/living/basic/carp = 1,
+ /mob/living/basic/carp/passive = 1,
+ /mob/living/basic/carp/mega = 1,
+ /obj/item/clothing/head/fedora/carpskin = 1,
+ /obj/item/toy/plush/carpplushie = 1,
+ /obj/item/toy/plush/carpplushie/dehy_carp/peaceful = 1,
+ /obj/item/knife/carp = 1,
+ )
+ fish_counts = list(
+ /mob/living/basic/carp/mega = 2,
+ )
+ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 18
+
/datum/fish_source/deepfryer
catalog_description = "Deep Fryers"
radial_state = "fryer"
diff --git a/code/modules/hallucination/screwy_health_doll.dm b/code/modules/hallucination/screwy_health_doll.dm
index 7bab267563c74..2a8eeba16e2b3 100644
--- a/code/modules/hallucination/screwy_health_doll.dm
+++ b/code/modules/hallucination/screwy_health_doll.dm
@@ -66,12 +66,11 @@
bodyparts -= source
/// Whenever a bodypart we're tracking has their health hud updated, override it with our fake overlay
-/datum/hallucination/fake_health_doll/proc/on_bodypart_hud_update(obj/item/bodypart/source, mob/living/carbon/human/owner)
+/datum/hallucination/fake_health_doll/proc/on_bodypart_hud_update(obj/item/bodypart/source, mob/living/carbon/human/owner, list/overridable_key)
SIGNAL_HANDLER
- var/mutable_appearance/fake_overlay = mutable_appearance('icons/hud/screen_gen.dmi', "[source.body_zone][bodyparts[source]]")
- owner.hud_used.healthdoll.add_overlay(fake_overlay)
- return COMPONENT_OVERRIDE_BODYPART_HEALTH_HUD
+ overridable_key[1] = bodyparts[source]
+ return OVERRIDE_BODYPART_HEALTH_HUD
/// Signal proc for [COMSIG_BODYPART_CHECKED_FOR_INJURY]. Our bodyparts look a lot more wounded than they actually are.
/datum/hallucination/fake_health_doll/proc/on_bodypart_checked(obj/item/bodypart/source, mob/living/carbon/examiner, list/check_list, list/limb_damage)
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index 41ff0c058cebc..c086dce7c8156 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -120,8 +120,7 @@
/// Alternate titles to register as pointing to this job.
var/list/alternate_titles
- /// Does this job ignore human authority?
- var/ignore_human_authority = FALSE
+ var/human_authority = JOB_AUTHORITY_NON_HUMANS_ALLOWED
/// String key to track any variables we want to tie to this job in config, so we can avoid using the job title. We CAPITALIZE it in order to ensure it's unique and resistant to trivial formatting changes.
/// You'll probably break someone's config if you change this, so it's best to not to.
@@ -531,11 +530,28 @@
if(!player_client)
return // Disconnected while checking for the appearance ban.
- var/require_human = CONFIG_GET(flag/enforce_human_authority) && (job.job_flags & JOB_HEAD_OF_STAFF)
- if(require_human)
- var/all_authority_require_human = CONFIG_GET(flag/enforce_human_authority_on_everyone)
- if(!all_authority_require_human && job.ignore_human_authority)
- require_human = FALSE
+ var/human_authority_setting = CONFIG_GET(string/human_authority)
+ var/require_human = FALSE
+
+ // If the job in question is a head of staff,
+ // check the config to see if we should force the player onto a human character or not
+ if(job.job_flags & JOB_HEAD_OF_STAFF)
+ switch(human_authority_setting)
+
+ // If non-humans are the norm and jobs must be forced to be only for humans
+ // then we only force the player to be a human if the job exclusively allows humans
+ if(HUMAN_AUTHORITY_HUMAN_WHITELIST)
+ require_human = job.human_authority == JOB_AUTHORITY_HUMANS_ONLY
+
+ // If humans are the norm and jobs must be allowed to be played by non-humans
+ // then we only force the player to be a human if the job doesn't allow for non-humans to play it
+ if(HUMAN_AUTHORITY_NON_HUMAN_WHITELIST)
+ require_human = job.human_authority != JOB_AUTHORITY_NON_HUMANS_ALLOWED
+
+ // If humans are the norm and there is no chance that a non-human can be a head of staff
+ // always return true, since there is no chance that a non-human can be a head of staff.
+ if(HUMAN_AUTHORITY_ENFORCED)
+ require_human = TRUE
src.job = job.title
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 5b82c9adb7116..99bc35bb60320 100644
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -46,6 +46,8 @@
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
rpg_title = "Star Duke"
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
index 0968569ae33af..6af8c844555da 100644
--- a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
+++ b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm
@@ -40,7 +40,7 @@
icon_state = "holidaypriest"
inhand_icon_state = "w_suit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/nun
name = "nun robe"
@@ -48,7 +48,7 @@
icon_state = "nun"
inhand_icon_state = "nun"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/habit
name = "religious tunic"
@@ -56,7 +56,7 @@
icon_state = "habit"
alternate_worn_layer = GLOVES_LAYER // since the sleeves cover a part of the hands, this way it looks better while retaining glove overlay correctly.
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/bishoprobe
name = "bishop's robes"
@@ -64,7 +64,7 @@
icon_state = "bishoprobe"
inhand_icon_state = "bishoprobe"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/armor/studentuni
name = "student robe"
@@ -106,7 +106,7 @@
icon_state = "monkrobeeast"
inhand_icon_state = null
body_parts_covered = GROIN|LEGS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/whiterobe
name = "white robe"
@@ -114,7 +114,7 @@
icon_state = "whiterobe"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
/obj/item/clothing/suit/chaplainsuit/clownpriest
name = "Robes of the Honkmother"
@@ -122,7 +122,7 @@
icon_state = "clownpriest"
inhand_icon_state = "clownpriest"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
allowed = list(/obj/item/megaphone/clown, /obj/item/soap, /obj/item/food/pie/cream, /obj/item/bikehorn, /obj/item/bikehorn/golden, /obj/item/bikehorn/airhorn, /obj/item/instrument/bikehorn, /obj/item/reagent_containers/cup/soda_cans/canned_laughter, /obj/item/toy/crayon, /obj/item/toy/crayon/spraycan, /obj/item/toy/crayon/spraycan/lubecan, /obj/item/grown/bananapeel, /obj/item/food/grown/banana)
/obj/item/clothing/head/helmet/chaplain/clock
@@ -287,4 +287,4 @@
icon_state = "shrinehand"
inhand_icon_state = "shrinehand"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEJUMPSUIT
+ flags_inv = HIDEJUMPSUIT|HIDEBELT
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index 7ac1b6e29af9b..f85c2c54973b9 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -46,6 +46,8 @@
rpg_title = "Head Crystallomancer"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index 3f580b8e932a5..c9f126bb750bc 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -43,6 +43,8 @@
rpg_title = "High Cleric"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index e863a782d9b0c..1b8480f0d0b57 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -41,6 +41,9 @@
family_heirlooms = list(/obj/item/reagent_containers/cup/glass/trophy/silver_cup)
rpg_title = "Guild Questgiver"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
+
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index f3627c3c2a257..b9560708114be 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -37,6 +37,8 @@
rpg_title = "Guard Leader"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm
index 858ce8b645536..32053daa5d8c8 100644
--- a/code/modules/jobs/job_types/quartermaster.dm
+++ b/code/modules/jobs/job_types/quartermaster.dm
@@ -36,7 +36,7 @@
rpg_title = "Steward"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
voice_of_god_power = 1.4 //Command staff has authority
- ignore_human_authority = TRUE
+ human_authority = JOB_AUTHORITY_NON_HUMANS_ALLOWED
/datum/outfit/job/quartermaster
name = "Quartermaster"
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index 5d3c620322759..420138a6b9fba 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -44,6 +44,8 @@
rpg_title = "Archmagister"
job_flags = STATION_JOB_FLAGS | HEAD_OF_STAFF_JOB_FLAGS
+ human_authority = JOB_AUTHORITY_HUMANS_ONLY
+
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/station_trait/bridge_assistant.dm b/code/modules/jobs/job_types/station_trait/bridge_assistant.dm
index b1ae57de1ffe6..d776ae6251f7f 100644
--- a/code/modules/jobs/job_types/station_trait/bridge_assistant.dm
+++ b/code/modules/jobs/job_types/station_trait/bridge_assistant.dm
@@ -33,7 +33,7 @@
rpg_title = "Royal Guard"
allow_bureaucratic_error = FALSE
job_flags = STATION_JOB_FLAGS | STATION_TRAIT_JOB_FLAGS
- ignore_human_authority = TRUE
+ human_authority = JOB_AUTHORITY_NON_HUMANS_ALLOWED
/datum/job/bridge_assistant/after_spawn(mob/living/spawned, client/player_client)
. = ..()
diff --git a/code/modules/jobs/job_types/station_trait/human_ai.dm b/code/modules/jobs/job_types/station_trait/human_ai.dm
index a6e77d77a510c..d6f89357b4489 100644
--- a/code/modules/jobs/job_types/station_trait/human_ai.dm
+++ b/code/modules/jobs/job_types/station_trait/human_ai.dm
@@ -40,7 +40,7 @@
random_spawns_possible = FALSE
allow_bureaucratic_error = FALSE
job_flags = STATION_JOB_FLAGS | STATION_TRAIT_JOB_FLAGS
- ignore_human_authority = TRUE //we can safely assume NT doesn't care what species AIs are made of, much less if they can't even afford an AI.
+ human_authority = JOB_AUTHORITY_NON_HUMANS_ALLOWED //we can safely assume NT doesn't care what species AIs are made of, much less if they can't even afford an AI.
/datum/job/human_ai/get_roundstart_spawn_point()
return get_latejoin_spawn_point()
@@ -111,6 +111,18 @@
l_hand = /obj/item/paper/default_lawset_list
+/datum/outfit/job/human_ai/pre_equip(mob/living/carbon/human/equipped, visualsOnly)
+ . = ..()
+ if(visualsOnly)
+ return
+ if(is_safe_turf(equipped.loc, dense_atoms = TRUE)) //skip this if it's safe. We allow dense atoms because we spawn out of the inactive core.
+ return
+ if(isnull(equipped.dna.species.outfit_important_for_life)) //custom species stuff will handle this for us.
+ internals_slot = ITEM_SLOT_SUITSTORE
+ suit_store = /obj/item/tank/internals/oxygen
+ suit = /obj/item/clothing/suit/space/nasavoid
+ head = /obj/item/clothing/head/helmet/space/nasavoid
+
/datum/outfit/job/human_ai/post_equip(mob/living/carbon/human/equipped, visualsOnly)
. = ..()
if(visualsOnly)
@@ -122,9 +134,6 @@
ADD_TRAIT(equipped, TRAIT_COMMISSIONED, INNATE_TRAIT)
equipped.faction |= list(FACTION_SILICON, FACTION_TURRET)
- var/static/list/allowed_areas = typecacheof(list(/area/station/ai_monitored))
- equipped.AddComponent(/datum/component/hazard_area, area_whitelist = allowed_areas)
-
/obj/item/paper/default_lawset_list
name = "Lawset Note"
desc = "A note explaining the lawset, quickly written yet everso important."
diff --git a/code/modules/jobs/job_types/station_trait/pun_pun.dm b/code/modules/jobs/job_types/station_trait/pun_pun.dm
index eca4861e77ef0..b6ac7b813bffc 100644
--- a/code/modules/jobs/job_types/station_trait/pun_pun.dm
+++ b/code/modules/jobs/job_types/station_trait/pun_pun.dm
@@ -37,7 +37,7 @@
/datum/job/pun_pun/after_spawn(mob/living/carbon/human/monkey, client/player_client)
. = ..()
- monkey.make_clever_and_no_dna_scramble()
+ monkey.crewlike_monkify()
/datum/outfit/job/pun_pun
name = "Pun Pun"
diff --git a/code/modules/manufactorio/_manufacturing.dm b/code/modules/manufactorio/_manufacturing.dm
index 236c05dd86910..db177ac5ae4d1 100644
--- a/code/modules/manufactorio/_manufacturing.dm
+++ b/code/modules/manufactorio/_manufacturing.dm
@@ -117,7 +117,14 @@
if(!istype(stack))
return
for(var/obj/item/stack/other in contents - circuit)
- if(!other.can_merge(stack))
+ if(!stack.can_merge(other))
continue
if(other.amount + stack.amount <= other.max_amount)
return other
+
+/obj/machinery/power/manufacturing/proc/may_merge_in_contents_and_do_so(obj/item/stack/stack)
+ var/merging_into = may_merge_in_contents(stack)
+ if(isnull(merging_into))
+ return
+ return stack.merge(merging_into)
+
diff --git a/code/modules/manufactorio/machines/crafter.dm b/code/modules/manufactorio/machines/crafter.dm
index ee794d2930121..302202838e53c 100644
--- a/code/modules/manufactorio/machines/crafter.dm
+++ b/code/modules/manufactorio/machines/crafter.dm
@@ -1,6 +1,6 @@
/obj/machinery/power/manufacturing/crafter
name = "manufacturing assembling machine"
- desc = "Assembles (crafts) the set recipe until it runs out of resources. Inputs irrelevant to the recipe are ignored."
+ desc = "Assembles (crafts) the set recipe until it runs out of resources. Inputs irrelevant to the recipe are ignored, and it may only hold exactly what the recipe needs."
icon_state = "crafter"
circuit = /obj/item/circuitboard/machine/manucrafter
/// power used per process() spent crafting
@@ -19,6 +19,8 @@
/obj/machinery/power/manufacturing/crafter/Initialize(mapload)
. = ..()
craftsman = AddComponent(/datum/component/personal_crafting/machine)
+ if(ispath(recipe))
+ recipe = locate(recipe) in (cooking ? GLOB.cooking_recipes : GLOB.crafting_recipes)
/obj/machinery/power/manufacturing/crafter/examine(mob/user)
. = ..()
@@ -49,21 +51,24 @@
for(var/requirement_path in recipe.reqs)
if(!ispath(checking.type, requirement_path) || recipe.blacklist.Find(checking.type))
continue
+ var/amount = recipe.reqs[requirement_path]
+ if(count_path(requirement_path) >= amount)
+ continue
return TRUE
-/obj/machinery/power/manufacturing/crafter/proc/contains_type(path)
- . = FALSE
- for(var/content in contents - circuit)
- if(!istype(content, path))
+/obj/machinery/power/manufacturing/crafter/proc/count_path(path)
+ . = 0
+ for(var/atom/content as anything in contents - circuit)
+ if(!ispath(path, content.type))
continue
- return TRUE
+ .++
/obj/machinery/power/manufacturing/crafter/receive_resource(obj/receiving, atom/from, receive_dir)
if(isnull(recipe) || !isitem(receiving) || surplus() < power_cost)
return MANUFACTURING_FAIL
if(receive_dir == dir || !valid_for_recipe(receiving))
return MANUFACTURING_FAIL
- if(!may_merge_in_contents(receiving) && contains_type(receiving.type))
+ if(isstack(receiving) && count_path(receiving.type) && !may_merge_in_contents_and_do_so(receiving))
return MANUFACTURING_FAIL_FULL
receiving.Move(src, get_dir(receiving, src))
START_PROCESSING(SSmanufacturing, src)
@@ -86,6 +91,7 @@
for(var/atom/movable/thing as anything in contents - circuit)
thing.Move(dump_target)
recipe = result
+ balloon_alert(user, "set")
return ITEM_INTERACT_SUCCESS
/obj/machinery/power/manufacturing/crafter/Exited(atom/movable/gone, direction)
diff --git a/code/modules/manufactorio/machines/crusher.dm b/code/modules/manufactorio/machines/crusher.dm
index f0f18c10ae8c5..272cfeee02ee3 100644
--- a/code/modules/manufactorio/machines/crusher.dm
+++ b/code/modules/manufactorio/machines/crusher.dm
@@ -28,7 +28,7 @@
/obj/machinery/power/manufacturing/crusher/receive_resource(obj/receiving, atom/from, receive_dir)
if(istype(receiving, /obj/item/stack/ore) || receiving.resistance_flags & INDESTRUCTIBLE || !isitem(receiving) || surplus() < crush_cost || receive_dir != REVERSE_DIR(dir))
return MANUFACTURING_FAIL
- if(!may_merge_in_contents(receiving) && length(contents - circuit) >= capacity)
+ if(length(contents - circuit) >= capacity && may_merge_in_contents_and_do_so(receiving))
return MANUFACTURING_FAIL_FULL
receiving.Move(src, get_dir(receiving, src))
START_PROCESSING(SSmanufacturing, src)
diff --git a/code/modules/manufactorio/machines/router.dm b/code/modules/manufactorio/machines/router.dm
index 7c57a930bd3a6..8e1c20214339e 100644
--- a/code/modules/manufactorio/machines/router.dm
+++ b/code/modules/manufactorio/machines/router.dm
@@ -55,12 +55,6 @@
return MANUFACTURING_FAIL_FULL
/obj/machinery/power/manufacturing/router/proc/handle_stack(obj/item/stack/stack, direction)
- . = stack
- var/potential_output_count = length(GLOB.cardinals - direction - disabled_dirs)
- if(potential_output_count <= 1)
- return
- var/split_amount = round(stack.amount / potential_output_count, 1)
- if(stack.amount == potential_output_count)
- return
- var/atom/movable/new_stack = stack.split_stack(amount = min(stack.amount, split_amount))
- return new_stack
+ if(stack.amount <= 1) // last implementation was just not good so lets cheap out
+ return stack
+ return stack.split_stack(amount = 1)
diff --git a/code/modules/manufactorio/machines/smelter.dm b/code/modules/manufactorio/machines/smelter.dm
index 1a7beca66f49c..597c9a7b43a50 100644
--- a/code/modules/manufactorio/machines/smelter.dm
+++ b/code/modules/manufactorio/machines/smelter.dm
@@ -17,7 +17,7 @@
if(!isitem(receiving) || surplus() < power_cost || receive_dir != REVERSE_DIR(dir))
return MANUFACTURING_FAIL
var/list/stacks = contents - circuit
- if(!may_merge_in_contents(receiving) && length(stacks) >= 5)
+ if(length(stacks) >= 5 && !may_merge_in_contents_and_do_so(receiving))
return MANUFACTURING_FAIL_FULL
receiving.Move(src, get_dir(receiving, src))
START_PROCESSING(SSmanufacturing, src)
diff --git a/code/modules/manufactorio/machines/storagebox.dm b/code/modules/manufactorio/machines/storagebox.dm
index 21957871cf803..b8a6f5cccac39 100644
--- a/code/modules/manufactorio/machines/storagebox.dm
+++ b/code/modules/manufactorio/machines/storagebox.dm
@@ -14,7 +14,7 @@
/obj/machinery/power/manufacturing/storagebox/receive_resource(atom/movable/receiving, atom/from, receive_dir)
if(iscloset(receiving) && length(receiving.contents))
return MANUFACTURING_FAIL
- if(!may_merge_in_contents(receiving) && length(contents - circuit) >= max_stuff)
+ if(length(contents - circuit) >= max_stuff && !may_merge_in_contents_and_do_so(receiving))
return MANUFACTURING_FAIL_FULL
receiving.Move(src,receive_dir)
return MANUFACTURING_SUCCESS
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm
new file mode 100644
index 0000000000000..895200d487a1b
--- /dev/null
+++ b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm
@@ -0,0 +1,267 @@
+/obj/structure/fluff/commsbuoy_receiver
+ name = "interstellar receiver"
+ desc = "A dish-shaped component of the Comms Buoy used to detect and record interstellar signals."
+ icon = 'icons/obj/machines/telecomms.dmi'
+ icon_state = "broadcast receiver"
+
+/obj/structure/fluff/commsbuoy_processor
+ name = "comms buoy processor unit"
+ desc = "This machine is used to process and unscramble interstellar transmissions, to then be relayed and broadcast."
+ icon = 'icons/obj/machines/telecomms.dmi'
+ icon_state = "processor"
+
+/obj/structure/fluff/commsbuoy_broadcaster
+ name = "interstellar broadcaster"
+ desc = "A dish-shaped component of the Comms Buoy used to broadcast processed interstellar signals."
+ icon = 'icons/obj/machines/telecomms.dmi'
+ icon_state = "broadcaster"
+
+/obj/structure/fluff/sat_dish
+ name = "satellite dish"
+ desc = "I wonder if they get any sports channels out here."
+ density = FALSE
+ deconstructible = TRUE
+ icon = 'icons/obj/fluff/general.dmi'
+ icon_state = "sat_dish"
+
+/obj/item/keycard/nt_commsbuoy
+ name = "Nanotrasen comms buoy keycard"
+ desc = "A keycard with the NT logo prominently displayed. The last user broke off the end; the card can still swipe, but this won't insert \
+ into any chip readers now. On the back, mostly obscured by dried blood, the text \"SPINWARD\" is printed, followed by an illegible ID string."
+ color = "#4c80b1"
+ puzzle_id = "nt_commsbuoy"
+
+/obj/machinery/door/puzzle/keycard/nt_commsbuoy
+ name = "secure airlock"
+ puzzle_id = "nt_commsbuoy"
+
+/area/ruin/space/nt_commsbuoy
+ name = "\improper Nanotrasen Comms Buoy"
+ sound_environment = SOUND_AREA_SMALL_ENCLOSED
+ has_gravity = FALSE
+ ambientsounds = list(
+ 'sound/ambience/engineering/ambisin2.ogg',
+ 'sound/ambience/misc/signal.ogg',
+ 'sound/ambience/misc/signal.ogg',
+ 'sound/ambience/general/ambigen9.ogg',
+ 'sound/ambience/engineering/ambitech.ogg',
+ 'sound/ambience/engineering/ambitech2.ogg',
+ 'sound/ambience/engineering/ambitech3.ogg',
+ 'sound/ambience/misc/ambimystery.ogg',
+ ) //same ambience as tcommsat
+
+/obj/item/paper/fluff/ruins/nt_commsbuoy
+ color = COLOR_BLUE_GRAY
+
+/obj/item/paper/fluff/ruins/nt_commsbuoy/table_of_contents
+ name = "Table of Contents: NT-EBCB Model 7"
+ desc = "The Table of Contents page, text mostly faded. Rest of handbook not included."
+ default_raw_text = {"
+