diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 8821b180c1ba3..63e38216bc066 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -32,6 +32,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/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml
index cfdca5f75c289..99de590ff9de6 100644
--- a/.github/workflows/compile_changelogs.yml
+++ b/.github/workflows/compile_changelogs.yml
@@ -2,7 +2,7 @@ name: Compile changelogs
on:
schedule:
- - cron: "0 8 * * *"
+ - cron: "15 23 * * *"
workflow_dispatch:
jobs:
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/IceRuins/icemoon_underground_syndielab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm
index 8d90a5079dbb1..15a51d2858a1e 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm
@@ -571,7 +571,9 @@
pixel_y = -3;
pixel_x = -3
},
-/obj/structure/closet/crate/secure/cybersun/dawn,
+/obj/structure/closet/crate/secure/syndicate/cybersun/dawn{
+ req_access = null
+ },
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/syndielab)
"Hs" = (
@@ -781,9 +783,7 @@
"UM" = (
/obj/item/ammo_box/c9mm,
/obj/item/ammo_box/magazine/m9mm,
-/obj/structure/closet/crate/secure/gorlex_weapons{
- req_one_access = list("syndicate")
- },
+/obj/structure/closet/crate/secure/syndicate/gorlex/weapons,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/syndielab)
"Vf" = (
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/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
index edd734ee6f586..025a2b62e0a83 100644
--- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
+++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
@@ -1062,7 +1062,6 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"oJ" = (
-/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/medical/suture/emergency,
/obj/item/stack/medical/gauze/twelve,
/obj/item/reagent_containers/hypospray/medipen/blood_loss,
@@ -1070,6 +1069,9 @@
/obj/effect/turf_decal/tile/dark_red/anticorner{
dir = 4
},
+/obj/structure/closet/crate/secure/freezer/interdyne{
+ req_access = null
+ },
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research)
"oW" = (
@@ -2155,7 +2157,6 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"BG" = (
-/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/sheet/mineral/plasma/thirty,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/item/stack/sheet/iron/fifty,
@@ -2164,6 +2165,9 @@
amount = 30
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure/syndicate/interdyne{
+ req_access = null
+ },
/turf/open/floor/iron,
/area/ruin/space/has_grav/dangerous_research/maint)
"BJ" = (
@@ -3658,7 +3662,6 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research)
"VQ" = (
-/obj/structure/closet/crate/secure/interdyne,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
@@ -3669,6 +3672,9 @@
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 8
},
+/obj/structure/closet/crate/secure/syndicate/interdyne{
+ req_access = null
+ },
/turf/open/floor/iron,
/area/ruin/space/has_grav/dangerous_research/maint)
"Wm" = (
diff --git a/_maps/icebox.json b/_maps/icebox.json
index 6e9f4000611b5..541016eea7f60 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 351066a4417a4..8bf2a61fb4cee 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"
@@ -56,6 +50,13 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"abe" = (
+/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)
"abh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -82,6 +83,15 @@
},
/turf/open/floor/iron,
/area/station/security/tram)
+"abN" = (
+/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)
"acg" = (
/obj/machinery/power/smes/engineering,
/turf/open/floor/plating,
@@ -97,6 +107,33 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"acI" = (
+/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)
"acJ" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
@@ -338,17 +375,6 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron/dark/small,
/area/station/engineering/storage_shared)
-"agY" = (
-/obj/machinery/door/airlock/engineering{
- name = "Main Engineering"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/catwalk_floor,
-/area/station/engineering/break_room)
"ahf" = (
/obj/effect/turf_decal/weather/dirt{
dir = 10
@@ -601,6 +627,12 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"apc" = (
+/obj/machinery/camera/autoname/directional/west,
+/turf/open/floor/iron/stairs{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"apk" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/dark_red{
@@ -633,6 +665,15 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
+"aps" = (
+/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)
"apB" = (
/obj/structure/disposalpipe/junction{
dir = 4
@@ -758,6 +799,28 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"asg" = (
+/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)
"ask" = (
/obj/structure/cable,
/obj/machinery/door/airlock/public/glass{
@@ -816,11 +879,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{
@@ -1025,6 +1083,15 @@
},
/turf/open/floor/tram,
/area/station/security/tram)
+"awt" = (
+/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)
"aww" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -1103,10 +1170,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)
@@ -1194,17 +1257,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 +1318,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
@@ -1324,6 +1369,13 @@
/obj/machinery/light/cold/directional/north,
/turf/open/floor/iron/dark,
/area/station/security/office)
+"aAr" = (
+/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)
"aAD" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
@@ -1349,6 +1401,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
+"aAT" = (
+/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)
"aAV" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 1
@@ -1484,16 +1547,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,
@@ -1545,6 +1598,14 @@
/obj/item/storage/bag/plants/portaseeder,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"aEF" = (
+/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)
"aEJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -1677,10 +1738,35 @@
/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,
/area/station/maintenance/port/aft)
+"aHg" = (
+/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)
"aHl" = (
/obj/structure/railing/corner,
/obj/structure/disposalpipe/segment,
@@ -1705,17 +1791,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"
@@ -1740,6 +1815,18 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
+"aIr" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters"
+ },
+/obj/effect/turf_decal/siding/end{
+ dir = 8
+ },
+/obj/machinery/door/window/left/directional/south,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"aIu" = (
/obj/structure/bookcase/random/reference,
/obj/machinery/camera/autoname/directional/north,
@@ -1827,6 +1914,17 @@
dir = 8
},
/area/station/construction/mining/aux_base)
+"aKk" = (
+/obj/structure/hedge,
+/obj/machinery/status_display/supply{
+ pixel_y = -32
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/storage)
"aKm" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/smart/simple/orange{
@@ -1873,9 +1971,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,
@@ -2074,6 +2169,17 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/medbay/aft)
+"aPi" = (
+/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)
"aPx" = (
/obj/structure/chair{
dir = 1
@@ -2122,6 +2228,16 @@
/obj/machinery/holopad,
/turf/open/floor/iron/smooth_large,
/area/station/science/robotics/mechbay)
+"aQe" = (
+/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)
"aQf" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -2242,6 +2358,12 @@
/obj/machinery/newscaster/directional/west,
/turf/open/floor/iron/grimy,
/area/station/commons/vacant_room/office)
+"aRX" = (
+/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)
"aSt" = (
/obj/effect/spawner/random/structure/closet_private,
/obj/machinery/light/small/directional/north,
@@ -2502,6 +2624,20 @@
"aXI" = (
/turf/closed/wall/r_wall,
/area/station/science/lobby)
+"aXM" = (
+/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)
"aXU" = (
/obj/structure/easel,
/obj/item/canvas/twentythree_twentythree,
@@ -2551,6 +2687,18 @@
/obj/structure/tram,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
+"aYz" = (
+/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)
"aYR" = (
/obj/structure/broken_flooring/singular/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -2671,18 +2819,20 @@
/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
- },
+"bbJ" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/item/kirbyplants/organic/applebush{
- pixel_y = 5
+/obj/effect/turf_decal/siding/red{
+ dir = 4
},
-/turf/open/floor/wood,
-/area/station/cargo/miningfoundry)
+/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)
"bbT" = (
/obj/structure/chair/sofa/bench/left{
dir = 8
@@ -2721,6 +2871,19 @@
/obj/effect/turf_decal/tile/purple/opposingcorners,
/turf/open/floor/iron/cafeteria,
/area/station/science/circuits)
+"bcN" = (
+/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)
"bcO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -2732,6 +2895,18 @@
dir = 4
},
/area/station/science/xenobiology)
+"bdD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery/white,
+/obj/structure/rack,
+/obj/item/stack/cable_coil/five,
+/obj/item/pickaxe,
+/obj/item/wrench,
+/obj/item/radio/off,
+/turf/open/floor/iron/smooth,
+/area/station/commons/storage/tools)
"bdN" = (
/obj/structure/falsewall,
/turf/open/floor/plating,
@@ -2765,14 +2940,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
@@ -2807,6 +2974,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/herringbone,
/area/station/service/abandoned_gambling_den/gaming)
+"bfO" = (
+/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)
"bfU" = (
/obj/machinery/atmospherics/components/binary/pump/on{
name = "Air to Distro staging"
@@ -2887,29 +3065,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
-"bgJ" = (
-/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)
"bgQ" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -3048,6 +3203,21 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"bkS" = (
+/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)
"bkY" = (
/obj/machinery/requests_console/directional/west{
department = "Chief Medical Officer's Desk";
@@ -3083,13 +3253,6 @@
/obj/structure/hedge,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/entry)
-"bli" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_large,
-/area/station/engineering/supermatter/room)
"blk" = (
/obj/effect/turf_decal/siding/white/corner{
dir = 1
@@ -3176,15 +3339,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/stairs,
/area/station/maintenance/department/engine/atmos)
-"bmR" = (
-/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)
"bmT" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 4
@@ -3389,6 +3543,19 @@
/obj/machinery/power/apc/auto_name/directional/west,
/turf/open/floor/iron/cafeteria,
/area/station/science/breakroom)
+"bpL" = (
+/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)
"bpS" = (
/obj/item/kirbyplants/random/fullysynthetic,
/obj/item/radio/intercom/directional/north,
@@ -3739,24 +3906,6 @@
/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,
@@ -3890,6 +4039,10 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/small,
/area/station/hallway/secondary/service)
+"bzl" = (
+/obj/machinery/skill_station,
+/turf/open/floor/wood/parquet,
+/area/station/service/library)
"bzF" = (
/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -3999,30 +4152,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,
@@ -4064,16 +4193,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
@@ -4146,6 +4265,16 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"bEg" = (
+/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)
"bEw" = (
/obj/structure/sign/directions/supply{
dir = 1;
@@ -4257,6 +4386,15 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/grimy,
/area/station/commons/vacant_room/office)
+"bGj" = (
+/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)
"bGk" = (
/obj/machinery/airalarm/directional/east,
/obj/effect/turf_decal/siding/white{
@@ -4294,13 +4432,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{
@@ -4316,6 +4447,16 @@
/obj/machinery/chem_heater/withbuffer,
/turf/open/floor/iron/dark,
/area/station/medical/pharmacy)
+"bHd" = (
+/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)
"bHp" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate,
@@ -4361,6 +4502,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
+"bIm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"bIp" = (
/obj/structure/flora/bush/large/style_random{
pixel_x = -28;
@@ -4391,6 +4540,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/fore/greater)
+"bJv" = (
+/obj/machinery/door/airlock/atmos{
+ name = "Locker Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
+/turf/open/floor/catwalk_floor,
+/area/station/engineering/atmos/storage/gas)
"bJw" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/broken_flooring/singular/directional/south,
@@ -4405,6 +4566,13 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/station/service/chapel)
+"bJF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"bJH" = (
/obj/effect/turf_decal/tile/brown/opposingcorners,
/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{
@@ -4449,21 +4617,16 @@
/obj/effect/turf_decal/siding/wideplating,
/turf/open/floor/wood,
/area/station/engineering/main)
+"bKn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"bKv" = (
/obj/structure/flora/tree/jungle/style_4,
/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
@@ -4567,6 +4730,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
+"bMD" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/stone,
+/area/station/service/chapel)
"bMV" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -4658,13 +4825,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
@@ -4982,6 +5142,23 @@
/obj/machinery/chem_heater/withbuffer,
/turf/open/floor/iron,
/area/station/science/xenobiology)
+"bWZ" = (
+/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)
"bXb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5193,6 +5370,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"caE" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/station/cargo/lobby)
"caI" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/glass,
@@ -5283,23 +5464,13 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/meeting_room)
-"cbv" = (
-/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
+"cbz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/engineering/break_room)
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/station/cargo/office)
"cbH" = (
/obj/structure/cable,
/obj/item/kirbyplants/random,
@@ -5345,15 +5516,6 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth_large,
/area/station/engineering/storage_shared)
-"ccC" = (
-/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)
"ccD" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -5386,10 +5548,20 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/grass,
/area/station/science/xenobiology)
+"cdi" = (
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"cdn" = (
/obj/machinery/telecomms/server/presets/medical,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"cdx" = (
+/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)
"cdz" = (
/obj/effect/turf_decal/tile/yellow,
/obj/machinery/light/cold/dim/directional/west,
@@ -5407,14 +5579,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{
@@ -5609,6 +5773,10 @@
/obj/structure/flora/bush/flowers_pp/style_random,
/turf/open/floor/grass,
/area/station/service/chapel)
+"cid" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/small,
+/area/station/cargo/lobby)
"cig" = (
/obj/effect/turf_decal/tile/red/opposingcorners,
/obj/effect/turf_decal/tile/blue/opposingcorners{
@@ -5967,6 +6135,15 @@
"cow" = (
/turf/closed/wall,
/area/station/engineering/lobby)
+"cox" = (
+/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)
"coC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/neutral{
@@ -6178,18 +6355,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
@@ -6260,6 +6425,18 @@
/obj/machinery/light/cold/directional/north,
/turf/open/floor/iron,
/area/station/security/prison/rec)
+"cul" = (
+/obj/structure/hedge,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/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)
"cvc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -6269,6 +6446,20 @@
/obj/item/stack/sheet/mineral/plasma/five,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"cvj" = (
+/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)
"cvk" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/spawner/random/maintenance,
@@ -6279,6 +6470,17 @@
/obj/structure/bed/medical/emergency,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/lobby)
+"cvG" = (
+/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)
"cvH" = (
/obj/effect/turf_decal/trimline/purple/end{
dir = 4
@@ -6394,6 +6596,11 @@
/obj/effect/turf_decal/siding/wood/corner,
/turf/open/floor/wood,
/area/station/service/chapel)
+"cxM" = (
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/light/warm/directional/east,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"cxO" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -6482,13 +6689,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{
@@ -6581,6 +6781,28 @@
/obj/machinery/meter,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"cBt" = (
+/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)
+"cBv" = (
+/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)
"cBw" = (
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/obj/structure/filingcabinet/chestdrawer,
@@ -6877,6 +7099,12 @@
},
/turf/open/floor/iron/small,
/area/station/maintenance/port/lesser)
+"cFV" = (
+/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)
"cGj" = (
/turf/closed/wall/r_wall,
/area/station/security/execution/education)
@@ -7092,6 +7320,11 @@
},
/turf/open/floor/iron/dark/small,
/area/station/tcommsat/server)
+"cKN" = (
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/station/service/chapel/office)
"cKV" = (
/obj/machinery/light/floor,
/obj/effect/landmark/event_spawn,
@@ -7165,6 +7398,13 @@
/obj/item/radio/intercom/prison/directional/south,
/turf/open/floor/plating,
/area/station/security/prison/safe)
+"cLX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"cLY" = (
/obj/machinery/computer/security{
dir = 4
@@ -7197,6 +7437,14 @@
/obj/machinery/door/poddoor/incinerator_atmos_aux,
/turf/open/floor/plating,
/area/station/maintenance/disposal/incinerator)
+"cMM" = (
+/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)
"cMS" = (
/obj/structure/cable,
/obj/structure/chair/stool/directional/north,
@@ -7385,6 +7633,12 @@
},
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/maint)
+"cQR" = (
+/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)
"cQV" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Storage"
@@ -7604,12 +7858,29 @@
},
/turf/closed/wall,
/area/station/service/library)
+"cUz" = (
+/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)
"cUB" = (
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/obj/structure/chair/stool/bar/directional/south,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"cUC" = (
+/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,
+/obj/structure/cable,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/maintenance/central/greater)
"cUH" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -7688,16 +7959,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{
@@ -7821,6 +8082,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"cYq" = (
+/obj/machinery/computer/order_console/bitrunning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/cargo/bitrunning/den)
"cYt" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -7867,11 +8134,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,
@@ -7981,6 +8243,15 @@
/obj/machinery/light/cold/directional/west,
/turf/open/floor/iron,
/area/station/security)
+"dal" = (
+/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)
"dao" = (
/obj/effect/landmark/start/assistant,
/turf/open/floor/stone,
@@ -8051,10 +8322,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{
@@ -8129,6 +8396,18 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/security/brig/entrance)
+"dcY" = (
+/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)
"dde" = (
/obj/structure/chair{
dir = 1;
@@ -8274,11 +8553,6 @@
/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,
-/area/station/cargo/storage)
"dfT" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -8316,6 +8590,20 @@
/obj/structure/cable,
/turf/open/floor/iron/white/corner,
/area/station/science/lower)
+"dgP" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
+/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/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)
"dgV" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 5
@@ -8387,6 +8675,13 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
+"dhN" = (
+/obj/effect/spawner/random/trash,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"dim" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -8487,6 +8782,13 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"diV" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/storage)
"djc" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/red/opposingcorners,
@@ -8585,20 +8887,6 @@
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/plating,
/area/station/hallway/secondary/construction)
-"dkX" = (
-/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)
"dlj" = (
/obj/structure/reflector/single/anchored{
dir = 9
@@ -8695,10 +8983,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{
@@ -8725,18 +9009,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/wood,
/area/station/commons/fitness/recreation)
-"dnU" = (
-/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
- },
-/turf/open/floor/plating,
-/area/station/maintenance/department/engine)
"dob" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -8765,13 +9037,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,
@@ -8814,6 +9079,31 @@
},
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/maint)
+"doL" = (
+/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)
+"doS" = (
+/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/cargo/sorting)
"dph" = (
/obj/structure/railing,
/turf/open/floor/catwalk_floor,
@@ -8828,6 +9118,14 @@
},
/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
@@ -8971,13 +9269,6 @@
/obj/structure/tram,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
-"dti" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron/small,
-/area/station/engineering/break_room)
"dtk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
/turf/closed/wall,
@@ -9063,6 +9354,15 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/iron,
/area/station/security/checkpoint/escape)
+"duw" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/station/maintenance/hallway/abandoned_recreation)
"duE" = (
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/trimline/neutral/line{
@@ -9126,28 +9426,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/station/security/tram)
-"dwd" = (
-/obj/structure/table/reinforced,
-/obj/structure/desk_bell{
- pixel_x = 4;
- pixel_y = 3
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 4
- },
-/obj/effect/turf_decal/siding{
- dir = 4
- },
-/obj/effect/turf_decal/siding{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"dwr" = (
/obj/structure/flora/bush/lavendergrass/style_random,
/obj/structure/flora/rock/pile/jungle/style_random,
@@ -9176,6 +9454,17 @@
/obj/effect/landmark/navigate_destination/techstorage,
/turf/open/floor/iron,
/area/station/hallway/primary/aft)
+"dwV" = (
+/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)
"dwX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -9408,6 +9697,16 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/security/evidence)
+"dBg" = (
+/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)
"dBh" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -9451,6 +9750,11 @@
dir = 1
},
/area/station/hallway/secondary/exit/departure_lounge)
+"dBL" = (
+/obj/effect/turf_decal/siding/red,
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"dBT" = (
/obj/effect/turf_decal/box/white{
color = "#EFB341"
@@ -9515,22 +9819,30 @@
},
/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{
dir = 1
},
/area/station/maintenance/starboard/greater)
+"dDn" = (
+/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)
"dDB" = (
/turf/open/space/basic,
/area/space)
@@ -9623,13 +9935,6 @@
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
@@ -9996,6 +10301,34 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/commons/storage/tools)
+"dOD" = (
+/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)
"dOP" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
dir = 1
@@ -10081,6 +10414,15 @@
name = "Holodeck Projector Floor"
},
/area/station/holodeck/rec_center)
+"dQq" = (
+/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)
"dQE" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -10117,17 +10459,6 @@
/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)
"dRT" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -10245,11 +10576,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{
@@ -10430,6 +10756,14 @@
dir = 1
},
/area/station/science/xenobiology)
+"dXZ" = (
+/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)
"dYc" = (
/obj/structure/table,
/obj/machinery/recharger{
@@ -10525,6 +10859,16 @@
/obj/machinery/status_display/ai/directional/west,
/turf/open/floor/iron/showroomfloor,
/area/station/medical/surgery/theatre)
+"dZh" = (
+/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)
"dZk" = (
/obj/structure/cable,
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
@@ -10533,13 +10877,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
@@ -10573,6 +10910,11 @@
},
/turf/open/floor/iron/small,
/area/station/security/prison/shower)
+"dZI" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"dZT" = (
/obj/machinery/button/transport/tram/directional/south{
id = 2;
@@ -10700,6 +11042,15 @@
/obj/machinery/light/floor,
/turf/open/floor/stone,
/area/station/service/bar)
+"ecJ" = (
+/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)
"ecL" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/transit_tube/horizontal,
@@ -10833,6 +11184,19 @@
/obj/effect/spawner/random/structure/crate_loot,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"eft" = (
+/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)
"efy" = (
/obj/item/kirbyplants/organic/plant21,
/obj/machinery/status_display/ai/directional/west,
@@ -11069,21 +11433,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/science/ordnance/testlab)
-"ejA" = (
-/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)
"ejL" = (
/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
/obj/effect/turf_decal/tile/yellow,
@@ -11185,6 +11534,22 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/station/security)
+"elb" = (
+/obj/structure/table/reinforced,
+/obj/structure/displaycase/forsale/kitchen{
+ pixel_y = 5
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/end,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"elc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -11267,14 +11632,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,
@@ -11392,13 +11749,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,
@@ -11593,6 +11943,20 @@
/obj/machinery/light/cold/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/virology)
+"esM" = (
+/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)
"esP" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -11635,6 +11999,9 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/circuit,
/area/station/maintenance/port/aft)
+"etL" = (
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
"etZ" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted,
/obj/effect/turf_decal/siding/wideplating/dark/corner{
@@ -11790,6 +12157,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
+"exj" = (
+/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)
"exF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -11936,6 +12311,12 @@
/obj/machinery/light/floor,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"eAg" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"eAm" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -11995,6 +12376,9 @@
/obj/item/clothing/gloves/color/yellow,
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
+"eAI" = (
+/turf/closed/wall/rust,
+/area/station/cargo/lobby)
"eAK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -12024,17 +12408,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,
@@ -12095,17 +12468,6 @@
/obj/structure/flora/bush/pale,
/turf/open/floor/grass,
/area/station/hallway/primary/central/fore)
-"eDo" = (
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/airlock/engineering/glass{
- name = "Engineering Foyer"
- },
-/turf/open/floor/catwalk_floor,
-/area/station/engineering/break_room)
"eDr" = (
/obj/structure/table/glass,
/obj/machinery/cell_charger,
@@ -12196,6 +12558,16 @@
/obj/item/stamp/head/hos,
/turf/open/floor/carpet/red,
/area/station/command/heads_quarters/hos)
+"eDZ" = (
+/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)
"eEj" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -12304,6 +12676,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"eFZ" = (
+/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/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"eGb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -12412,18 +12797,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
@@ -12453,13 +12826,6 @@
/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,
-/turf/open/floor/iron,
-/area/station/cargo/sorting)
"eIM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/sorting/mail/flip{
@@ -13747,12 +14113,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
@@ -13887,6 +14247,13 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"fmg" = (
+/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)
"fmq" = (
/obj/structure/closet/crate,
/obj/effect/spawner/random/maintenance/three,
@@ -13969,6 +14336,18 @@
/obj/item/storage/fancy/donut_box,
/turf/open/floor/iron/textured_large,
/area/station/security/brig/entrance)
+"fnQ" = (
+/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)
"foe" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -13994,6 +14373,18 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/office)
+"fol" = (
+/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)
"fos" = (
/obj/machinery/light/small/directional/south{
dir = 4
@@ -14130,6 +14521,9 @@
/obj/machinery/computer/atmos_control/carbon_tank,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"frr" = (
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"frC" = (
/obj/effect/turf_decal/tile/neutral/full,
/turf/open/floor/iron/dark/smooth_large,
@@ -14147,26 +14541,6 @@
/obj/machinery/door/window/brigdoor/right/directional/north,
/turf/open/floor/iron/textured_large,
/area/station/security/checkpoint/customs)
-"frT" = (
-/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)
"frZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -14244,18 +14618,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,
@@ -14289,6 +14651,11 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
+"ftM" = (
+/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)
"ftT" = (
/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden,
/obj/machinery/camera/directional/west{
@@ -14499,6 +14866,14 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
+"fxc" = (
+/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)
"fxi" = (
/turf/open/floor/iron/dark/small,
/area/station/science/xenobiology)
@@ -14783,9 +15158,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
@@ -14983,6 +15355,15 @@
},
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
+"fEV" = (
+/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)
"fEX" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
@@ -15085,6 +15466,34 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/engineering/supermatter/room)
+"fGj" = (
+/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)
+"fGk" = (
+/obj/machinery/smartfridge,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/end{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
+"fGp" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"fGT" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -15184,6 +15593,13 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/grimy,
/area/station/science/cubicle)
+"fIg" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"fIj" = (
/turf/open/floor/iron/white/side,
/area/station/hallway/primary/central/aft)
@@ -15194,6 +15610,15 @@
/obj/machinery/light/floor,
/turf/open/floor/stone,
/area/station/service/bar)
+"fIn" = (
+/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)
"fIw" = (
/obj/effect/landmark/navigate_destination/dockescpod,
/turf/open/floor/plating,
@@ -15391,22 +15816,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,
@@ -15721,6 +16130,12 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/small,
/area/station/service/janitor)
+"fQy" = (
+/obj/structure/cable,
+/obj/item/reagent_containers/pill/maintenance,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"fQA" = (
/obj/effect/spawner/random/structure/chair_maintenance{
dir = 8
@@ -15729,6 +16144,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"fQB" = (
+/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)
"fQL" = (
/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/hidden{
dir = 8
@@ -15817,9 +16240,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,
@@ -15853,6 +16273,16 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/iron/white/small,
/area/station/medical/psychology)
+"fST" = (
+/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)
"fSU" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/camera/autoname/directional/west,
@@ -16149,6 +16579,11 @@
/obj/effect/turf_decal/siding/wood/corner,
/turf/open/floor/wood,
/area/station/service/chapel)
+"fYh" = (
+/obj/structure/chair/stool/directional/west,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"fYr" = (
/obj/structure/table,
/obj/item/extinguisher/empty,
@@ -16171,6 +16606,17 @@
},
/turf/open/floor/iron/dark/diagonal,
/area/station/service/bar)
+"fYS" = (
+/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)
"fYU" = (
/obj/effect/spawner/random/structure/crate_loot,
/obj/item/pickaxe,
@@ -16188,6 +16634,13 @@
/obj/item/radio/intercom/directional/east,
/turf/open/floor/iron/grimy,
/area/station/tcommsat/server)
+"fZs" = (
+/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)
"fZG" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
@@ -16205,6 +16658,20 @@
},
/turf/open/floor/carpet,
/area/station/service/library)
+"fZS" = (
+/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)
"fZZ" = (
/obj/structure/chair/sofa/bench/left{
dir = 1
@@ -16226,6 +16693,15 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/dark/small,
/area/station/command/heads_quarters/captain/private)
+"gae" = (
+/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)
"gaf" = (
/obj/structure/cable,
/obj/structure/table/wood,
@@ -16444,6 +16920,16 @@
},
/turf/open/floor/iron,
/area/station/commons/dorms)
+"gdU" = (
+/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)
"geb" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/flashlight/lamp/green,
@@ -16760,6 +17246,17 @@
/obj/machinery/nuclearbomb/beer,
/turf/open/floor/iron/freezer,
/area/station/command/corporate_suite)
+"gis" = (
+/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)
"giU" = (
/obj/effect/turf_decal/siding/thinplating_new/terracotta{
dir = 1
@@ -16879,11 +17376,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{
@@ -16891,6 +17383,32 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"glN" = (
+/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)
"glT" = (
/obj/effect/landmark/event_spawn,
/obj/structure/table,
@@ -17010,6 +17528,18 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
+"gnV" = (
+/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)
"gnY" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
@@ -17165,6 +17695,24 @@
/obj/structure/spider/stickyweb,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
+"gqG" = (
+/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)
"gqS" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
/obj/effect/turf_decal/siding/wideplating,
@@ -17221,6 +17769,22 @@
/obj/effect/landmark/start/scientist,
/turf/open/floor/iron/white/small,
/area/station/science/lab)
+"gsz" = (
+/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)
+"gsM" = (
+/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)
"gsY" = (
/turf/open/floor/iron/smooth,
/area/station/engineering/break_room)
@@ -17457,15 +18021,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{
@@ -17502,10 +18057,15 @@
/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)
+"gxF" = (
+/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)
"gxP" = (
/obj/structure/flora/bush/large/style_random,
/obj/structure/window/spawner/directional/east,
@@ -17586,6 +18146,19 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
+"gyu" = (
+/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)
"gyx" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -17851,6 +18424,13 @@
},
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"gCy" = (
+/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)
"gCA" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -17958,16 +18538,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
@@ -18082,12 +18652,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
@@ -18337,18 +18901,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)
@@ -18463,6 +19015,12 @@
},
/turf/open/floor/iron/dark,
/area/station/tcommsat/server)
+"gMi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"gMq" = (
/obj/machinery/vending/clothing,
/obj/effect/turf_decal/siding/wideplating/dark{
@@ -18567,13 +19125,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
@@ -18591,12 +19142,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,
@@ -18673,11 +19218,6 @@
/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)
"gPY" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/turf_decal/stripes/white/line{
@@ -18692,14 +19232,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,
@@ -18707,6 +19239,29 @@
/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,
@@ -18748,6 +19303,15 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/station/commons/storage/tools)
+"gRQ" = (
+/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)
"gRX" = (
/obj/machinery/newscaster/directional/south,
/obj/structure/broken_flooring/singular/directional/east,
@@ -18768,6 +19332,10 @@
/obj/effect/gibspawner/human,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"gSn" = (
+/obj/structure/sign/poster/official/random/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
"gSr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18798,13 +19366,6 @@
},
/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
@@ -19055,6 +19616,13 @@
/obj/effect/mapping_helpers/airlock/access/any/security/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"gXM" = (
+/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)
"gXN" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -19161,13 +19729,6 @@
/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
@@ -19625,16 +20186,13 @@
/obj/structure/lattice,
/turf/open/misc/asteroid/airless,
/area/space/nearstation)
-"hfC" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
+"hfo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
},
-/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)
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"hfI" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -19644,11 +20202,24 @@
},
/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
+"hfU" = (
+/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)
+"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,
@@ -19685,6 +20256,16 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
+"hgy" = (
+/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)
"hgF" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -19707,6 +20288,14 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
+"hgV" = (
+/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)
"hgY" = (
/obj/structure/cable,
/obj/structure/lattice/catwalk,
@@ -19948,6 +20537,17 @@
/obj/machinery/status_display/ai/directional/west,
/turf/open/floor/iron/dark/herringbone,
/area/station/ai_monitored/command/nuke_storage)
+"hlx" = (
+/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)
"hlC" = (
/obj/effect/spawner/structure/window,
/obj/effect/turf_decal/bot{
@@ -19995,11 +20595,20 @@
/obj/effect/spawner/random/structure/girder,
/turf/open/floor/tram,
/area/station/security/tram)
-"hmh" = (
+"hmj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 4
+/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,
@@ -20046,6 +20655,43 @@
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
+ },
+/turf/open/floor/iron/dark,
+/area/station/commons/storage/tools)
+"hmW" = (
+/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)
"hnf" = (
/obj/item/bikehorn/rubberducky{
pixel_x = -6;
@@ -20064,6 +20710,25 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
+"hnz" = (
+/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)
"hnO" = (
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment{
@@ -20147,16 +20812,6 @@
/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
- },
-/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)
"hpe" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
@@ -20206,6 +20861,22 @@
dir = 8
},
/area/station/science/lobby)
+"hqk" = (
+/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)
+"hqr" = (
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"hqH" = (
/obj/item/reagent_containers/cup/watering_can/wood,
/obj/structure/table,
@@ -20235,6 +20906,18 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"hrl" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/right/directional/west,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/end,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"hrx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20554,18 +21237,6 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"hwF" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/window/right/directional/south,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters"
- },
-/obj/effect/turf_decal/siding/end{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"hwJ" = (
/turf/closed/wall/rust,
/area/space/nearstation)
@@ -20626,13 +21297,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,
@@ -20656,12 +21320,6 @@
"hyE" = (
/turf/closed/wall,
/area/station/maintenance/starboard/aft)
-"hyO" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"hyW" = (
/obj/effect/turf_decal/weather/dirt{
dir = 10
@@ -20687,9 +21345,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,
@@ -20994,17 +21649,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,
@@ -21072,6 +21716,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/department/engine/atmos)
+"hFj" = (
+/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)
+"hFk" = (
+/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)
"hFp" = (
/obj/structure/chair/sofa/bench/right{
dir = 8
@@ -21188,6 +21846,12 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"hIf" = (
+/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)
"hIi" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -21210,6 +21874,19 @@
/obj/item/hemostat,
/turf/open/floor/iron/white,
/area/station/science/robotics/augments)
+"hJc" = (
+/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)
"hJp" = (
/turf/closed/wall/r_wall/rust,
/area/station/ai_monitored/turret_protected/ai)
@@ -21308,14 +21985,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)
@@ -21338,10 +22007,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
@@ -21399,6 +22064,15 @@
},
/turf/open/floor/plating,
/area/station/security)
+"hMe" = (
+/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)
"hMh" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/chair/stool/bamboo{
@@ -21409,12 +22083,35 @@
},
/turf/open/floor/wood/tile,
/area/station/command/heads_quarters/hop)
+"hMi" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"hMr" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/structure/closet/secure_closet/security/sec,
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/iron,
/area/station/security/lockers)
+"hMt" = (
+/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)
"hMA" = (
/obj/machinery/status_display/ai/directional/east,
/turf/open/floor/iron,
@@ -21473,6 +22170,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/disposal/incinerator)
+"hNr" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"hNv" = (
/obj/machinery/netpod,
/obj/machinery/light_switch/directional/north,
@@ -21558,13 +22259,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,
@@ -21597,6 +22291,31 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/engine,
/area/station/engineering/gravity_generator)
+"hPx" = (
+/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)
+"hPN" = (
+/obj/machinery/light/small/dim/directional/north,
+/obj/effect/spawner/random/structure/crate,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"hPU" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -21709,6 +22428,19 @@
/obj/machinery/atmospherics/components/binary/pump,
/turf/open/floor/engine,
/area/station/science/ordnance/burnchamber)
+"hRD" = (
+/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)
"hRO" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -21762,6 +22494,17 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"hTy" = (
+/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)
"hTz" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
@@ -21855,6 +22598,13 @@
/obj/machinery/power/apc/auto_name/directional/west,
/turf/open/floor/iron,
/area/station/commons/storage/tools)
+"hVn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"hVo" = (
/obj/machinery/smartfridge/organ,
/obj/effect/turf_decal/trimline/blue/corner{
@@ -22020,6 +22770,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
+"hXN" = (
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"hXU" = (
/turf/closed/wall,
/area/station/security/execution/education)
@@ -22118,18 +22872,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,
@@ -22145,6 +22887,13 @@
},
/turf/open/floor/iron,
/area/station/security/tram)
+"iae" = (
+/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)
"iai" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -22266,6 +23015,13 @@
},
/turf/open/floor/iron/dark/small,
/area/station/science/xenobiology)
+"ibO" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 10
+ },
+/obj/structure/flora/tree/jungle/style_2,
+/turf/open/floor/grass,
+/area/station/service/chapel)
"ibP" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 4
@@ -22534,6 +23290,16 @@
dir = 1
},
/area/station/science/lobby)
+"igf" = (
+/obj/structure/disposalpipe/segment,
+/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)
"igr" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -22671,6 +23437,18 @@
},
/turf/open/space/basic,
/area/space)
+"iiB" = (
+/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)
"iiE" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/obj/effect/turf_decal/stripes/line{
@@ -22937,14 +23715,13 @@
/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,
+"imW" = (
+/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)
"inh" = (
/obj/structure/disposalpipe/segment,
@@ -23045,17 +23822,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
@@ -23173,13 +23939,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{
@@ -23189,10 +23948,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,
@@ -23716,17 +24471,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/department/bridge)
-"izE" = (
-/obj/machinery/door/airlock/atmos{
- name = "Locker Room"
- },
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/catwalk_floor,
-/area/station/engineering/atmos/storage/gas)
"izF" = (
/obj/effect/turf_decal/siding/wideplating,
/turf/open/floor/wood,
@@ -23745,6 +24489,16 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"izV" = (
+/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)
"iAk" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 10
@@ -23846,14 +24600,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,
@@ -24027,40 +24773,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"iDV" = (
-/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)
-"iEi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/door/airlock/public/glass{
- name = "Chapel Office"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/turf/open/floor/iron/textured_half,
-/area/station/service/chapel/office)
"iEk" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -24150,6 +24862,15 @@
},
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"iFK" = (
+/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)
"iFP" = (
/obj/item/kirbyplants/random/fullysynthetic,
/turf/open/floor/plating/rust,
@@ -24428,12 +25149,6 @@
/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)
"iJq" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -24582,16 +25297,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{
@@ -24871,6 +25576,17 @@
/obj/structure/cable,
/turf/open/floor/circuit/green,
/area/station/ai_monitored/command/nuke_storage)
+"iPk" = (
+/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)
"iPn" = (
/mob/living/simple_animal/bot/secbot/beepsky/armsky,
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
@@ -24883,6 +25599,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security/prison/garden)
+"iPz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"iPF" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -25069,10 +25791,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{
@@ -25149,6 +25867,16 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"iUB" = (
+/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)
"iUH" = (
/obj/effect/turf_decal/tile/neutral,
/obj/machinery/camera/autoname/directional/south,
@@ -25275,16 +26003,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,
@@ -25484,6 +26202,20 @@
/obj/structure/cable,
/turf/open/floor/iron/small,
/area/station/security/processing)
+"iZi" = (
+/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)
"iZs" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 4
@@ -25590,6 +26322,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"jad" = (
+/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)
"jar" = (
/obj/machinery/drone_dispenser,
/turf/open/misc/asteroid,
@@ -25636,14 +26379,10 @@
/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,
+"jaO" = (
+/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)
"jaP" = (
/obj/effect/mob_spawn/corpse/human/clown,
@@ -25951,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,
@@ -26101,6 +26833,11 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/medical/chemistry)
+"jku" = (
+/obj/effect/spawner/random/structure/crate,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"jkz" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -26128,13 +26865,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,
@@ -26160,14 +26890,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,
@@ -26259,12 +26981,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,
@@ -26435,14 +27151,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,
@@ -26468,39 +27176,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,
@@ -26539,6 +27214,11 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/chemistry)
+"jrl" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/iron/dark/side,
+/area/station/hallway/primary/central/fore)
"jrs" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -26589,11 +27269,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{
@@ -26652,13 +27327,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
@@ -26707,30 +27375,16 @@
/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
+"juK" = (
+/obj/structure/railing{
+ dir = 4
},
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/package_wrap{
- pixel_y = 5
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 4
},
-/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,
@@ -26877,6 +27531,11 @@
/obj/structure/frame/machine,
/turf/open/floor/tram,
/area/station/security/tram)
+"jxc" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"jxk" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -26903,14 +27562,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
@@ -26988,6 +27639,35 @@
},
/turf/open/floor/iron/diagonal,
/area/station/engineering/lobby)
+"jyE" = (
+/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)
"jyF" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 9
@@ -27088,6 +27768,10 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron/showroomfloor,
/area/station/service/barber)
+"jAm" = (
+/obj/effect/turf_decal/stripes/white/line,
+/turf/open/floor/iron/dark/side,
+/area/station/cargo/storage)
"jAp" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/white/diagonal,
@@ -27152,6 +27836,10 @@
/obj/machinery/flasher/directional/north,
/turf/open/floor/circuit/red,
/area/station/ai_monitored/turret_protected/ai)
+"jBC" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"jBQ" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -27159,12 +27847,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,
@@ -27179,13 +27861,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";
@@ -27207,16 +27882,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,
@@ -27335,27 +28000,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
@@ -27540,18 +28184,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold/dark/hidden,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"jHy" = (
-/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)
"jHB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -27602,14 +28234,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
@@ -27649,64 +28273,6 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/cmo,
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
-"jIH" = (
-/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{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- 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" = (
-/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{
- 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{
- 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,
-/turf/open/floor/iron,
-/area/station/service/hydroponics)
"jJg" = (
/obj/effect/turf_decal/siding/wideplating,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -27765,37 +28331,10 @@
/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,
/area/station/security/prison/workout)
-"jKK" = (
-/obj/machinery/smartfridge,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 4
- },
-/obj/effect/turf_decal/siding/end{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"jKS" = (
/obj/structure/table/reinforced,
/obj/item/trash/cheesie{
@@ -27818,20 +28357,6 @@
/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{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/line{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/fore)
"jLv" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -27890,12 +28415,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
@@ -28073,6 +28592,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
+"jPn" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"jPo" = (
/obj/structure/cable,
/obj/machinery/door/airlock/maintenance{
@@ -28087,6 +28612,10 @@
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
/area/station/maintenance/fore/greater)
+"jPC" = (
+/obj/effect/spawner/random/trash,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"jPM" = (
/obj/structure/rack,
/obj/effect/spawner/random/techstorage/security_all,
@@ -28130,6 +28659,12 @@
/obj/structure/cable,
/turf/open/floor/iron/textured_half,
/area/station/hallway/primary/central/fore)
+"jQX" = (
+/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)
"jRk" = (
/obj/effect/turf_decal/siding/white{
dir = 1
@@ -28450,6 +28985,16 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"jVn" = (
+/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)
"jVs" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -28460,11 +29005,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{
@@ -28570,19 +29110,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
@@ -28602,6 +29129,14 @@
/obj/effect/mapping_helpers/airlock/access/any/security/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"jXq" = (
+/obj/machinery/computer/cargo{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/cargo/storage)
"jXr" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -28746,21 +29281,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{
@@ -28786,31 +29309,18 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/storage)
-"kad" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/condiment/peppermill{
- pixel_x = 3
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- pixel_x = -3
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/effect/spawner/random/food_or_drink/condiment,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 4
- },
-/obj/effect/turf_decal/siding{
+"jZW" = (
+/obj/effect/turf_decal/siding/wood{
dir = 4
},
-/obj/effect/turf_decal/siding{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/chair/comfy/brown{
+ buildstackamount = 0;
+ color = "#c45c57";
dir = 8
},
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"kam" = (
/obj/effect/decal/cleanable/cobweb,
/obj/machinery/disposal/delivery_chute{
@@ -28875,22 +29385,6 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
-"kaL" = (
-/obj/structure/table/reinforced,
-/obj/structure/displaycase/forsale/kitchen{
- pixel_y = 5
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 4
- },
-/obj/effect/turf_decal/siding/end,
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"kaP" = (
/obj/structure/lattice,
/obj/structure/grille,
@@ -28924,6 +29418,13 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/smooth,
/area/station/maintenance/solars/starboard/fore)
+"kbH" = (
+/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)
"kbI" = (
/obj/structure/table/glass,
/obj/machinery/cell_charger,
@@ -28949,6 +29450,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
+"kct" = (
+/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)
"kcA" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -28957,6 +29465,11 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/iron/showroomfloor,
/area/station/medical/surgery/theatre)
+"kcP" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"kcQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{
dir = 1
@@ -29010,16 +29523,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{
@@ -29054,22 +29557,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,
@@ -29233,18 +29720,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
@@ -29427,6 +29902,15 @@
/obj/machinery/light/small/dim/directional/east,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
+"kkw" = (
+/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)
"kkK" = (
/obj/effect/spawner/random/structure/closet_maintenance,
/obj/effect/spawner/random/maintenance,
@@ -29570,6 +30054,13 @@
},
/turf/open/floor/plating,
/area/station/cargo/storage)
+"kmq" = (
+/obj/effect/landmark/start/hangover,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/aft)
"kms" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -29663,12 +30154,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,
@@ -29719,19 +30204,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,
@@ -29787,16 +30259,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,
@@ -29823,38 +30285,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)
@@ -29970,15 +30405,6 @@
/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)
"ksv" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 8
@@ -29986,33 +30412,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,
@@ -30024,13 +30423,6 @@
},
/turf/open/floor/catwalk_floor/iron,
/area/station/engineering/gravity_generator)
-"ksD" = (
-/obj/machinery/vending/autodrobe,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/turf/open/floor/iron/small,
-/area/station/commons/fitness/locker_room)
"ksJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -30060,6 +30452,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
+"ksX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"kte" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -30091,6 +30497,15 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
+"kts" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ktB" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -30111,11 +30526,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
@@ -30132,28 +30542,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"
@@ -30390,16 +30778,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,
@@ -30441,6 +30819,19 @@
/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/iron/smooth_large,
/area/station/cargo/warehouse)
+"kzK" = (
+/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)
"kzP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/trash,
@@ -30554,6 +30945,11 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
+"kCr" = (
+/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)
"kCy" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
@@ -30619,10 +31015,22 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"kDi" = (
+/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)
"kDs" = (
/obj/structure/chair/stool/directional/north,
/turf/open/floor/carpet/purple,
/area/station/commons/dorms)
+"kDT" = (
+/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)
"kEd" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -30660,6 +31068,10 @@
/obj/machinery/light/small/dim/directional/north,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
+"kEz" = (
+/obj/effect/turf_decal/siding/red,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"kEA" = (
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/line{
@@ -30680,15 +31092,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
@@ -30723,22 +31126,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,
@@ -30748,13 +31135,24 @@
/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)
+"kGd" = (
+/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)
"kGn" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -30914,32 +31312,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,
@@ -30962,17 +31334,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{
@@ -30982,6 +31343,12 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"kJn" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"kJp" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -31062,10 +31429,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/disposal/incinerator)
-"kLk" = (
-/obj/docking_port/stationary/syndicate/northeast,
-/turf/open/space/basic,
-/area/space)
"kLo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -31106,6 +31469,14 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"kMU" = (
+/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)
"kMW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -31167,6 +31538,14 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
+"kNL" = (
+/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)
"kNX" = (
/obj/structure/closet/masks,
/obj/structure/extinguisher_cabinet/directional/north,
@@ -31244,15 +31623,6 @@
},
/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{
@@ -31297,6 +31667,11 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"kQf" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"kQk" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -31344,14 +31719,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{
@@ -31387,11 +31754,23 @@
/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)
+"kSh" = (
+/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)
"kSj" = (
/obj/structure/chair/plastic{
dir = 8
@@ -31419,14 +31798,20 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
-"kSO" = (
-/obj/structure/cable,
+"kSK" = (
+/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/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/photocopier,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"kTm" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/siding/wood{
@@ -31541,20 +31926,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,
@@ -31573,6 +31944,14 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/wood,
/area/station/maintenance/starboard/greater)
+"kWf" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/station/cargo/storage)
"kWk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -31657,25 +32036,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
@@ -31691,10 +32056,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{
@@ -31724,11 +32085,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{
@@ -31773,15 +32129,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{
@@ -31824,9 +32171,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{
@@ -31855,15 +32199,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
@@ -31880,35 +32215,6 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/smooth,
/area/station/maintenance/solars/port/aft)
-"lbi" = (
-/obj/structure/flora/bush/flowers_br,
-/obj/structure/flora/bush/flowers_yw,
-/obj/machinery/light/floor,
-/turf/open/floor/grass,
-/area/station/hallway/primary/central/fore)
-"lbl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/item/storage/fancy/candle_box,
-/obj/structure/rack/skeletal,
-/obj/machinery/camera/autoname/directional/west,
-/obj/structure/sign/poster/official/random/directional/north,
-/turf/open/floor/iron/grimy,
-/area/station/service/library)
-"lbF" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/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)
"lbG" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 1
@@ -32003,14 +32309,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)
@@ -32205,12 +32503,29 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/security/prison)
+"lfD" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/window/spawner/directional/west,
+/obj/effect/turf_decal/stripes/end,
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"lfU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/brown/opposingcorners,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
+"lgb" = (
+/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)
"lgf" = (
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
@@ -32633,15 +32948,6 @@
/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,
@@ -32666,10 +32972,19 @@
"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)
+"llw" = (
+/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)
"llC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -32683,19 +32998,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{
@@ -32737,10 +33039,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{
@@ -32757,28 +33055,12 @@
},
/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)
"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
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
"lnu" = (
/obj/machinery/holopad,
/turf/open/floor/iron/dark,
@@ -32882,16 +33164,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,
@@ -32941,6 +33213,14 @@
/obj/machinery/light/no_nightlight/directional/south,
/turf/open/floor/iron/small,
/area/station/engineering/atmos/office)
+"lpz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"lpC" = (
/turf/open/floor/plating,
/area/station/service/chapel/funeral)
@@ -33016,14 +33296,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,
@@ -33188,6 +33460,17 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/dorms)
+"lug" = (
+/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)
"lun" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/access/all/command/general,
@@ -33254,24 +33537,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
@@ -33307,6 +33572,24 @@
},
/turf/open/floor/wood/parquet,
/area/station/service/greenroom)
+"lvB" = (
+/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)
"lvJ" = (
/obj/structure/flora/bush/flowers_br,
/turf/open/floor/grass,
@@ -33367,15 +33650,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{
@@ -33434,17 +33708,6 @@
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)
"lxI" = (
/obj/effect/turf_decal/siding/wood/end,
/obj/effect/spawner/random/engineering/atmospherics_portable,
@@ -33549,13 +33812,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,
@@ -33565,16 +33821,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
-"lzF" = (
-/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)
"lzG" = (
/obj/structure/flora/bush/jungle/c/style_3{
pixel_x = -7;
@@ -33596,51 +33842,15 @@
dir = 1
},
/area/station/command/bridge)
-"lzU" = (
-/obj/structure/disposalpipe/segment{
+"lAE" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/effect/turf_decal/stripes/white/line{
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{
+/turf/open/floor/iron/dark/side{
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)
+/area/station/cargo/storage)
"lAO" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/effect/decal/cleanable/dirt,
@@ -33697,31 +33907,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{
@@ -33783,14 +33968,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,
@@ -33821,6 +33998,19 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/iron,
/area/station/engineering/lobby)
+"lCC" = (
+/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)
"lCK" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -33912,16 +34102,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{
@@ -33972,23 +34152,6 @@
},
/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)
@@ -34013,13 +34176,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,
@@ -34032,10 +34188,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,
@@ -34058,6 +34210,22 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron/smooth,
/area/station/command/gateway)
+"lGH" = (
+/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)
"lGK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -34078,11 +34246,6 @@
/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,
@@ -34107,10 +34270,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,
@@ -34183,12 +34342,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,
@@ -34213,13 +34366,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{
@@ -34229,27 +34375,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
@@ -34257,12 +34382,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,
@@ -34304,18 +34423,23 @@
/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
+"lJU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/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)
+/turf/open/floor/iron/stairs{
+ dir = 8
+ },
+/area/station/cargo/storage)
+"lKf" = (
+/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)
"lKg" = (
/obj/machinery/firealarm/directional/east,
/turf/open/floor/wood,
@@ -34361,20 +34485,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)
@@ -34406,13 +34516,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
@@ -34488,14 +34591,18 @@
/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{
+"lMP" = (
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/iron/grimy,
-/area/station/service/library)
+/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)
"lNf" = (
/obj/effect/turf_decal/siding/blue,
/turf/open/floor/iron/white/small,
@@ -34561,6 +34668,15 @@
/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,
@@ -34575,6 +34691,25 @@
/obj/effect/landmark/navigate_destination/court,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"lOc" = (
+/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)
"lOi" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34628,6 +34763,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"lPq" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"lPC" = (
/obj/structure/bookcase/random,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -34644,12 +34783,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{
@@ -34712,12 +34845,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,
@@ -34747,6 +34874,18 @@
/obj/effect/turf_decal/tile/brown/opposingcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"lRF" = (
+/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)
"lRK" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -34859,14 +34998,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
@@ -34885,20 +35016,35 @@
/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
},
/turf/open/floor/tram,
/area/station/maintenance/department/medical/central)
+"lUh" = (
+/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)
"lUl" = (
/obj/effect/turf_decal/plaque{
icon_state = "L1";
@@ -34915,17 +35061,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,
@@ -34964,11 +35099,24 @@
/obj/structure/window/spawner/directional/west,
/turf/open/floor/plating,
/area/station/cargo/sorting)
+"lUW" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"lVg" = (
/obj/structure/transit_tube/horizontal,
/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
@@ -34987,6 +35135,13 @@
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"lVC" = (
+/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)
"lVN" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/spawner/random/maintenance,
@@ -35001,6 +35156,13 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/maintenance/disposal/incinerator)
+"lVY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"lWk" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/large,
@@ -35026,40 +35188,24 @@
/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,
-/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,
+"lWB" = (
+/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
-/obj/item/folder/yellow{
- pixel_x = 3;
- pixel_y = 6
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/item/dest_tagger{
- pixel_x = -11;
- pixel_y = 4
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
+"lWH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/turf/open/floor/carpet/donk,
-/area/station/command/heads_quarters/qm)
+/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/maintenance/hallway/abandoned_recreation)
"lWV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -35077,10 +35223,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
@@ -35095,12 +35237,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,
@@ -35159,14 +35295,6 @@
/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{
- dir = 1
- },
-/obj/item/banner/cargo,
-/turf/open/floor/iron/grimy,
-/area/station/command/heads_quarters/qm)
"lYf" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -35191,28 +35319,12 @@
},
/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)
+"lYA" = (
+/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)
"lYF" = (
/obj/effect/turf_decal/siding/yellow{
dir = 9
@@ -35231,21 +35343,24 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
-"lYP" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/item/kirbyplants/random,
-/obj/machinery/firealarm/directional/south,
-/obj/item/storage/belt/utility,
+"lYS" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron/smooth,
-/area/station/commons/storage/tools)
+/area/station/cargo/warehouse)
"lYT" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/engineering/atmospherics_portable,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
/area/station/maintenance/port/greater)
+"lYU" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"lYV" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 4
@@ -35282,6 +35397,16 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron,
/area/station/service/hydroponics)
+"lZp" = (
+/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)
"lZr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -35290,6 +35415,18 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
+"lZs" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/right/directional/south,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters"
+ },
+/obj/effect/turf_decal/siding/end{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"lZt" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
@@ -35350,6 +35487,17 @@
/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,
@@ -35397,6 +35545,14 @@
/obj/structure/broken_flooring/singular/directional/east,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
+"maG" = (
+/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)
"maK" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
/obj/effect/turf_decal/arrows{
@@ -35554,14 +35710,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
@@ -35600,6 +35748,11 @@
dir = 4
},
/area/station/hallway/secondary/entry)
+"meZ" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"mfl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/firealarm/directional/west,
@@ -35809,6 +35962,16 @@
/obj/machinery/light/cold/directional/east,
/turf/open/floor/iron/dark/small,
/area/station/science/xenobiology)
+"mjP" = (
+/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)
"mjQ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -35824,13 +35987,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
@@ -35870,28 +36026,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{
@@ -35921,13 +36060,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,
@@ -35947,6 +36079,21 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"mlF" = (
+/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)
"mlK" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -36065,6 +36212,10 @@
},
/turf/open/floor/iron/dark/small,
/area/station/maintenance/central/lesser)
+"mnm" = (
+/obj/structure/cable,
+/turf/closed/wall,
+/area/station/maintenance/port/greater)
"mnw" = (
/obj/effect/spawner/random/vending/colavend,
/obj/machinery/firealarm/directional/east,
@@ -36107,12 +36258,6 @@
/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
- },
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"mog" = (
/obj/machinery/oven/range,
/obj/machinery/airalarm/directional/north,
@@ -36217,13 +36362,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,
@@ -36250,24 +36388,41 @@
},
/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)
+"mrL" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
+"mrP" = (
+/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)
"msg" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -36287,12 +36442,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;
@@ -36302,17 +36451,18 @@
/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)
+"msQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"mtc" = (
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
@@ -36322,6 +36472,19 @@
},
/turf/open/floor/wood/tile,
/area/station/maintenance/central/lesser)
+"mtt" = (
+/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)
"mtP" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -36389,6 +36552,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/small,
/area/station/hallway/primary/fore)
+"muO" = (
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"muS" = (
/turf/open/floor/iron/dark,
/area/station/security/prison/workout)
@@ -36487,15 +36654,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{
@@ -36504,6 +36662,14 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"mwU" = (
+/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)
"mxa" = (
/obj/structure/window/reinforced/spawner/directional/east,
/turf/open/floor/glass/reinforced,
@@ -36669,6 +36835,10 @@
},
/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,
@@ -36870,6 +37040,16 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"mEH" = (
+/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)
"mEL" = (
/obj/structure/disposalpipe/trunk{
dir = 1
@@ -36897,6 +37077,12 @@
/obj/structure/window/reinforced/spawner/directional/east,
/turf/open/floor/eighties,
/area/station/service/abandoned_gambling_den/gaming)
+"mFk" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"mFq" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -37135,13 +37321,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
@@ -37280,15 +37459,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{
@@ -37368,23 +37538,6 @@
},
/turf/open/floor/wood,
/area/station/engineering/main)
-"mMf" = (
-/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)
"mMp" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -37579,16 +37732,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{
@@ -37617,6 +37760,15 @@
dir = 8
},
/area/station/command/heads_quarters/hos)
+"mRk" = (
+/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)
"mRl" = (
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
@@ -37694,11 +37846,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)
@@ -37792,16 +37939,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{
@@ -37812,13 +37949,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,
@@ -37897,6 +38027,15 @@
dir = 4
},
/area/station/medical/medbay/central)
+"mVS" = (
+/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)
"mWc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -37988,6 +38127,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"mYe" = (
+/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)
"mYj" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
dir = 1
@@ -38080,16 +38225,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{
@@ -38280,6 +38415,11 @@
/obj/structure/tank_dispenser/oxygen,
/turf/open/floor/iron,
/area/station/security/tram)
+"ndW" = (
+/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)
"ndY" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 8
@@ -38331,6 +38471,14 @@
},
/turf/open/floor/wood,
/area/station/engineering/atmos/office)
+"nfu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"nfG" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
dir = 1
@@ -38352,6 +38500,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/security/prison)
+"ngT" = (
+/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/spawner/random/structure/closet_empty/crate,
+/obj/effect/turf_decal/bot_white,
+/turf/open/floor/iron/smooth_large,
+/area/station/cargo/warehouse)
"nhl" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -38378,6 +38534,13 @@
},
/turf/open/floor/tram,
/area/station/maintenance/department/medical/central)
+"nhA" = (
+/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)
"nhB" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/effect/decal/cleanable/dirt,
@@ -38718,16 +38881,6 @@
/obj/structure/cable,
/turf/open/floor/mineral/titanium,
/area/station/command/heads_quarters/ce)
-"nnc" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
"nnd" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
dir = 1
@@ -38758,6 +38911,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth_large,
/area/station/engineering/break_room)
+"noc" = (
+/obj/structure/rack,
+/obj/item/storage/medkit/regular,
+/turf/open/floor/iron/dark/textured_half{
+ dir = 1
+ },
+/area/station/cargo/storage)
"noe" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -38877,21 +39037,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{
@@ -38904,6 +39049,15 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/white/small,
/area/station/commons/toilet/restrooms)
+"nqh" = (
+/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)
"nqx" = (
/obj/machinery/power/turbine/turbine_outlet{
dir = 8
@@ -38977,20 +39131,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,
@@ -39042,17 +39182,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,
@@ -39068,11 +39197,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,
@@ -39095,6 +39219,10 @@
dir = 8
},
/area/station/ai_monitored/security/armory)
+"ntr" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"nts" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/decal/cleanable/dirt,
@@ -39110,6 +39238,25 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white/small,
/area/station/service/hydroponics)
+"ntB" = (
+/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)
"ntF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/status_display/ai/directional/south,
@@ -39118,10 +39265,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
@@ -39154,15 +39297,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,
@@ -39252,6 +39386,10 @@
/obj/structure/alien/weeds/node,
/turf/open/floor/plating,
/area/station/maintenance/starboard/greater)
+"nvz" = (
+/obj/effect/turf_decal/loading_area/white,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"nvB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39295,6 +39433,14 @@
/obj/effect/spawner/random/trash/bin,
/turf/open/floor/iron/white/small,
/area/station/science/ordnance/storage)
+"nwA" = (
+/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)
"nwK" = (
/obj/machinery/door/airlock/atmos/glass{
name = "HFR Chamber"
@@ -39314,14 +39460,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
@@ -39351,34 +39489,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)
-"nxY" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/effect/spawner/random/food_or_drink/donuts,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 4
- },
-/obj/effect/turf_decal/siding{
- dir = 4
- },
-/obj/effect/turf_decal/siding{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"nyd" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -39438,14 +39548,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)
@@ -39454,22 +39556,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
@@ -39606,6 +39692,13 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/engineering/supermatter)
+"nBZ" = (
+/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)
"nCe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39644,6 +39737,23 @@
"nCH" = (
/turf/closed/wall/r_wall,
/area/station/security)
+"nCI" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/small,
+/area/station/cargo/lobby)
+"nCQ" = (
+/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)
"nCR" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line,
@@ -39795,10 +39905,26 @@
/obj/machinery/telecomms/server/presets/command,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"nFu" = (
+/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)
"nFv" = (
/obj/machinery/light/no_nightlight/directional/west,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"nFw" = (
+/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)
"nFD" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window,
@@ -39822,30 +39948,6 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"nFT" = (
-/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)
"nFU" = (
/obj/machinery/door/airlock{
name = "Maintenance"
@@ -39885,6 +39987,13 @@
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"nGh" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"nGi" = (
/obj/effect/turf_decal/tile/dark_red{
dir = 4
@@ -39900,12 +40009,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{
@@ -39937,20 +40040,23 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/maintenance/department/engine/atmos)
-"nHp" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"nHq" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow{
+ pixel_x = 13;
+ pixel_y = 1
},
-/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
+/obj/item/flashlight/lamp{
+ pixel_x = -4;
+ pixel_y = 4
},
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
+/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,
@@ -40015,6 +40121,18 @@
"nId" = (
/turf/open/floor/circuit/green,
/area/station/ai_monitored/command/nuke_storage)
+"nIo" = (
+/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)
"nIx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/siding/wood{
@@ -40129,10 +40247,30 @@
/obj/machinery/light/floor,
/turf/open/floor/iron/dark,
/area/station/tcommsat/server)
+"nKm" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/station/cargo/office)
"nKz" = (
/obj/machinery/light/floor,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"nKI" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/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)
"nLk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -40147,12 +40285,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{
@@ -40204,13 +40336,14 @@
/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
+"nMD" = (
+/obj/machinery/airalarm/directional/north,
+/obj/item/kirbyplants/organic/applebush{
+ pixel_y = 5
},
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"nMW" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/red/line{
@@ -40244,6 +40377,27 @@
},
/turf/open/floor/plating,
/area/station/maintenance/hallway/abandoned_command)
+"nNk" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Main Engineering"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
+/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)
+"nNv" = (
+/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)
"nNz" = (
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment{
@@ -40274,6 +40428,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible,
/turf/open/floor/plating,
/area/station/science/ordnance/testlab)
+"nOz" = (
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"nOD" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
/obj/machinery/power/apc/auto_name/directional/west{
@@ -40311,15 +40473,6 @@
/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,
@@ -40358,6 +40511,28 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth_large,
/area/station/cargo/warehouse)
+"nPY" = (
+/obj/structure/table/reinforced,
+/obj/structure/desk_bell{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"nQa" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -40427,6 +40602,20 @@
/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"
@@ -40450,12 +40639,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,
@@ -40502,6 +40685,14 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/maintenance/department/engine)
+"nSx" = (
+/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)
"nSA" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral{
@@ -40523,12 +40714,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,
@@ -40538,22 +40723,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{
@@ -40620,13 +40789,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,
@@ -40660,6 +40822,11 @@
},
/turf/open/floor/iron/white/small,
/area/station/service/janitor)
+"nVc" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"nVg" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -40742,6 +40909,13 @@
/obj/structure/hedge,
/turf/open/floor/iron/smooth,
/area/station/hallway/secondary/command)
+"nWu" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/station/cargo/office)
"nWV" = (
/obj/effect/spawner/random/entertainment/arcade{
dir = 1
@@ -40841,12 +41015,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{
@@ -40988,13 +41156,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,
@@ -41011,6 +41172,21 @@
"ocb" = (
/turf/open/floor/iron/white/small,
/area/station/science/cubicle)
+"ocu" = (
+/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)
"ocv" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -41079,12 +41255,12 @@
/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)
+"odZ" = (
+/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)
"oer" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
@@ -41235,15 +41411,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{
@@ -41251,13 +41418,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,
@@ -41301,6 +41461,15 @@
/obj/structure/flora/bush/flowers_yw/style_random,
/turf/open/floor/grass,
/area/station/medical/treatment_center)
+"ohy" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"ohz" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -41357,16 +41526,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,
@@ -41381,13 +41540,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
@@ -41490,6 +41642,9 @@
},
/turf/open/floor/catwalk_floor/iron_dark,
/area/station/science/ordnance)
+"okX" = (
+/turf/closed/wall,
+/area/station/maintenance/hallway/abandoned_recreation)
"okZ" = (
/obj/structure/closet/secure_closet/personal,
/obj/item/radio/intercom/directional/west,
@@ -41638,6 +41793,22 @@
},
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"ooI" = (
+/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)
"ooK" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -41885,13 +42056,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{
@@ -41904,6 +42068,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"otT" = (
+/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)
"otX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41950,6 +42123,12 @@
"ouz" = (
/turf/open/floor/iron/dark/small,
/area/station/command/heads_quarters/rd)
+"ouG" = (
+/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)
"ouH" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -42025,13 +42204,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,
@@ -42069,13 +42241,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,
@@ -42135,13 +42300,6 @@
},
/turf/open/floor/wood/parquet,
/area/station/service/library)
-"oxw" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/white/line{
- dir = 9
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"oyn" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/public/glass{
@@ -42149,14 +42307,6 @@
},
/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,
@@ -42188,10 +42338,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,
@@ -42369,9 +42515,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,
@@ -42391,6 +42534,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
+"oCY" = (
+/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)
"oDB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42467,6 +42620,20 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"oFa" = (
+/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)
"oFc" = (
/obj/effect/spawner/random/trash,
/obj/machinery/light/small/directional/west,
@@ -42482,23 +42649,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)
@@ -42557,6 +42707,13 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/smooth_large,
/area/station/science/auxlab/firing_range)
+"oGN" = (
+/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)
"oGQ" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -42689,6 +42846,16 @@
/obj/machinery/smartfridge,
/turf/open/floor/plating,
/area/station/service/hydroponics)
+"oJk" = (
+/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)
"oJm" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/smooth_large,
@@ -42789,10 +42956,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
@@ -42870,11 +43033,32 @@
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/station/solars/starboard/aft)
+"oMF" = (
+/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)
"oMI" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/basic/slime,
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"oNa" = (
+/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)
"oNd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/siding/blue/corner{
@@ -42920,13 +43104,6 @@
dir = 8
},
/area/station/science/research)
-"oNW" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/sign/poster/official/random/directional/north,
-/turf/open/floor/iron,
-/area/station/hallway/primary/central/aft)
"oNX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -43053,34 +43230,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{
@@ -43273,24 +43425,14 @@
},
/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
+"oSc" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/iron,
-/area/station/cargo/storage)
-"oSj" = (
-/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)
+/obj/machinery/photocopier,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"oSv" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/computer/rdconsole{
@@ -43298,12 +43440,6 @@
},
/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)
"oTf" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -43321,6 +43457,17 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
+"oTi" = (
+/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)
"oTj" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/trash,
@@ -43625,14 +43772,8 @@
/turf/open/floor/iron/dark,
/area/station/command/corporate_dock)
"oZg" = (
-/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)
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/cargo/lobby)
"oZi" = (
/obj/effect/turf_decal/siding/wideplating/dark/corner,
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
@@ -43872,6 +44013,13 @@
/obj/structure/thermoplastic/light,
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
+"pdk" = (
+/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)
"pdl" = (
/obj/machinery/light/small/directional/north,
/obj/structure/disposalpipe/segment{
@@ -43908,6 +44056,11 @@
/obj/machinery/portable_atmospherics/pipe_scrubber,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/storage)
+"pdD" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"pdR" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -43946,17 +44099,6 @@
/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)
"peN" = (
/obj/structure/lattice,
/obj/machinery/camera/motion/directional/north{
@@ -44164,21 +44306,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{
@@ -44262,23 +44389,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,
@@ -44331,18 +44441,6 @@
/obj/item/weldingtool,
/turf/open/floor/iron/dark,
/area/station/maintenance/department/engine/atmos)
-"pkK" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters"
- },
-/obj/effect/turf_decal/siding/end{
- dir = 8
- },
-/obj/machinery/door/window/left/directional/south,
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"pkQ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -44592,19 +44690,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,
@@ -44697,15 +44782,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,
@@ -44932,6 +45008,9 @@
},
/turf/open/floor/wood,
/area/station/service/chapel/office)
+"pvG" = (
+/turf/open/floor/carpet/lone,
+/area/station/service/chapel/office)
"pvY" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 1
@@ -44956,16 +45035,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)
@@ -45037,13 +45106,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,
@@ -45241,6 +45303,13 @@
},
/turf/open/floor/iron/dark/small,
/area/station/security/brig)
+"pCM" = (
+/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)
"pCU" = (
/obj/structure/cable,
/obj/machinery/door/airlock{
@@ -45377,6 +45446,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/turf/open/floor/iron/white/small,
/area/station/science/server)
+"pEK" = (
+/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)
"pEL" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/blue{
@@ -45412,6 +45489,15 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/freezer,
/area/station/service/kitchen)
+"pEZ" = (
+/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)
"pFk" = (
/obj/structure/broken_flooring/singular/directional/east,
/obj/effect/decal/cleanable/dirt,
@@ -45526,28 +45612,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,
@@ -45626,30 +45695,6 @@
},
/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
- },
-/turf/open/floor/plating,
-/area/station/cargo/miningfoundry)
"pIn" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -45705,12 +45750,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,
@@ -45745,13 +45784,14 @@
/obj/machinery/firealarm/directional/west,
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
-"pJQ" = (
-/obj/structure/cable,
+"pJH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/broken_floor,
-/obj/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"pKi" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -45970,18 +46010,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
@@ -46099,16 +46127,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,
@@ -46230,6 +46248,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
+"pRX" = (
+/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)
"pSc" = (
/obj/item/bikehorn/rubberducky{
pixel_x = 6;
@@ -46268,15 +46298,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,
@@ -46349,19 +46370,6 @@
/obj/effect/turf_decal/tile/green,
/turf/open/floor/iron/dark,
/area/station/medical/chemistry)
-"pUs" = (
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/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/machinery/door/airlock/engineering/glass{
- name = "Engineering Foyer"
- },
-/turf/open/floor/catwalk_floor,
-/area/station/engineering/break_room)
"pUx" = (
/obj/structure/closet/crate/freezer/blood,
/obj/machinery/camera/autoname/directional/east,
@@ -46661,6 +46669,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
+"pYn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/brown/anticorner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"pYr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -46711,10 +46728,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"pZu" = (
-/obj/structure/hedge,
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"pZv" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral{
@@ -46725,18 +46738,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
-"pZz" = (
-/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/plating,
-/area/station/cargo/storage)
"pZK" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -46807,6 +46808,11 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron,
/area/station/security/lockers)
+"qbm" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/curtain/bounty/start_closed,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"qbn" = (
/obj/effect/turf_decal/tile/blue,
/obj/machinery/light/small/directional/south,
@@ -46877,6 +46883,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark/side,
/area/station/hallway/secondary/construction)
+"qck" = (
+/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)
"qcr" = (
/obj/structure/flora/bush/flowers_yw/style_random,
/mob/living/carbon/human/species/monkey,
@@ -46904,6 +46918,19 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/aft)
+"qcU" = (
+/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)
"qcX" = (
/obj/structure/flora/bush/flowers_yw/style_random,
/obj/structure/window/reinforced/spawner/directional/east,
@@ -47046,6 +47073,10 @@
/obj/effect/mapping_helpers/airlock/access/any/service/lawyer,
/turf/open/floor/iron/dark/textured_half,
/area/station/service/lawoffice)
+"qfG" = (
+/obj/effect/landmark/start/librarian,
+/turf/open/floor/iron/grimy,
+/area/station/service/library/private)
"qfK" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -47106,12 +47137,31 @@
/obj/effect/mapping_helpers/airlock/access/any/service/lawyer,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"qgG" = (
+/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)
"qgJ" = (
/obj/machinery/light/dim/directional/west,
/obj/machinery/duct,
/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
+ },
+/obj/item/kirbyplants/random,
+/obj/machinery/firealarm/directional/south,
+/obj/item/storage/belt/utility,
+/turf/open/floor/iron/smooth,
+/area/station/commons/storage/tools)
"qhh" = (
/obj/structure/cable,
/obj/structure/table/glass,
@@ -47268,11 +47318,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,
@@ -47433,13 +47478,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"qmv" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Atmospherics Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/turf/open/floor/plating,
-/area/station/maintenance/department/engine/atmos)
"qmz" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -47512,6 +47550,14 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/white/small,
/area/station/science/ordnance/storage)
+"qnN" = (
+/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/hallway/primary/central/fore)
"qoj" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/window/right/directional/west{
@@ -47641,6 +47687,9 @@
/obj/structure/chair/stool/directional/east,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"qsh" = (
+/turf/closed/wall,
+/area/station/security/checkpoint/supply)
"qsj" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -47689,15 +47738,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
@@ -47722,18 +47762,6 @@
/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
- },
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"quq" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/closet/crate/cardboard,
@@ -47810,11 +47838,14 @@
/obj/effect/landmark/start/medical_doctor,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
-"qwh" = (
-/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
-/obj/machinery/portable_atmospherics/pump,
-/turf/open/floor/iron/dark,
-/area/station/science/ordnance)
+"qwn" = (
+/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)
"qwq" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/machinery/computer/prisoner/management{
@@ -47904,6 +47935,15 @@
/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
@@ -48118,6 +48158,13 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
+"qAv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/table,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"qAJ" = (
/obj/effect/spawner/random/structure/closet_private,
/obj/machinery/light/small/directional/east,
@@ -48385,11 +48432,20 @@
},
/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)
+"qDQ" = (
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/station/cargo/lobby)
+"qDZ" = (
+/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)
"qEe" = (
/turf/open/floor/iron/white/side{
dir = 8
@@ -48555,6 +48611,17 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
+"qHD" = (
+/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)
"qHH" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/firealarm/directional/south,
@@ -48735,6 +48802,22 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/cmo,
/turf/open/floor/iron/white/small,
/area/station/command/heads_quarters/cmo)
+"qKY" = (
+/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)
"qLj" = (
/obj/structure/bed{
dir = 4
@@ -48817,16 +48900,6 @@
/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,
@@ -49005,13 +49078,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,
@@ -49043,9 +49109,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,
@@ -49131,22 +49194,6 @@
/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,
@@ -49530,6 +49577,15 @@
/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/central)
+"qXx" = (
+/obj/machinery/conveyor{
+ id = "mining"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/miningfoundry)
"qXB" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -49718,6 +49774,15 @@
},
/turf/open/floor/tram,
/area/station/maintenance/port/aft)
+"qZQ" = (
+/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,
+/area/station/cargo/lobby)
"qZU" = (
/obj/machinery/portable_atmospherics/canister/plasma,
/obj/effect/turf_decal/stripes/white/line{
@@ -50110,6 +50175,10 @@
/obj/structure/cable,
/turf/open/floor/iron/grimy,
/area/station/commons/vacant_room/office)
+"rgd" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"rgA" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/broken_floor,
@@ -50205,15 +50274,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,
@@ -50376,6 +50436,22 @@
"rlr" = (
/turf/closed/wall,
/area/station/medical/storage)
+"rlF" = (
+/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)
"rlH" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -50456,13 +50532,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,
@@ -50569,9 +50638,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,
@@ -50617,10 +50683,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,
@@ -50726,6 +50788,13 @@
"rsL" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/starboard/fore)
+"rsM" = (
+/obj/machinery/vending/wardrobe/cargo_wardrobe,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"rsZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/decal/cleanable/dirt,
@@ -50847,6 +50916,14 @@
"ruY" = (
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
+"rvb" = (
+/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)
"rvp" = (
/turf/closed/mineral/random/stationside,
/area/station/maintenance/hallway/abandoned_command)
@@ -50870,6 +50947,9 @@
/obj/effect/turf_decal/bot_white,
/turf/open/floor/engine,
/area/station/engineering/gravity_generator)
+"rvB" = (
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"rvD" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/turf_decal/tile/dark_red/fourcorners,
@@ -51154,15 +51234,6 @@
dir = 1
},
/area/station/hallway/secondary/entry)
-"rzL" = (
-/obj/structure/sign/poster/random/directional/south,
-/obj/machinery/conveyor{
- id = "mining";
- dir = 10
- },
-/obj/machinery/bouldertech/refinery,
-/turf/open/floor/iron,
-/area/station/cargo/miningfoundry)
"rzZ" = (
/obj/effect/spawner/random/structure/crate,
/obj/effect/spawner/random/maintenance,
@@ -51233,10 +51304,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,
@@ -51316,11 +51383,31 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/hallway/secondary/exit/departure_lounge)
+"rCJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"rCS" = (
/obj/structure/chair/stool/bar/directional/west,
/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
@@ -51395,6 +51482,17 @@
"rEd" = (
/turf/open/floor/iron,
/area/station/maintenance/fore/greater)
+"rEn" = (
+/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)
"rEF" = (
/obj/machinery/photocopier,
/obj/structure/sign/painting/library{
@@ -51430,25 +51528,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,
@@ -51509,41 +51588,10 @@
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)
"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,
@@ -51554,19 +51602,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,
@@ -51583,10 +51618,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,
@@ -51654,6 +51685,14 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron,
/area/station/maintenance/hallway/abandoned_command)
+"rHQ" = (
+/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)
"rHY" = (
/obj/effect/turf_decal/siding/wideplating_new/terracotta{
dir = 1
@@ -51814,6 +51853,10 @@
},
/turf/open/floor/iron/dark/herringbone,
/area/station/ai_monitored/command/nuke_storage)
+"rLX" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"rMb" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/landmark/generic_maintenance_landmark,
@@ -51980,6 +52023,15 @@
},
/turf/open/floor/iron/smooth_large,
/area/station/science/robotics/mechbay)
+"rPu" = (
+/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)
"rPx" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 1
@@ -52202,6 +52254,13 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood/tile,
/area/station/command/corporate_showroom)
+"rSL" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rST" = (
/turf/closed/wall,
/area/station/cargo/storage)
@@ -52244,20 +52303,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
@@ -52269,17 +52314,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,
@@ -52299,21 +52333,17 @@
"rUd" = (
/turf/closed/wall,
/area/station/security/prison)
+"rUn" = (
+/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)
"rUq" = (
/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,
@@ -52337,6 +52367,16 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"rUZ" = (
+/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)
"rVj" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/light/cold/directional/north,
@@ -52350,6 +52390,31 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/security/prison/safe)
+"rVt" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/spawner/random/food_or_drink/condiment,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"rVy" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 4
@@ -52384,15 +52449,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{
@@ -52600,10 +52656,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{
@@ -52653,6 +52705,13 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"rZB" = (
+/obj/structure/filingcabinet/filingcabinet,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"rZG" = (
/obj/structure/closet/crate/trashcart,
/obj/effect/spawner/random/trash/food_packaging,
@@ -52682,15 +52741,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,
@@ -52803,6 +52853,14 @@
/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/iron,
/area/station/maintenance/starboard/aft)
+"scN" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Tool Supply Corridor"
+ },
+/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)
"scP" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden,
/obj/effect/turf_decal/siding/wideplating{
@@ -52947,6 +53005,12 @@
dir = 8
},
/area/station/engineering/main)
+"sfW" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"sge" = (
/obj/structure/reagent_dispensers/beerkeg,
/obj/item/clothing/head/costume/festive,
@@ -52964,24 +53028,15 @@
/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" = (
+"sgM" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/landmark/start/quartermaster,
/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,
+/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)
"sgO" = (
@@ -52990,16 +53045,6 @@
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,
@@ -53137,6 +53182,15 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"skj" = (
+/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)
"skm" = (
/obj/structure/cable,
/obj/structure/table,
@@ -53201,13 +53255,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,
@@ -53326,6 +53373,11 @@
/obj/machinery/rnd/experimentor,
/turf/open/floor/engine,
/area/station/science/explab)
+"snq" = (
+/obj/structure/cable,
+/obj/item/banner/cargo,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"sny" = (
/obj/machinery/holopad,
/obj/effect/spawner/random/engineering/tracking_beacon,
@@ -53457,14 +53509,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,
@@ -53499,6 +53543,19 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"sqd" = (
+/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)
+"sqf" = (
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"sqh" = (
/obj/item/kirbyplants/random,
/obj/machinery/light/cold/directional/west,
@@ -53794,6 +53851,18 @@
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"svm" = (
+/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)
"svo" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/dna_scannernew,
@@ -53951,17 +54020,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"
@@ -53976,21 +54034,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{
@@ -54042,6 +54085,15 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"sxK" = (
+/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)
"sxT" = (
/obj/structure/cable,
/obj/structure/lattice/catwalk,
@@ -54073,6 +54125,12 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
+"syf" = (
+/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)
"syg" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -54092,15 +54150,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"
@@ -54144,17 +54193,6 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
-"sBf" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/spawner/random/structure/steam_vent,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"sBm" = (
/obj/structure/transport/linear/tram,
/obj/structure/fluff/tram_rail/floor,
@@ -54399,6 +54437,15 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron/cafeteria,
/area/station/security/prison/mess)
+"sFX" = (
+/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)
"sGh" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/turf_decal/stripes/white/line{
@@ -54512,20 +54559,6 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"sHW" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/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)
"sHX" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 6
@@ -54771,6 +54804,18 @@
},
/turf/open/floor/wood,
/area/station/service/chapel)
+"sMn" = (
+/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)
"sMq" = (
/obj/machinery/light/warm/directional/west,
/turf/open/floor/iron,
@@ -54930,15 +54975,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{
@@ -54993,6 +55029,12 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
+"sQf" = (
+/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)
"sQg" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -55125,15 +55167,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{
@@ -55168,26 +55201,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)
@@ -55202,24 +55215,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
@@ -55400,18 +55395,18 @@
"sVN" = (
/turf/closed/wall/r_wall,
/area/station/security/prison/workout)
-"sVO" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/spawner/directional/south,
-/obj/structure/window/reinforced/spawner/directional/north,
-/obj/structure/window/reinforced/spawner/directional/west,
-/turf/open/floor/plating,
-/area/station/hallway/primary/central/fore)
"sWc" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/chem_master,
/turf/open/floor/iron,
/area/station/science/xenobiology)
+"sWj" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"sWq" = (
/obj/structure/chair/stool/bar/directional/north,
/obj/effect/turf_decal/siding/wood{
@@ -55437,17 +55432,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/hallway/secondary/recreation)
-"sWZ" = (
-/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)
"sXi" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
@@ -55611,6 +55595,25 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/white/small,
/area/station/medical/cryo)
+"sYS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/spawner/random/food_or_drink/donuts,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchenshutters";
+ name = "Kitchen Shutters";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/service/kitchen)
"sZo" = (
/obj/effect/turf_decal/siding/thinplating_new/light{
dir = 10
@@ -55821,9 +55824,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,
@@ -55877,16 +55877,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{
@@ -55940,6 +55930,13 @@
/obj/structure/steam_vent,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"tem" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/station/cargo/office)
"teo" = (
/obj/machinery/door/airlock/atmos/glass{
name = "Distro Access"
@@ -56073,13 +56070,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)
@@ -56261,6 +56251,13 @@
/obj/machinery/light/small/dim/directional/west,
/turf/open/floor/eighties/red,
/area/station/hallway/primary/central/fore)
+"tjP" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Atmospherics Maintenance"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/turf/open/floor/plating,
+/area/station/maintenance/department/engine/atmos)
"tjT" = (
/obj/structure/extinguisher_cabinet/directional/north,
/obj/effect/turf_decal/siding/wood{
@@ -56321,12 +56318,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,
@@ -56444,16 +56435,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
@@ -56518,13 +56499,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
@@ -56725,10 +56699,6 @@
dir = 1
},
/area/station/hallway/secondary/dock)
-"tro" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/warehouse)
"trp" = (
/turf/closed/wall,
/area/station/maintenance/port/aft)
@@ -57160,6 +57130,14 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
+"tyE" = (
+/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)
"tyT" = (
/obj/structure/transport/linear/tram,
/obj/structure/thermoplastic,
@@ -57543,6 +57521,22 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"tEY" = (
+/obj/structure/table/wood,
+/obj/item/folder{
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/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)
"tFs" = (
/obj/structure/table/glass,
/obj/item/storage/medkit/regular{
@@ -57710,6 +57704,14 @@
},
/turf/open/floor/iron,
/area/station/security)
+"tJf" = (
+/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)
"tJo" = (
/obj/structure/closet/lasertag/blue,
/obj/effect/turf_decal/stripes/red/line{
@@ -57719,6 +57721,13 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"tJr" = (
+/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)
"tJw" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -57762,10 +57771,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{
@@ -57879,6 +57884,18 @@
},
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"tMN" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/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)
"tMS" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -57889,6 +57906,12 @@
/obj/machinery/light/cold/directional/east,
/turf/open/floor/iron,
/area/station/security/execution/transfer)
+"tNb" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"tNf" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -58058,27 +58081,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,
@@ -58087,6 +58093,23 @@
},
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
+"tPy" = (
+/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)
+"tPC" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/station/cargo/storage)
"tPE" = (
/obj/structure/table,
/obj/item/soap,
@@ -58260,14 +58283,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,
@@ -58277,6 +58292,14 @@
},
/turf/open/floor/iron/kitchen/small,
/area/station/security/prison/mess)
+"tSU" = (
+/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)
"tTg" = (
/obj/structure/table,
/obj/item/trash/cheesie{
@@ -58451,6 +58474,12 @@
/obj/machinery/digital_clock/directional/north,
/turf/open/floor/iron/dark/diagonal,
/area/station/service/bar)
+"tVq" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/qm)
"tVt" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/turf_decal/stripes/corner{
@@ -58463,12 +58492,11 @@
},
/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)
+"tWd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"tWm" = (
/obj/structure/flora/bush/jungle/c/style_3,
/obj/effect/turf_decal/weather/dirt,
@@ -58526,6 +58554,13 @@
/obj/effect/spawner/random/vending/snackvend,
/turf/open/floor/eighties/red,
/area/station/hallway/primary/central/fore)
+"tWW" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"tXl" = (
/obj/effect/turf_decal/sand/plating,
/obj/structure/table/bronze,
@@ -58817,6 +58852,12 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/central)
+"ucc" = (
+/obj/structure/cable,
+/turf/open/floor/iron/stairs{
+ dir = 1
+ },
+/area/station/cargo/lobby)
"uch" = (
/obj/structure/cable,
/obj/effect/mapping_helpers/broken_floor,
@@ -58840,6 +58881,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/project)
+"ucn" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"uct" = (
/turf/open/floor/engine/vacuum,
/area/station/engineering/atmos)
@@ -58867,6 +58912,14 @@
},
/turf/open/floor/wood,
/area/station/service/chapel/funeral)
+"ucO" = (
+/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)
"ucR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/airlock{
@@ -59148,6 +59201,13 @@
},
/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
@@ -59351,6 +59411,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"ujy" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"ujA" = (
/turf/closed/wall/r_wall,
/area/station/security/warden)
@@ -59730,15 +59796,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,
@@ -59940,15 +59997,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,
@@ -59966,6 +60014,11 @@
"usJ" = (
/turf/open/floor/iron/kitchen/small,
/area/station/maintenance/aft)
+"usL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"usP" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
@@ -60002,23 +60055,17 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/command/meeting_room)
-"utH" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
+"utG" = (
/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,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/smooth,
/area/station/command/heads_quarters/qm)
+"utI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"utP" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/paper_bin/carbon{
@@ -60033,6 +60080,18 @@
/obj/effect/landmark/navigate_destination/dockescpod,
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
+"utR" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Maintenance"
+ },
+/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)
"uub" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -60047,25 +60106,6 @@
/obj/machinery/camera/directional/west,
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
-"uuN" = (
-/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,
-/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)
"uuS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/siding/blue{
@@ -60122,6 +60162,11 @@
/obj/effect/spawner/random/entertainment/arcade,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"uwm" = (
+/obj/effect/spawner/random/structure/grille,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"uwB" = (
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
dir = 4
@@ -60138,15 +60183,16 @@
/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"uxd" = (
-/obj/structure/disposalpipe/segment{
+"uxG" = (
+/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
},
-/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)
+/area/station/cargo/lobby)
"uxJ" = (
/obj/machinery/smartfridge/chemistry/preloaded,
/obj/machinery/door/firedoor,
@@ -60162,12 +60208,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,
@@ -60213,6 +60253,16 @@
dir = 1
},
/area/station/science/lower)
+"uzP" = (
+/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)
"uzY" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -60264,6 +60314,15 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/wood/tile,
/area/station/command/bridge)
+"uAS" = (
+/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)
"uAY" = (
/turf/open/floor/plating,
/area/station/maintenance/department/bridge)
@@ -60418,6 +60477,24 @@
},
/turf/open/floor/plating,
/area/station/medical/chemistry)
+"uDs" = (
+/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)
"uDv" = (
/obj/structure/cable,
/turf/open/floor/iron/dark,
@@ -60463,6 +60540,25 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"uDP" = (
+/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)
"uDQ" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/east,
@@ -60502,6 +60598,15 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"uEG" = (
+/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)
"uEH" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -60827,17 +60932,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,
@@ -60952,14 +61046,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)
@@ -60974,6 +61060,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating/rust,
/area/station/engineering/main)
+"uLo" = (
+/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)
"uLD" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -60998,6 +61092,15 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
/area/station/security/prison/work)
+"uLP" = (
+/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)
"uLT" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -61014,6 +61117,25 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"uMd" = (
+/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)
"uMg" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -61145,6 +61267,12 @@
},
/turf/open/floor/wood/tile,
/area/station/maintenance/central/lesser)
+"uOB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/qm)
"uOH" = (
/obj/item/kirbyplants/random,
/obj/machinery/light_switch/directional/west,
@@ -61236,6 +61364,12 @@
},
/turf/open/floor/iron/dark/small,
/area/station/security/brig)
+"uQA" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"uQG" = (
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron,
@@ -61256,12 +61390,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"uQO" = (
-/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)
"uQT" = (
/obj/machinery/air_sensor/carbon_tank,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
@@ -61301,6 +61429,10 @@
dir = 1
},
/area/station/hallway/secondary/exit/departure_lounge)
+"uRo" = (
+/obj/structure/closet,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"uRv" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -61366,14 +61498,14 @@
/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
+"uSx" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
},
-/turf/open/floor/iron/smooth,
-/area/station/command/heads_quarters/qm)
+/obj/machinery/camera/autoname/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/sorting)
"uSB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -61383,17 +61515,6 @@
/obj/effect/landmark/navigate_destination/tcomms,
/turf/open/floor/iron,
/area/station/science/lower)
-"uSG" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/siding/wood,
-/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)
"uSN" = (
/obj/effect/spawner/random/vending/snackvend,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -61410,11 +61531,22 @@
},
/turf/open/floor/iron/textured_half,
/area/station/commons/storage/art)
+"uSR" = (
+/obj/structure/closet,
+/obj/machinery/camera/autoname/directional/east,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/lobby)
"uTb" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/structure/table/glass,
/turf/open/floor/iron/dark,
/area/station/service/lawoffice)
+"uTx" = (
+/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)
"uTz" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -61471,19 +61603,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,
@@ -61513,6 +61632,18 @@
},
/turf/open/floor/stone,
/area/station/service/bar)
+"uUL" = (
+/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)
"uUS" = (
/obj/machinery/door/airlock/research/glass{
name = "Cubicle"
@@ -61532,6 +61663,14 @@
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"uUW" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"uVo" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -61937,21 +62076,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{
@@ -61984,13 +62108,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,
@@ -62045,6 +62162,20 @@
/obj/machinery/status_display/ai/directional/north,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
+"veD" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/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)
"veK" = (
/turf/closed/wall,
/area/station/science/lab)
@@ -62098,6 +62229,12 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/station/service/hydroponics)
+"vfq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"vfD" = (
/obj/effect/turf_decal/siding/thinplating_new/light,
/obj/structure/reagent_dispensers/fueltank,
@@ -62241,10 +62378,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{
@@ -62268,6 +62401,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"vhH" = (
+/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)
"vhI" = (
/obj/effect/turf_decal/tile/dark_red{
dir = 4
@@ -62388,6 +62530,22 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/textured_half,
/area/station/commons/toilet/restrooms)
+"vjQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/station/cargo/lobby)
+"vjR" = (
+/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)
"vkh" = (
/turf/closed/wall,
/area/station/service/bar)
@@ -62802,13 +62960,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,
@@ -62844,6 +62995,12 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"vpJ" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"vpM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -63041,6 +63198,13 @@
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"vsC" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Plasma to Pure"
+ },
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"vsJ" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -63117,6 +63281,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth,
/area/station/engineering/main)
+"vuh" = (
+/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)
"vuj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/item/fuel_pellet,
@@ -63182,25 +63359,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,
@@ -63282,16 +63440,16 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/construction)
-"vvC" = (
-/obj/machinery/door/airlock/engineering{
- name = "Engine Airlock"
+"vvJ" = (
+/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/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/any/engineering/construction,
-/obj/structure/cable,
-/obj/effect/landmark/navigate_destination,
-/turf/open/floor/catwalk_floor,
-/area/station/engineering/break_room)
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/station/cargo/storage)
"vvK" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/green/fourcorners,
@@ -63526,6 +63684,26 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
+"vzl" = (
+/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)
"vzt" = (
/obj/structure/hedge,
/obj/machinery/light/cold/directional/east,
@@ -63605,6 +63783,15 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/iron,
/area/station/security/tram)
+"vAi" = (
+/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)
"vAl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/table/wood,
@@ -63761,6 +63948,13 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/smooth_large,
/area/station/science/ordnance/storage)
+"vCT" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 8
+ },
+/obj/machinery/vending/cigarette,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central/fore)
"vCZ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral,
@@ -63775,6 +63969,23 @@
},
/turf/open/floor/iron,
/area/station/security/brig/entrance)
+"vDh" = (
+/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)
"vDB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -63801,6 +64012,12 @@
/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)
@@ -63909,6 +64126,24 @@
dir = 6
},
/area/station/hallway/secondary/construction)
+"vFv" = (
+/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)
"vFy" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -63942,6 +64177,20 @@
},
/turf/open/floor/iron/white/small,
/area/station/science/server)
+"vFK" = (
+/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)
"vFR" = (
/obj/structure/bed,
/obj/effect/turf_decal/siding/red{
@@ -63972,6 +64221,9 @@
/obj/effect/landmark/start/clown,
/turf/open/floor/iron/smooth,
/area/station/service/greenroom)
+"vGl" = (
+/turf/open/floor/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"vGp" = (
/obj/structure/table/wood,
/obj/machinery/light/small/red/dim/directional/south,
@@ -64115,6 +64367,15 @@
},
/turf/open/floor/iron/small,
/area/station/hallway/primary/central/fore)
+"vIK" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/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)
"vIX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -64249,6 +64510,15 @@
/obj/effect/landmark/start/chief_engineer,
/turf/open/floor/wood,
/area/station/command/heads_quarters/ce)
+"vKF" = (
+/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)
"vKG" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/turf/open/floor/iron,
@@ -64287,6 +64557,12 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/pharmacy)
+"vLa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/catwalk_floor/iron_white,
+/area/station/cargo/storage)
"vLb" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/siding/blue{
@@ -64329,11 +64605,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,
@@ -64352,9 +64623,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
@@ -64468,14 +64736,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"
@@ -64592,6 +64852,15 @@
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"vQa" = (
+/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)
"vQk" = (
/obj/effect/spawner/random/structure/crate,
/obj/machinery/computer/security/telescreen/entertainment/directional/east,
@@ -64653,11 +64922,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,
@@ -64801,6 +65065,12 @@
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"vTt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/station/maintenance/port/greater)
"vTv" = (
/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{
dir = 4
@@ -64867,6 +65137,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/maintenance/port/aft)
+"vUk" = (
+/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)
"vUz" = (
/obj/structure/table_frame,
/obj/effect/decal/cleanable/glass,
@@ -65138,6 +65422,10 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security)
+"vYe" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/station/service/chapel/office)
"vYj" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -65249,6 +65537,17 @@
/obj/effect/mapping_helpers/apc/cell_10k,
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
+"vZx" = (
+/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)
"vZD" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/red/fourcorners,
@@ -65427,11 +65726,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,
@@ -65810,6 +66104,18 @@
/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)
+"wjE" = (
+/turf/open/floor/iron/stairs{
+ dir = 8
+ },
+/area/station/cargo/storage)
"wjG" = (
/obj/structure/filingcabinet,
/turf/open/floor/iron/dark/small,
@@ -65865,16 +66171,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,
@@ -65886,6 +66182,15 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"wlq" = (
+/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)
"wme" = (
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/plating,
@@ -66157,20 +66462,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,
@@ -66624,16 +66915,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
@@ -66645,6 +66926,14 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron/grimy,
/area/station/science/cubicle)
+"wwX" = (
+/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)
"wwY" = (
/obj/effect/spawner/random/trash/mess,
/obj/effect/decal/cleanable/dirt,
@@ -66754,6 +67043,31 @@
/obj/machinery/light/warm/directional/east,
/turf/open/floor/iron/dark,
/area/station/science/genetics)
+"wyB" = (
+/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)
"wyH" = (
/obj/machinery/door/airlock/maintenance{
name = "Maintenance"
@@ -66789,11 +67103,6 @@
},
/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)
@@ -66919,6 +67228,19 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/science/cytology)
+"wBM" = (
+/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)
"wBN" = (
/obj/structure/bed/maint,
/turf/open/floor/plating,
@@ -67028,6 +67350,20 @@
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"wDv" = (
+/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)
"wDA" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
@@ -67132,6 +67468,12 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"wFP" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/carpet/lone,
+/area/station/service/chapel/office)
"wFQ" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -67221,6 +67563,17 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
+"wHa" = (
+/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)
"wHg" = (
/obj/structure/filingcabinet/filingcabinet,
/turf/open/floor/iron/grimy,
@@ -67748,14 +68101,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,
@@ -67765,6 +68110,26 @@
/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)
@@ -67780,6 +68145,9 @@
},
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"wPf" = (
+/turf/closed/wall,
+/area/station/cargo/lobby)
"wPh" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -68042,11 +68410,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 +68419,15 @@
},
/turf/open/floor/iron/white/corner,
/area/station/hallway/primary/aft)
-"wSi" = (
+"wSy" = (
/obj/structure/disposalpipe/segment{
- dir = 10
+ dir = 4
},
-/turf/open/floor/iron/dark,
-/area/station/cargo/office)
+/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)
"wSF" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 8
@@ -68420,6 +68786,10 @@
},
/turf/open/misc/sandy_dirt,
/area/station/security/tram)
+"wYM" = (
+/obj/effect/turf_decal/stripes/white/corner,
+/turf/open/floor/iron/dark/corner,
+/area/station/cargo/storage)
"wZa" = (
/obj/docking_port/stationary{
dir = 8;
@@ -68482,14 +68852,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 +68937,11 @@
/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)
+"xaX" = (
+/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)
"xba" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -68759,6 +69117,12 @@
},
/turf/open/floor/iron/white/corner,
/area/station/hallway/secondary/exit/departure_lounge)
+"xdS" = (
+/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)
"xdV" = (
/obj/structure/table,
/obj/machinery/cell_charger{
@@ -69026,16 +69390,6 @@
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,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/hallway/primary/port)
"xhD" = (
/obj/structure/table,
/obj/item/clothing/shoes/ducky_shoes{
@@ -69360,10 +69714,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 +69731,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,
@@ -69410,6 +69746,23 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/iron/smooth,
/area/station/service/greenroom)
+"xnu" = (
+/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)
"xnB" = (
/obj/effect/turf_decal/stripes/white/corner,
/obj/effect/turf_decal/stripes/white/line,
@@ -69425,6 +69778,11 @@
"xnE" = (
/turf/closed/wall/r_wall,
/area/station/hallway/secondary/entry)
+"xnG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/miningfoundry)
"xnL" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -69495,6 +69853,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/maintenance/starboard/greater)
+"xph" = (
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/office)
"xpl" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -69898,6 +70262,22 @@
},
/turf/open/floor/iron/checker,
/area/station/security/breakroom)
+"xth" = (
+/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)
"xtD" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -70057,12 +70437,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,
@@ -70121,6 +70495,17 @@
/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)
+"xwp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"xwr" = (
/obj/effect/turf_decal/siding/thinplating_new/light,
/obj/machinery/recharge_station,
@@ -70160,18 +70545,6 @@
"xwz" = (
/turf/closed/wall,
/area/station/cargo/miningfoundry)
-"xwC" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/right/directional/west,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "kitchenshutters";
- name = "Kitchen Shutters";
- dir = 8
- },
-/obj/effect/turf_decal/siding/end,
-/turf/open/floor/iron/dark/textured_large,
-/area/station/service/kitchen)
"xwH" = (
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
@@ -70247,14 +70620,6 @@
/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,
-/turf/open/floor/plating,
-/area/station/maintenance/port/greater)
"xyh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -70453,18 +70818,6 @@
/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";
@@ -70493,6 +70846,17 @@
/obj/machinery/status_display/ai/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/dock)
+"xBv" = (
+/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)
"xBx" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -70575,6 +70939,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/small,
/area/station/security/brig)
+"xDf" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Public Shrine"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/textured_half,
+/area/station/hallway/primary/port)
"xDg" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -70620,21 +70991,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
@@ -70891,6 +71247,11 @@
/obj/effect/mapping_helpers/airlock/access/all/security/general,
/turf/open/floor/iron/textured_half,
/area/station/security/breakroom)
+"xHL" = (
+/obj/effect/spawner/random/trash,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"xHO" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/structure/rack,
@@ -70956,6 +71317,13 @@
/obj/item/radio/intercom/directional/south,
/turf/open/floor/plating,
/area/station/engineering/gravity_generator)
+"xIH" = (
+/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)
"xIP" = (
/turf/closed/wall/r_wall,
/area/station/hallway/secondary/construction)
@@ -71067,6 +71435,14 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/processing)
+"xKy" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/pdapainter/supply,
+/turf/open/floor/iron/smooth,
+/area/station/command/heads_quarters/qm)
"xKG" = (
/turf/open/floor/iron,
/area/station/hallway/primary/port)
@@ -71205,16 +71581,18 @@
},
/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,
/obj/machinery/newscaster/directional/north,
/turf/open/floor/iron,
/area/station/commons/fitness/locker_room)
+"xMx" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/qm)
"xMK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{
@@ -71268,14 +71646,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,
@@ -71405,9 +71775,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,
@@ -72120,11 +72487,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{
@@ -72138,12 +72500,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,
@@ -72516,6 +72872,12 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
+"yeL" = (
+/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)
"yeO" = (
/obj/structure/cable,
/obj/structure/window/reinforced/spawner/directional/south,
@@ -72584,6 +72946,13 @@
"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,
@@ -72627,6 +72996,13 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"ygq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/cargo/lobby)
"ygu" = (
/turf/open/floor/iron/white,
/area/station/hallway/primary/starboard)
@@ -72787,6 +73163,21 @@
/obj/item/clothing/head/utility/welding,
/turf/open/floor/iron,
/area/station/science/robotics/lab)
+"yiF" = (
+/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)
"yiL" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -72827,12 +73218,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)
@@ -82545,7 +82930,7 @@ pjk
pjk
pjk
qfK
-fAD
+vsC
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
@@ -83625,7 +84010,7 @@ lOj
dTW
lwI
lOj
-jaN
+oTi
kdH
kmo
ouN
@@ -83633,8 +84018,8 @@ rST
ouN
oQr
kdH
-pZu
-jxJ
+diV
+aKk
slw
dDd
vuj
@@ -83882,7 +84267,7 @@ bTE
cob
vWA
lOj
-mnZ
+jXq
kdH
nJU
kEA
@@ -83890,8 +84275,8 @@ kQe
ouR
oRr
kdH
-pHo
-pZz
+noc
+wDv
slw
qtJ
qdu
@@ -84397,16 +84782,16 @@ jvR
jir
lPi
uzJ
-mQh
-nJU
+oJk
+knk
ppk
uzJ
ovQ
-oRr
-poM
+oSb
+wBM
uzJ
-mKB
-aLm
+dBg
+slw
slw
lLi
slw
@@ -84642,31 +85027,31 @@ ohl
slY
slY
slY
-ueX
slY
-ueX
+slY
+slY
+nFo
nFo
-oCG
nFo
nFo
nFo
nFo
-lxy
-hzm
+aXM
+lOj
jTA
-ovQ
-knk
-ppk
+kJn
+pZK
+uQA
kQM
-owl
-oSb
-ppk
+rPu
+pZK
+uQA
mjQ
-fLF
+hJc
ahr
nFX
nFX
-cdC
+ozn
pSP
mhk
mhk
@@ -84900,31 +85285,31 @@ slY
gOK
slY
hfc
-kPW
+lUW
iNE
nFo
ach
-lKH
+oFa
ylH
nEl
ejq
tvN
-lRc
moz
-kee
-nua
-nPt
+moz
+hMe
+odX
odX
-lkI
-oSg
-lWF
+odX
+odX
+odX
+tJr
mjV
-pHs
+bbJ
mhk
ihb
ozt
-dEQ
sqz
+cdx
mhk
iSD
pbw
@@ -85158,30 +85543,30 @@ gPN
gZk
iNE
kPW
-kPW
+hqr
nFo
tPZ
rPx
cvP
rWP
-bCh
+wyB
jWA
-lTv
-oem
-oem
-nxo
-oem
-oem
-owM
-oSx
+uzJ
+wYM
+vvJ
+tPC
+lAE
+tPC
+abN
+ftM
+kEz
qby
qby
qby
+qsh
+qsh
mhk
-mhk
-mhk
-xxT
-mhk
+cdx
mhk
pGS
sUN
@@ -85413,32 +85798,32 @@ xpl
slY
gPN
slY
-jCo
-kPW
+kwY
+lUW
hfc
nFo
hNv
-lbF
-lLq
+lRF
+syf
nyf
ejq
-jkS
-lTN
-mRD
+mRk
+uzJ
+jAm
+gXM
mRD
-knL
kEH
mRD
-llg
-oSx
+kWf
+ftM
+kEz
qby
-mjX
+abe
mLh
-nry
-qRq
-mhk
-vdL
+qgG
+uDs
mhk
+cdx
mhk
cXb
sry
@@ -85639,7 +86024,7 @@ ttL
glo
dPW
vCp
-moN
+gae
kWY
mzx
dcK
@@ -85667,34 +86052,34 @@ dDB
mEB
gDH
mFA
-ueX
slY
slY
-jCo
+slY
+lUW
slY
slY
nFo
nFo
+dwV
+cYq
nFo
nFo
-nFo
-nFo
-kZB
-lUz
-ohj
-ohj
-nxX
-ohj
-ohj
-oxw
-lFG
+bfO
+gMi
+awt
+cvG
+vAi
+vAi
+vAi
+uAS
+odX
+xIH
lWY
-mkF
+dcY
mLk
-nsL
-kVn
+nwA
+hFj
srn
-iHT
pRc
mhk
pbw
@@ -85926,32 +86311,32 @@ gEc
gIx
sjq
sjq
-hyO
-roi
-jCi
+maG
+jCo
+mYe
nPX
ouT
-jMb
-kzI
-kzI
+jjq
+jjq
+jjq
rST
iUN
-jlv
-sRR
-odX
-fts
-nyE
+igf
+fIg
+moz
+tJf
uzJ
-axj
uzJ
-azK
+cxM
+uzJ
+jaO
+dBL
qby
-mkO
+hgV
mMt
dVW
-qSS
+lGH
mhk
-tKf
kwy
mhk
bBh
@@ -85965,7 +86350,7 @@ iSD
rnr
aCz
wAW
-spo
+wXk
xiF
gEx
yea
@@ -86180,35 +86565,35 @@ dDB
dDB
slY
slY
-slY
hTr
slY
slY
-iBo
-slY
+nfu
+jPC
+jjq
jiu
-jCP
-kia
-kia
-kia
+hXN
+lVC
+kzI
+sQf
oGl
iVx
lzp
jFB
-tll
+aRX
+sgM
wuM
-nyS
pBD
wuM
pBD
+gis
wuM
-vLP
wuM
-vLP
+wuM
+mhk
mhk
mhk
mhk
-xmI
ivh
mhk
fme
@@ -86228,7 +86613,7 @@ uAk
yea
vmX
vij
-xEl
+cKN
wyl
fEC
fEC
@@ -86435,37 +86820,37 @@ blb
blb
blb
blb
-blb
slY
hLD
hTD
oOK
slY
-hfC
+cLX
slY
jjq
-hyb
+jjq
+lYS
jNc
qSH
-vNv
+wwX
rST
iVI
-jmK
+lVY
jHB
-gxL
+muO
+gsM
wuM
-bKz
-kFg
-kRJ
-bvV
-lGk
-uKP
+snq
+utG
+cdi
+ndW
+ujy
wCI
-swV
+doL
mhk
nFY
mhk
-mhk
+ucn
mze
iLH
oyz
@@ -86692,32 +87077,32 @@ dDB
blb
dDB
dDB
-dDB
slY
tjY
siG
nEA
slY
-oPi
-xOm
+wSy
+bcN
+rHQ
pAU
-nLH
-nUx
-rie
-ipd
+dZI
+hFk
+nFu
+kSK
rTA
-nTi
-lzA
+uMd
+rSL
lUI
-tVR
-pBD
-nnc
-jZc
+hfo
+fQB
+xMx
+xKy
+kNL
kSb
-tca
-lGT
-lWR
-mlr
+sqd
+hqk
+iUB
nxJ
mhk
xYJ
@@ -86949,35 +87334,35 @@ dDB
blb
dDB
dDB
-dDB
slY
rhm
cis
slY
slY
-oPo
-xOm
-tdD
+cLX
+meZ
+rHQ
+hTy
vrW
-qul
-rif
-tro
+mlF
+ngT
+jQX
rTA
-sgC
+iiB
eDy
uzJ
-uzJ
+muO
+lzp
pBD
-usg
-uSt
-kSf
-lme
-lHe
-lWU
-tca
+oSc
+fZs
+rgd
+sFX
+ocu
+uOB
urF
mhk
-xZd
+bKn
mhk
sNW
mze
@@ -86995,14 +87380,14 @@ cdB
wAW
rpB
jzr
-qMw
-iEi
-dTQ
-cVO
-uxY
-czu
-dny
-doi
+vKF
+kzK
+vYe
+gxF
+buc
+wFP
+pvG
+ouG
fEC
kJJ
qVP
@@ -87206,37 +87591,37 @@ dDB
tYT
aJq
dDB
-dDB
-ueX
+slY
+slY
mEB
slY
+kQf
+mFA
slY
-nMV
-dRD
-xwz
-xwz
-gxr
-fSe
+jjq
+jjq
+gdU
+jjq
ibe
ipP
rST
eeb
-lzU
-dfN
-pJn
+lJU
+veD
+wjE
+pRX
wuM
-pwJ
-uSG
-kSO
-gNC
+nNv
+gCy
+pdD
lHk
-lXf
+vfq
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
+hfU
fEC
rui
qVP
@@ -87466,33 +87851,33 @@ dDB
dDB
dDB
blb
-dDB
slY
-ohb
+fQy
xwz
-fSe
-pIi
-tPa
xwz
+ntB
+nBZ
+llw
xwz
mTl
+mTl
rST
-sgL
-swO
-kYZ
-msy
-vLP
-utH
-pBD
+aQe
+vLa
+rEn
+vGl
+ecJ
+wuM
+wuM
wuM
vkN
lHT
vkN
-mhk
-mhk
-mhk
-mhk
-mhk
+wuM
+wuM
+okX
+hIf
+uDP
mhk
mze
mhk
@@ -87506,10 +87891,10 @@ lFm
kzV
uaa
eYB
-mIE
+xDf
wXk
glM
-ldl
+oGN
yea
vrf
von
@@ -87723,33 +88108,33 @@ dDB
dDB
dDB
blb
-dDB
-ueX
-ohl
+slY
+kQf
xwz
-gGw
-nsX
-hoV
-vuH
+nMD
+xnG
+rUZ
+fGp
xwz
-rFa
-rTD
-iWb
+dDn
+vDh
+uSx
+jnn
jnn
bDN
bDN
-qto
-kpT
+hRD
+qwn
kFD
kTp
-lmv
-lIf
-lXn
-srn
-ntJ
-nGu
-xYJ
-ina
+hMi
+qDZ
+gRQ
+kTp
+qck
+lWH
+lYA
+wHa
mhk
gLV
mhk
@@ -87762,11 +88147,11 @@ tBk
miF
miF
miF
-juP
+bMD
wAW
-lqq
+mVS
ckP
-xht
+fIn
yea
yea
vJn
@@ -87980,36 +88365,36 @@ dDB
dDB
dDB
blb
-dDB
slY
-mFA
+kQf
xwz
-mdX
-fCd
-iJh
+xdS
+sqf
+ucO
jwU
xwz
-rFP
-rTU
-sgR
-obH
-sSx
-tnu
-tPg
-uuN
+bkS
+xth
+jBC
+pJH
+qHD
+fnQ
+usL
+bGj
+rLX
btG
pBD
-vLD
-lIn
-lXY
-mhk
-ina
-pyA
-ina
-xYJ
-xYJ
+iFK
+vZx
+lug
+wuM
+tEY
+jyE
+fYS
+yeL
+fGj
xsD
-srn
+mhk
xxj
cSb
nDj
@@ -88020,11 +88405,11 @@ cxz
cZs
cZs
eYB
-mIE
+xDf
wXk
uQK
-mwK
-kyE
+pEK
+uEG
yea
vJA
vKa
@@ -88237,33 +88622,33 @@ dDB
dDB
dDB
blb
-dDB
slY
-ohl
-uuR
-rZe
-jIH
-bbK
+kQf
+kMU
+aEF
+juK
+vFv
ePn
uki
-rFW
-bCZ
-uqE
-fkd
-sSA
+ooI
+yiF
+iPz
+nOz
+cBt
wcP
-qDP
-wwJ
-yjc
-vLP
-oyZ
-lIq
-lYt
-mhk
-xYJ
-lwC
-tYL
-mhk
+rvB
+dal
+rLX
+aAr
+wuM
+tVq
+bpL
+hnz
+wuM
+rlF
+asg
+duw
+nhA
mhk
fpN
mhk
@@ -88452,7 +88837,7 @@ kMe
nDJ
lWV
cYt
-bli
+wjw
gAV
tDu
ccA
@@ -88494,36 +88879,36 @@ blb
blb
slY
mEB
-ueX
slY
-ohl
+kcP
xwz
-pjG
-hZe
-bOY
-rzL
xwz
-rGq
-rUt
-sgR
-wcz
-eIF
-juJ
-mTe
-kqL
-kFI
+sxK
+qXx
+izV
+xwz
+mtt
+qKY
+hVn
+rvb
+pEZ
+qAv
+eAg
+otT
+fxc
+vuh
pBD
-wSf
-lIw
-lYw
-mhk
-qjn
-uiw
-ina
+cdi
+fYh
+odZ
+wuM
+uTx
+lKf
+kCr
+xaX
mhk
-ozt
-mrn
-vRn
+mSA
+mnm
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
+uLo
+slY
+slY
+sWj
+slY
+slY
+vUk
+gqG
+vFK
+ksX
+lOc
+eFZ
+oMF
+mFk
+nCQ
+lCC
wuM
-lmR
-lJV
-cYT
-mhk
-mhk
-dDi
-mhk
+lgb
+kGd
+nSx
+wuM
+qbm
+twm
+qbm
+qbm
mhk
-sNW
jQv
mhk
oOC
@@ -89009,28 +89394,28 @@ mEB
gDH
mFA
gKi
-gPT
-qQP
-pJQ
-wZF
-pqv
-wZF
-vdl
+uwm
+ohl
slY
-ueX
-rVQ
-oFi
-jqA
+hPN
+dhN
+gDH
+slY
+slY
+slY
+doS
+hPx
lUT
-pih
+lfD
mTl
-kqW
kFJ
-slY
-slY
-mhk
-mhk
-mhk
+kSh
+kFJ
+wuM
+wuM
+wuM
+wuM
+wuM
rZb
jXc
xYJ
@@ -89267,30 +89652,30 @@ gEc
mFA
slY
slY
+bJF
+tNb
+xwp
+lpz
+wZF
+wZF
+tPy
slY
slY
-slY
-xZh
-slY
-qQP
-roi
-slY
-slY
-slY
-xZh
-xZh
-slY
-slY
-uxd
-kFU
-kXR
-slY
-rXw
+tem
+nKm
+nWu
+xat
+rsM
+lMP
+nGh
+rZB
+mhk
+qTJ
lYT
mhk
uiw
mhk
-mhk
+sNW
mhk
mhk
ete
@@ -89500,7 +89885,7 @@ waH
cdz
ifN
xGH
-qmv
+tjP
cvJ
knv
knv
@@ -89523,25 +89908,25 @@ slY
slY
mFA
slY
-aus
-voz
-sRg
-hmb
-sHW
slY
slY
-qQP
-iqj
-sjq
-sjq
-syx
-jIh
-csA
-jhs
-kso
-kYG
-kYG
-pep
+slY
+slY
+uzP
+slY
+slY
+nfu
+kAn
+slY
+dQq
+oNa
+oNa
+tMN
+wlq
+gnV
+lYU
+lYU
+exj
nJo
avY
oHk
@@ -89553,7 +89938,7 @@ vMP
eRy
mhk
iSD
-keQ
+uUL
cxz
vUS
miF
@@ -89778,27 +90163,27 @@ blb
blb
blb
ueX
-gIx
-gKK
-vOm
-tOw
-hVk
-gpP
-iJq
-ivm
-slY
-kPW
-slY
+lWB
slY
-skW
-wOM
-jpR
-ueX
-aae
-uxd
-xaZ
-dZm
+aus
+voz
+sRg
+hmb
+bdD
+ivm
slY
+uUW
+wZF
+vQa
+bIm
+bEg
+bEg
+msQ
+xph
+uLP
+vhH
+xnu
+mhk
ilo
tYL
mhk
@@ -89810,7 +90195,7 @@ mhk
oTH
mhk
lji
-wZD
+qzP
nDj
sRF
miF
@@ -90001,11 +90386,11 @@ jWC
eUx
xgd
wfn
-eDo
+nKI
ecY
ecY
ecY
-pUs
+dgP
wfn
gKL
lwW
@@ -90035,27 +90420,27 @@ dDB
dDB
dDB
slY
-atx
-ueX
-gQm
-hbw
-hfZ
-hmh
-pGE
+rCJ
+fol
+vOm
+tOw
+hVk
+gpP
+iJq
qfV
slY
-kPW
-kAn
-slY
-xZh
-slY
-xZh
+xHL
+jku
slY
-slY
-ksx
-mEB
-slY
-ueX
+hMt
+cul
+lUh
+eft
+dZh
+uLP
+tWW
+lvB
+mhk
jQv
sNW
mhk
@@ -90296,22 +90681,22 @@ slY
slY
eVc
hbw
-frT
-ejA
+wOZ
+hmj
arL
sRg
slY
slY
slY
slY
-nHp
-jrX
-jIN
-xEm
-xPX
-ksA
-oJR
-oiw
+wnd
+xat
+cbz
+glN
+wnd
+esM
+sMn
+xat
mhk
jQv
sqz
@@ -90551,24 +90936,24 @@ sRg
cJT
eEq
sRg
-bgJ
+gQG
hbw
-mMf
-iDV
+aGI
+hmQ
pGE
-jug
-rqq
-rqq
-rqq
-vpb
-lmS
-lAk
-jIY
-jDm
-tfX
-khZ
-nSY
-nYQ
+scN
+oZg
+oZg
+oZg
+fST
+etL
+apc
+pYn
+oCY
+uxG
+nIo
+mrL
+mjP
mhk
ifl
mhk
@@ -90810,25 +91195,25 @@ mGY
hXf
xGf
jLb
-lzF
-nFT
+hgd
+mrP
xrZ
sRg
-xat
-xat
-xat
-xat
-tov
-jEK
-jJc
-pOg
-kft
-ktM
-sOP
-otG
+wPf
+wPf
+wPf
+wPf
+gSn
+dOD
+vpJ
+lZp
+fmg
+fEV
+nvz
+hgy
mhk
oEn
-lPK
+vTt
mhk
mTN
wTO
@@ -90839,7 +91224,7 @@ oUJ
wCR
oOC
iRE
-rya
+ibO
kZI
oUb
yhX
@@ -91028,10 +91413,10 @@ gAV
qkq
wRy
urz
-uQO
-dti
-oZg
-cbv
+vDS
+ugt
+lVv
+nHq
exQ
fib
cca
@@ -91071,21 +91456,21 @@ hgn
jEQ
gRL
hcl
-xat
-vhe
-vhe
-wnd
-lmS
-lBn
-jJc
-lvu
-hPd
-kua
-lEm
-oiL
+wPf
+ntr
+jPn
+caE
+etL
+acI
+tyE
+qZQ
+kct
+ygq
+frr
+gyu
mhk
-kPo
-wkK
+skj
+pRc
mhk
wCR
wCR
@@ -91288,7 +91673,7 @@ ayK
swK
jTf
nCC
-jHy
+rDc
qQi
sVu
wfn
@@ -91327,26 +91712,26 @@ hgZ
hgZ
kaz
eOk
-lYP
-xPX
-wzo
-hLm
-bGU
-wSi
-gNV
-wqI
-gEJ
-xat
-wnd
-kIO
-wnd
-mhk
+qgK
+eAI
+jxc
+tWd
+cMM
+qDQ
+ucc
+tSU
+aYz
+sfW
+kts
+iae
+dXZ
mhk
-sBf
+hNr
+cBv
mhk
-mUt
+kDi
wTO
-uSI
+qVR
scY
rJo
bHU
@@ -91545,7 +91930,7 @@ ayK
nXC
nmi
cED
-dkX
+nQE
rLj
gNt
iIK
@@ -91585,21 +91970,21 @@ qiz
fgt
pHC
qiz
-xat
-rrq
-iqq
-xPX
-wnd
-wnd
-jKu
-jWZ
-xRV
-kuq
-msq
-laD
-gSX
+wPf
+uSR
+uRo
+wPf
+caE
+caE
+wPf
+fZS
+cid
+nCI
+vjQ
+wPf
mhk
-jQv
+rXw
+cBv
mhk
wCR
wCR
@@ -91802,7 +92187,7 @@ ayK
wfn
wfn
osT
-ccC
+qxF
wap
wfn
gKL
@@ -91846,15 +92231,15 @@ xRV
xRV
xRV
xRV
-lCg
-lCg
-kYa
-rBh
-xRV
-iLF
-kJb
-laL
-loj
+kbH
+jad
+hlx
+qcU
+aHg
+mEH
+xBv
+vCT
+mhk
mhk
jby
mhk
@@ -92062,7 +92447,7 @@ sHM
iqB
fdy
hnS
-vvC
+iPk
hxY
vpZ
oRj
@@ -92101,20 +92486,20 @@ nxI
sxZ
qGc
pfw
-sar
-tSA
-frI
-frI
-uIv
-frI
-aDJ
-hKV
-mZg
+cFV
+nFw
frI
+lPq
+lPq
+cox
+lPq
+utI
+gsz
frI
-oyp
+imW
+nVc
mXZ
-mUm
+nqh
mAR
qWG
fkS
@@ -92319,7 +92704,7 @@ cOJ
iqB
phY
jmZ
-agY
+nNk
bDh
fPY
xkX
@@ -92362,8 +92747,8 @@ uAo
iIv
uAo
jsG
-jLr
-aHS
+vjR
+iZi
fHN
jpu
pWM
@@ -92617,9 +93002,9 @@ nTa
tlt
eIM
yjZ
-yjZ
-yjZ
-jtd
+pdk
+pdk
+qnN
xSw
kfw
yeD
@@ -92878,7 +93263,7 @@ xZS
xZS
xRV
xRV
-vIJ
+vzl
kux
wGz
yaL
@@ -93342,7 +93727,7 @@ oIF
tit
kIp
tYC
-izE
+bJv
mls
dSh
fDW
@@ -93405,7 +93790,7 @@ cKt
jVM
hIm
azq
-iTv
+bzl
wMg
lql
vtr
@@ -93670,7 +94055,7 @@ mmL
qDC
btY
mUi
-xMu
+xeO
qmM
vSi
hEJ
@@ -94111,7 +94496,7 @@ hVq
yjE
yjE
yjE
-dnU
+utR
yjE
dKl
soV
@@ -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
+jrl
jVM
rXy
bFO
@@ -94947,7 +95332,7 @@ ptX
hsH
srg
jVM
-ayT
+aAT
sZo
yfC
lnN
@@ -95200,7 +95585,7 @@ jVM
jVM
jVM
jVM
-pSI
+cUC
jVM
xlU
jRK
@@ -95453,11 +95838,11 @@ kvT
wQB
cZi
jVM
-lbl
-bwy
-mqz
+bHd
+jVn
+kkw
jVM
-gls
+cQR
jVM
lzB
jVM
@@ -95710,11 +96095,11 @@ kyO
wQB
drC
jVM
-lzW
-dbJ
-lMH
+bWZ
+qfG
+aps
jVM
-gls
+cQR
jVM
uZY
jVM
@@ -95967,11 +96352,11 @@ ncL
wQB
ydz
jVM
-lEO
-eHv
-bes
-pSI
-gls
+hmW
+jZW
+ohy
+cUC
+cQR
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
+svm
xRV
xRV
xRV
@@ -97525,10 +97910,10 @@ cri
bOG
xmt
xmt
-xwC
+hrl
xmt
xmt
-lHZ
+xli
eNP
qFc
cEo
@@ -97765,8 +98150,8 @@ dCu
eXR
wQB
rHl
-sVO
-lbi
+pCM
+rUn
jVM
jTn
xXe
@@ -98021,7 +98406,7 @@ psc
dCu
rJZ
wQB
-xAV
+aPi
txW
nCX
jVM
@@ -98298,7 +98683,7 @@ oTM
pLf
aTg
aTg
-pkK
+aIr
sWq
nUd
bmY
@@ -98537,7 +98922,7 @@ rJZ
wQB
eIO
xND
-ind
+kDT
jVM
oZy
jVM
@@ -98555,7 +98940,7 @@ sJL
sne
aTg
aTg
-hwF
+lZs
bIN
nUd
bmY
@@ -99063,11 +99448,11 @@ tGq
xmt
xmt
oTN
-jKK
-nxY
-dwd
-kad
-kaL
+fGk
+sYS
+nPY
+rVt
+elb
xmt
xmt
xli
@@ -100356,7 +100741,7 @@ xkV
ecC
cvV
spH
-elN
+kmq
dPp
sFs
fZZ
@@ -100870,7 +101255,7 @@ gyy
xkV
swW
vkh
-oNW
+mwU
cSy
bpY
sMt
@@ -101891,7 +102276,7 @@ rZq
ycX
pBu
khY
-lvr
+vIK
aGq
khY
khY
@@ -102386,7 +102771,7 @@ cCD
gcz
jyM
uoB
-jZn
+eDZ
baJ
rji
vAw
@@ -105222,7 +105607,7 @@ sRL
bCP
dqB
pIf
-sWZ
+lZP
jgF
wqj
rEa
@@ -105734,7 +106119,7 @@ nVa
fuD
xVV
eWP
-bmR
+lNN
lWp
xhD
heN
@@ -106767,7 +107152,7 @@ jvQ
eul
eeJ
egJ
-ksD
+yfF
gMq
duT
gtk
@@ -107529,7 +107914,7 @@ rqw
sRL
sRL
sRL
-nqa
+cvj
sRL
sRL
eeJ
@@ -118775,7 +119160,7 @@ dDB
dDB
dDB
dDB
-kLk
+mzv
dDB
dDB
dDB
@@ -121442,7 +121827,7 @@ xok
xok
xok
xok
-eog
+cUz
tbI
xok
qNO
@@ -122217,7 +122602,7 @@ lkV
iJL
rci
vTv
-oSj
+dpz
boY
agI
kQt
@@ -122988,7 +123373,7 @@ nWh
xnR
aLC
wLZ
-qwh
+xwn
cns
vwJ
kQt
diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm
index 096cf003ac4eb..ded3dcd76d24e 100644
--- a/_maps/map_files/wawastation/wawastation.dmm
+++ b/_maps/map_files/wawastation/wawastation.dmm
@@ -26151,6 +26151,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 +38293,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 +41520,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{
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/shuttles/pirate_ex_interdyne.dmm b/_maps/shuttles/pirate_ex_interdyne.dmm
index 3896e755f85d9..4dd64e4cdbe04 100644
--- a/_maps/shuttles/pirate_ex_interdyne.dmm
+++ b/_maps/shuttles/pirate_ex_interdyne.dmm
@@ -291,9 +291,9 @@
/area/shuttle/pirate)
"aS" = (
/obj/effect/turf_decal/tile/dark_blue/opposingcorners,
-/obj/structure/closet/crate/freezer/blood/interdyne,
/obj/machinery/light/small/blacklight/directional/south,
/obj/machinery/iv_drip,
+/obj/structure/closet/crate/secure/freezer/interdyne/blood,
/turf/open/floor/iron/dark,
/area/shuttle/pirate)
"aW" = (
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 e707639ebd722..ddc76f6e8066c 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/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/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_hud.dm b/code/__DEFINES/dcs/signals/signals_hud.dm
index 2d5d3eaa59cc3..b141f7d8f576b 100644
--- a/code/__DEFINES/dcs/signals/signals_hud.dm
+++ b/code/__DEFINES/dcs/signals/signals_hud.dm
@@ -1,5 +1,7 @@
/// Sent from /datum/hud/proc/on_eye_change(): (atom/old_eye, atom/new_eye)
#define COMSIG_HUD_EYE_CHANGED "hud_eye_changed"
+/// Sent from /datum/hud/proc/eye_z_changed() : (new_z)
+#define COMSIG_HUD_Z_CHANGED "hud_z_changed"
/// Sent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset)
#define COMSIG_HUD_OFFSET_CHANGED "hud_offset_changed"
/// Sent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : ()
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_plane_master_group.dm b/code/__DEFINES/dcs/signals/signals_plane_master_group.dm
new file mode 100644
index 0000000000000..d27adb5f8c957
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_plane_master_group.dm
@@ -0,0 +1,2 @@
+/// from /datum/plane_master_group/proc/set_hud(): (datum/hud/new_hud)
+#define COMSIG_GROUP_HUD_CHANGED "group_hud_changed"
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/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 40617a8f4aa33..a11cdb83f0c90 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 7b991fcf8f9d2..567b4f1389bdb 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 0d93a33c1fb0c..5cd3a76314bd2 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -33,6 +33,7 @@
#define DEFAULT_PLANE 0 //Marks out the default plane, even if we don't use it
+#define WEATHER_PLANE 1
#define AREA_PLANE 2
#define MASSIVE_OBJ_PLANE 3
#define GHOST_PLANE 4
@@ -65,6 +66,8 @@
///Things that should render ignoring lighting
#define ABOVE_LIGHTING_PLANE 17
+#define WEATHER_GLOW_PLANE 18
+
///---------------- MISC -----------------------
///Pipecrawling images
@@ -148,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
@@ -166,12 +174,12 @@
#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 LOW_SIGIL_LAYER 2.52 // BUBBER EDIT ADDITION
+#define SIGIL_LAYER 2.53 // BUBBER EDIT ADDITION
#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 16bb591ec505a..98d81aba7786f 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 e3fb415318e86..ec93973a9900c 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -258,3 +258,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/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 774b89cdb0e7e..2a04228cbab28 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -965,6 +965,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 7f6735cb5d7c5..0865867196c92 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -259,6 +259,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/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 4b7dbf769be2a..6cd4e326d0428 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 570540e6182ca..ebd6ad06c4fa5 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -118,7 +118,7 @@ GLOBAL_LIST_INIT(available_erp_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
@@ -224,6 +224,7 @@ GLOBAL_LIST_INIT(available_erp_ui_styles, list(
SIGNAL_HANDLER
update_parallax_pref() // If your eye changes z level, so should your parallax prefs
var/turf/eye_turf = get_turf(eye)
+ SEND_SIGNAL(src, COMSIG_HUD_Z_CHANGED, eye_turf.z)
var/new_offset = GET_TURF_PLANE_OFFSET(eye_turf)
if(current_plane_offset == new_offset)
return
@@ -552,6 +553,7 @@ GLOBAL_LIST_INIT(available_erp_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 52e8c545d295b..94bca7fb563d5 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -286,7 +286,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)
@@ -319,17 +319,41 @@
/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*/ //BUBBER EDIT: Removal (Digi's can wear shoes here)
+
// SPLURT EDIT - Extra inventory
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory + extra_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/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm
index 23096cc0e9ccd..4bed46f983f4a 100644
--- a/code/_onclick/hud/rendering/plane_master_group.dm
+++ b/code/_onclick/hud/rendering/plane_master_group.dm
@@ -24,10 +24,23 @@
build_plane_masters(0, SSmapping.max_plane_offset)
/datum/plane_master_group/Destroy()
- orphan_hud()
+ set_hud(null)
QDEL_LIST_ASSOC_VAL(plane_masters)
return ..()
+/datum/plane_master_group/proc/set_hud(datum/hud/new_hud)
+ if(new_hud == our_hud)
+ return
+ if(our_hud)
+ our_hud.master_groups -= key
+ hide_hud()
+ our_hud = new_hud
+ if(new_hud)
+ our_hud.master_groups[key] = src
+ show_hud()
+ build_planes_offset(our_hud, active_offset)
+ SEND_SIGNAL(src, COMSIG_GROUP_HUD_CHANGED, our_hud)
+
/// Display a plane master group to some viewer, so show all our planes to it
/datum/plane_master_group/proc/attach_to(datum/hud/viewing_hud)
if(viewing_hud.master_groups[key])
@@ -42,18 +55,11 @@
relay_loc = "1,1"
rebuild_plane_masters()
- our_hud = viewing_hud
+ set_hud(viewing_hud)
our_hud.master_groups[key] = src
show_hud()
build_planes_offset(our_hud, active_offset)
-/// Hide the plane master from its current hud, fully clear it out
-/datum/plane_master_group/proc/orphan_hud()
- if(our_hud)
- our_hud.master_groups -= key
- hide_hud()
- our_hud = null
-
/// Well, refresh our group, mostly useful for plane specific updates
/datum/plane_master_group/proc/refresh_hud()
hide_hud()
diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm
index c96361348f0de..acfa5ee274ca2 100644
--- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm
+++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm
@@ -243,6 +243,18 @@
documentation = "Holds the areas themselves, which ends up meaning it holds any overlays/effects we apply to areas. NOT snow or rad storms, those go on above lighting"
plane = AREA_PLANE
+/atom/movable/screen/plane_master/weather
+ name = "Weather"
+ documentation = "Holds the main tiling 32x32 sprites of weather. We mask against walls that are on the edge of weather effects."
+ plane = WEATHER_PLANE
+ start_hidden = TRUE
+
+/atom/movable/screen/plane_master/weather/set_home(datum/plane_master_group/home)
+ . = ..()
+ if(!.)
+ return
+ home.AddComponent(/datum/component/hide_weather_planes, src)
+
/atom/movable/screen/plane_master/massive_obj
name = "Massive object"
documentation = "Huge objects need to render above everything else on the game plane, otherwise they'd well, get clipped and look not that huge. This does that."
@@ -285,6 +297,18 @@
documentation = "Anything on the game plane that needs a space to draw on that will be above the lighting plane.\
Mostly little alerts and effects, also sometimes contains things that are meant to look as if they glow."
+/atom/movable/screen/plane_master/weather_glow
+ name = "Weather Glow"
+ documentation = "Holds the glowing parts of the main tiling 32x32 sprites of weather."
+ plane = WEATHER_GLOW_PLANE
+ start_hidden = TRUE
+
+/atom/movable/screen/plane_master/weather_glow/set_home(datum/plane_master_group/home)
+ . = ..()
+ if(!.)
+ return
+ home.AddComponent(/datum/component/hide_weather_planes, src)
+
/**
* Handles emissive overlays and emissive blockers.
*/
diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm
index e4cdc41ca1cfb..66339c837d050 100644
--- a/code/_onclick/hud/rendering/render_plate.dm
+++ b/code/_onclick/hud/rendering/render_plate.dm
@@ -345,7 +345,7 @@
if(!.)
return
- RegisterSignal(mymob, COMSIG_MOB_SIGHT_CHANGE, PROC_REF(handle_sight))
+ RegisterSignal(mymob, COMSIG_MOB_SIGHT_CHANGE, PROC_REF(handle_sight), override = TRUE)
handle_sight(mymob, mymob.sight, NONE)
/atom/movable/screen/plane_master/rendering_plate/light_mask/hide_from(mob/oldmob)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index df330c0070b38..472fe0a9b5014 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 3eed78a892ac1..23d67824b55f9 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\
@@ -368,13 +369,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()
@@ -449,13 +458,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")
@@ -571,7 +589,7 @@ SUBSYSTEM_DEF(job)
/datum/controller/subsystem/job/proc/equip_rank(mob/living/equipping, datum/job/job, client/player_client)
// SKYRAT EDIT ADDITION BEGIN - ALTERNATIVE_JOB_TITLES
// The alt job title, if user picked one, or the default
- var/alt_title = player_client?.prefs.alt_job_titles[job.title] || job.title
+ var/alt_title = player_client?.prefs.alt_job_titles?[job.title] || job.title
// SKYRAT EDIT ADDITION END
equipping.job = job.title
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index b017a6aaaa4a7..15a0dba56076c 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 673414ea3c25b..f5af2853b9496 100644
--- a/code/controllers/subsystem/materials.dm
+++ b/code/controllers/subsystem/materials.dm
@@ -148,7 +148,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 bfe5d33dff061..215f50c70478f 100644
--- a/code/controllers/subsystem/polling.dm
+++ b/code/controllers/subsystem/polling.dm
@@ -282,7 +282,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
//SKYRAT EDIT ADDITION BEGIN
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 d6230ec8d3534..3eb7f9244a188 100644
--- a/code/datums/ai/_ai_controller.dm
+++ b/code/datums/ai/_ai_controller.dm
@@ -364,6 +364,16 @@ multiple modular subtrees with behaviors
///Runs any actions that are currently running
/datum/ai_controller/process(seconds_per_tick)
+ 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?")
+ CancelActions()
+ return
+
+ if(get_dist(pawn, current_movement_target) > max_target_distance) //The distance is out of range
+ 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
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/hide_weather_planes.dm b/code/datums/components/hide_weather_planes.dm
new file mode 100644
index 0000000000000..97f34f57d313e
--- /dev/null
+++ b/code/datums/components/hide_weather_planes.dm
@@ -0,0 +1,136 @@
+/**
+ * Component that manages a list of plane masters that are dependent on weather
+ * Force hides/shows them depending on the weather activity of their z stack
+ * Transparency is achieved by manipulating the alpha of the planes that are visible
+ * Applied to the plane master group that owns them
+ */
+/datum/component/hide_weather_planes
+ dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
+ var/list/datum/weather/active_weather = list()
+ var/list/atom/movable/screen/plane_master/plane_masters = list()
+
+/datum/component/hide_weather_planes/Initialize(atom/movable/screen/plane_master/care_about)
+ if(!istype(parent, /datum/plane_master_group))
+ return COMPONENT_INCOMPATIBLE
+ var/datum/plane_master_group/home = parent
+ plane_masters += care_about
+ RegisterSignal(care_about, COMSIG_QDELETING, PROC_REF(plane_master_deleted))
+
+ var/list/starting_signals = list()
+ var/list/ending_signals = list()
+ for(var/datum/weather/weather_type as anything in typesof(/datum/weather))
+ starting_signals += COMSIG_WEATHER_TELEGRAPH(weather_type)
+ ending_signals += COMSIG_WEATHER_END(weather_type)
+
+ RegisterSignals(SSdcs, starting_signals, PROC_REF(weather_started))
+ RegisterSignals(SSdcs, ending_signals, PROC_REF(weather_finished))
+
+ if(home.our_hud)
+ attach_hud(home.our_hud)
+ else
+ RegisterSignal(home, COMSIG_GROUP_HUD_CHANGED, PROC_REF(new_hud_attached))
+
+/datum/component/hide_weather_planes/Destroy(force)
+ hide_planes()
+ active_weather = null
+ plane_masters = null
+ return ..()
+
+/datum/component/hide_weather_planes/InheritComponent(datum/component/new_comp, i_am_original, atom/movable/screen/plane_master/care_about)
+ if(!i_am_original)
+ return
+ var/datum/plane_master_group/home = parent
+ var/mob/our_lad = home.our_hud?.mymob
+ var/our_offset = GET_TURF_PLANE_OFFSET(our_lad)
+ plane_masters += care_about
+ RegisterSignal(care_about, COMSIG_QDELETING, PROC_REF(plane_master_deleted))
+ if(length(active_weather))
+ //If there's weather to care about we unhide our new plane and adjust its alpha
+ care_about.unhide_plane(our_lad)
+
+ if(care_about.offset >= our_offset)
+ care_about.enable_alpha()
+ else
+ care_about.disable_alpha()
+ else
+ care_about.hide_plane(our_lad)
+
+/datum/component/hide_weather_planes/proc/new_hud_attached(datum/source, datum/hud/new_hud)
+ SIGNAL_HANDLER
+ attach_hud(new_hud)
+
+/datum/component/hide_weather_planes/proc/attach_hud(datum/hud/new_hud)
+ RegisterSignal(new_hud, COMSIG_HUD_Z_CHANGED, PROC_REF(z_changed))
+ var/mob/eye = new_hud?.mymob?.client?.eye
+ var/turf/eye_location = get_turf(eye)
+ z_changed(new_hud, eye_location?.z)
+
+/datum/component/hide_weather_planes/proc/plane_master_deleted(atom/movable/screen/plane_master/source)
+ SIGNAL_HANDLER
+ plane_masters -= source
+
+/**
+ * Unhides the relevant planes for the weather to be visible and manipulated.
+ * Also updates the alpha of the planes so enabled planes are either fully opaque or fully transparent
+ */
+/datum/component/hide_weather_planes/proc/display_planes()
+ var/datum/plane_master_group/home = parent
+ var/mob/our_lad = home.our_hud?.mymob
+ var/our_offset = GET_TURF_PLANE_OFFSET(our_lad)
+ for(var/atom/movable/screen/plane_master/weather_concious as anything in plane_masters)
+ //If the plane is hidden, unhide it
+ if(weather_concious.force_hidden)
+ weather_concious.unhide_plane(our_lad)
+
+ //Now we update the alpha of the plane based on our offset. Weather above us (lower offset) are transparent, weather at or below us (higher offset) are opaque.
+ if(weather_concious.offset >= our_offset)
+ weather_concious.enable_alpha()
+ else
+ weather_concious.disable_alpha()
+
+///Hides the planes from the mob when no weather is occuring
+/datum/component/hide_weather_planes/proc/hide_planes()
+ var/datum/plane_master_group/home = parent
+ var/mob/our_lad = home.our_hud?.mymob
+ for(var/atom/movable/screen/plane_master/weather_concious as anything in plane_masters)
+ weather_concious.hide_plane(our_lad)
+
+/datum/component/hide_weather_planes/proc/z_changed(datum/source, new_z)
+ SIGNAL_HANDLER
+ active_weather = list()
+ if(!SSmapping.initialized)
+ return
+
+ var/list/connected_levels = SSmapping.get_connected_levels(new_z)
+ for(var/datum/weather/active as anything in SSweather.processing)
+ if(length(connected_levels & active.impacted_z_levels))
+ active_weather += WEAKREF(active)
+
+ if(length(active_weather))
+ display_planes()
+ else
+ hide_planes()
+
+/datum/component/hide_weather_planes/proc/weather_started(datum/source, datum/weather/starting)
+ SIGNAL_HANDLER
+ var/datum/plane_master_group/home = parent
+ var/mob/eye = home.our_hud?.mymob?.client?.eye
+ var/turf/viewing_from = get_turf(eye)
+ if(!viewing_from)
+ return
+
+ var/list/connected_levels = SSmapping.get_connected_levels(viewing_from)
+ if(length(connected_levels & starting.impacted_z_levels))
+ active_weather += WEAKREF(starting)
+
+ if(!length(active_weather))
+ return
+ display_planes()
+
+/datum/component/hide_weather_planes/proc/weather_finished(datum/source, datum/weather/stopping)
+ SIGNAL_HANDLER
+ active_weather -= WEAKREF(stopping)
+
+ if(length(active_weather))
+ return
+ hide_planes()
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 993d9aa6f1df8..db6a621c951a1 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
@@ -65,6 +83,7 @@
turf_parent.turf_flags &= ~CAN_DECAY_BREAK_1
// SKYRAT EDIT END
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()
. = ..()
@@ -74,6 +93,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
@@ -86,14 +106,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))
@@ -103,7 +153,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
@@ -111,9 +161,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)
@@ -122,11 +172,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))
@@ -134,6 +184,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
@@ -150,8 +202,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)
@@ -163,7 +215,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
@@ -218,20 +270,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)
@@ -277,8 +321,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.")
@@ -315,7 +363,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!")
@@ -333,6 +381,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 b1a9598bc216b..c9fb318b8c254 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -179,9 +179,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)
@@ -527,7 +537,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 46772087e5e90..348ec948b4af9 100644
--- a/code/datums/elements/footstep.dm
+++ b/code/datums/elements/footstep.dm
@@ -80,31 +80,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
@@ -137,6 +148,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
@@ -144,37 +197,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 69f104d2f9124..b922d2697d510 100644
--- a/code/datums/greyscale/_greyscale_config.dm
+++ b/code/datums/greyscale/_greyscale_config.dm
@@ -257,7 +257,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/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/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 7f5897e8b7527..3542b2a3e0a18 100644
--- a/code/datums/ruins/icemoon.dm
+++ b/code/datums/ruins/icemoon.dm
@@ -62,6 +62,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 e67eb0fbcd398..50a286f16fde6 100644
--- a/code/datums/ruins/space.dm
+++ b/code/datums/ruins/space.dm
@@ -524,3 +524,25 @@ BUBBERSTATION REMOVAL END */
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/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm
index fec013267c55d..8ce23dee18838 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/weather/weather.dm b/code/datums/weather/weather.dm
index 8a5eeb4fbe196..76bfd8c676640 100644
--- a/code/datums/weather/weather.dm
+++ b/code/datums/weather/weather.dm
@@ -59,7 +59,7 @@
/// Since it's above everything else, this is the layer used by default.
var/overlay_layer = AREA_LAYER
/// Plane for the overlay
- var/overlay_plane = AREA_PLANE
+ var/overlay_plane = WEATHER_PLANE
/// If the weather has no purpose other than looks
var/aesthetic = FALSE
/// Used by mobs (or movables containing mobs, such as enviro bags) to prevent them from being affected by the weather.
@@ -99,7 +99,7 @@
/datum/weather/proc/telegraph()
if(stage == STARTUP_STAGE)
return
- SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_TELEGRAPH(type))
+ SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_TELEGRAPH(type), src)
stage = STARTUP_STAGE
var/list/affectareas = list()
for(var/V in get_areas(area_type))
@@ -130,14 +130,14 @@
/datum/weather/proc/start()
if(stage >= MAIN_STAGE)
return
- SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_START(type))
+ SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_START(type), src)
stage = MAIN_STAGE
update_areas()
send_alert(weather_message, weather_sound)
if(!perpetual)
addtimer(CALLBACK(src, PROC_REF(wind_down)), weather_duration)
for(var/area/impacted_area as anything in impacted_areas)
- SEND_SIGNAL(impacted_area, COMSIG_WEATHER_BEGAN_IN_AREA(type))
+ SEND_SIGNAL(impacted_area, COMSIG_WEATHER_BEGAN_IN_AREA(type), src)
/**
* Weather enters the winding down phase, stops effects
@@ -149,7 +149,7 @@
/datum/weather/proc/wind_down()
if(stage >= WIND_DOWN_STAGE)
return
- SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_WINDDOWN(type))
+ SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_WINDDOWN(type), src)
stage = WIND_DOWN_STAGE
update_areas()
send_alert(end_message, end_sound)
@@ -165,12 +165,12 @@
/datum/weather/proc/end()
if(stage == END_STAGE)
return
- SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_END(type))
+ SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_END(type), src)
stage = END_STAGE
SSweather.processing -= src
update_areas()
for(var/area/impacted_area as anything in impacted_areas)
- SEND_SIGNAL(impacted_area, COMSIG_WEATHER_ENDED_IN_AREA(type))
+ SEND_SIGNAL(impacted_area, COMSIG_WEATHER_ENDED_IN_AREA(type), src)
// handles sending all alerts
/datum/weather/proc/send_alert(alert_msg, alert_sfx)
@@ -261,12 +261,12 @@
// I prefer it to creating 2 extra plane masters however, so it's a cost I'm willing to pay
// LU
if(use_glow)
- var/mutable_appearance/glow_overlay = mutable_appearance('icons/effects/glow_weather.dmi', weather_state, overlay_layer, null, ABOVE_LIGHTING_PLANE, 100, offset_const = offset)
+ var/mutable_appearance/glow_overlay = mutable_appearance('icons/effects/glow_weather.dmi', weather_state, overlay_layer, null, WEATHER_GLOW_PLANE, 100, offset_const = offset)
glow_overlay.color = weather_color
gen_overlay_cache += glow_overlay
- var/mutable_appearance/weather_overlay = mutable_appearance('icons/effects/weather_effects.dmi', weather_state, overlay_layer, plane = overlay_plane, offset_const = offset)
- weather_overlay.color = weather_color
- gen_overlay_cache += weather_overlay
+ var/mutable_appearance/new_weather_overlay = mutable_appearance('icons/effects/weather_effects.dmi', weather_state, overlay_layer, plane = overlay_plane, offset_const = offset)
+ new_weather_overlay.color = weather_color
+ gen_overlay_cache += new_weather_overlay
return gen_overlay_cache
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 b45912c6053e8..8b6e630c34dd2 100644
--- a/code/game/atom/_atom.dm
+++ b/code/game/atom/_atom.dm
@@ -881,10 +881,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()
@@ -950,9 +958,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 4d539786537d8..3a8eaac4a45d4 100644
--- a/code/game/atom/atoms_initializing_EXPENSIVE.dm
+++ b/code/game/atom/atoms_initializing_EXPENSIVE.dm
@@ -141,7 +141,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 b0530b1595e3b..742e15e19d798 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -1641,8 +1641,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/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 25f22af387f32..72f1dd7b57959 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/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 9c2890e924c4e..ebb6b71485082 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 9125d7f2a10be..784637669f651 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
@@ -145,6 +147,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"
@@ -161,6 +164,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
@@ -246,6 +251,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"
@@ -323,6 +330,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"
@@ -341,7 +350,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
@@ -444,7 +453,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
@@ -559,6 +567,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 f1017b6d25ba2..1460468389fc9 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
@@ -1872,6 +1872,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
@@ -1918,3 +1968,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 6d1497ebcec4e..0c7345fc48960 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -1416,7 +1416,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 7703160bfdb1d..29df25d179cb8 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -514,10 +514,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
@@ -528,6 +528,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/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index e4afe968fa182..5201d90c5f87a 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -651,7 +651,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
@@ -660,7 +660,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 b5aa0a30c3ca3..0e995120c002f 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)
@@ -440,7 +430,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)
@@ -543,8 +533,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
@@ -591,8 +580,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 f5d802a02ffe2..bf1b37f0d98de 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
@@ -383,7 +383,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 bbdadcfefb4bd..a27ff1b9fb19d 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 d3fc2b0803bb7..ec9cb27ccb4f0 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]!"))
@@ -267,6 +266,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)
@@ -276,6 +278,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
@@ -285,6 +290,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
@@ -292,6 +298,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/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 2dfa053537e44..99d33aea04b8d 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -301,22 +301,16 @@
base_icon_state = "food"
/obj/structure/closet/crate/freezer/donk
- name = "donk co. fridge"
- desc = "A Donk Co. brand fridge, keeps your donkpcokets and foam ammunition fresh!"
+ name = "\improper Donk Co. fridge"
+ desc = "A Donk Co. brand fridge, keeps your donkpockets and foam ammunition fresh!"
icon_state = "donkcocrate"
base_icon_state = "donkcocrate"
-/obj/structure/closet/crate/freezer/interdyne
- name = "interdyne freezer"
- desc = "Interdyne Pharmauceutics branded freezer. Might or might not contain cold steel, or fresh organs."
- icon_state = "interdynefreezer"
- base_icon_state = "interdynefreezer"
-
-/obj/structure/closet/crate/freezer/blood/interdyne
- name = "interdyne blood freezer"
- desc = "Interdyne Pharmauceutics branded freezer. Only freshly harvested- I mean, freshly kept blood inside!"
- icon_state = "interdynefreezer"
- base_icon_state = "interdynefreezer"
+/obj/structure/closet/crate/self
+ name = "\improper S.E.L.F. crate"
+ desc = "A robust-looking crate with a seemingly decorative holographic display. The front of the crate proudly declares its allegiance to the notorious terrorist group 'S.E.L.F'."
+ icon_state = "selfcrate"
+ base_icon_state = "selfcrate"
/obj/structure/closet/crate/radiation
desc = "A crate with a radiation sign on it."
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index e93591f1d596c..b0b6cfaae0016 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -44,17 +44,6 @@
icon_state = "weaponcrate"
base_icon_state = "weaponcrate"
-/obj/structure/closet/crate/secure/gorlex_weapons
- desc = "A secure weapons crate of Gorlex Marauders."
- name = "weapons crate"
- icon_state = "gorlex_weaponcrate"
- base_icon_state = "gorlex_weaponcrate"
-
-/obj/structure/closet/crate/secure/gorlex_weapons/jammed
- desc = "A beaten up, jammed open weapon crate of Gorlex Marauders."
- name = "jammed weapons crate"
- locked = FALSE
-
/obj/structure/closet/crate/secure/plasma
desc = "A secure plasma crate."
name = "plasma crate"
@@ -204,64 +193,110 @@
to_chat(user, span_warning("[src] is broken!"))
else ..()
-/obj/structure/closet/crate/secure/interdyne
- name = "interdyne crate"
+/obj/structure/closet/crate/secure/freezer/interdyne
+ name = "\improper Interdyne freezer"
+ desc = "This is an Interdyne Pharmauceutics branded freezer. May or may not contain fresh organs."
+ icon_state = "interdynefreezer"
+ base_icon_state = "interdynefreezer"
+ req_access = list(ACCESS_SYNDICATE)
+
+/obj/structure/closet/crate/secure/freezer/interdyne/blood
+ name = "\improper Interdyne blood freezer"
+ desc = "This is an Interdyne Pharmauceutics branded freezer. It's made to contain fresh, high-quality blood."
+
+/obj/structure/closet/crate/secure/freezer/interdyne/blood/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 13)
+ new /obj/item/reagent_containers/blood/random(src)
+
+/obj/structure/closet/crate/secure/freezer/donk
+ name = "\improper Donk Co. fridge"
+ desc = "A Donk Co. brand fridge, keeps your donkpockets and foam ammunition fresh!"
+ icon_state = "donkcocrate_secure"
+ base_icon_state = "donkcocrate_secure"
+ req_access = list(ACCESS_SYNDICATE)
+
+/obj/structure/closet/crate/secure/syndicate
+ name = "\improper Syndicate crate"
+ desc = "A secure crate with the Syndicate's branding on it."
+ icon_state = "syndicrate"
+ base_icon_state = "syndicrate"
+ req_access = list(ACCESS_SYNDICATE)
+
+/obj/structure/closet/crate/secure/syndicate/interdyne
+ name = "\improper Interdyne crate"
desc = "Crate belonging to Interdyne Pharmaceutics. Hopefully doesn't have bioweapons inside..."
icon_state = "interdynecrate"
base_icon_state = "interdynecrate"
-/obj/structure/closet/crate/secure/tiger
- name = "tiger co-op crate"
+/obj/structure/closet/crate/secure/syndicate/tiger
+ name = "\improper Tiger Co-Op crate"
icon_state = "tigercrate"
base_icon_state = "tigercrate"
-/obj/structure/closet/crate/secure/self
- name = "s.e.l.f. crate"
+/obj/structure/closet/crate/secure/syndicate/self
+ name = "\improper S.E.L.F. crate"
desc = "A secure crate locked from the inside with a scanning panel above it and holographic display of lock's status. Sentient Engine Liberation Front engineers are quite the show-offs."
- icon_state = "selfcrate"
- base_icon_state = "selfcrate"
+ icon_state = "selfcrate_secure"
+ base_icon_state = "selfcrate_secure"
-/obj/structure/closet/crate/secure/m13
+/obj/structure/closet/crate/secure/syndicate/mi13
name = "mysterious secure crate"
desc = "A secure crate. Lacks any obvious logos or even codes for where it arrived from, but looks like taken straight from a spy movie."
icon_state = "mithirteencrate"
base_icon_state = "mithirteencrate"
+ open_sound_volume = 15
+ close_sound_volume = 20
-/obj/structure/closet/crate/secure/arc
- name = "animal rights consortium crate"
+/obj/structure/closet/crate/secure/syndicate/arc
+ name = "\improper Animal Rights Consortium crate"
icon_state = "arccrate"
base_icon_state = "arccrate"
-/obj/structure/closet/crate/secure/cybersun
- name = "cybersun crate"
+/obj/structure/closet/crate/secure/syndicate/cybersun
+ name = "\improper Cybersun crate"
-/obj/structure/closet/crate/secure/cybersun/dawn
+/obj/structure/closet/crate/secure/syndicate/cybersun/dawn
desc = "A secure crate from Cybersun Industries. It has distinct orange-green colouring, probably of some departament or division, but you cannot tell what is it."
icon_state = "cyber_dawncrate"
base_icon_state = "cyber_dawncrate"
-/obj/structure/closet/crate/secure/cybersun/noon
+/obj/structure/closet/crate/secure/syndicate/cybersun/noon
desc = "A secure crate from Cybersun Industries. It has distinct yellow-orange colouring, probably of some departament or division, but you cannot tell what is it."
icon_state = "cyber_nooncrate"
base_icon_state = "cyber_nooncrate"
-/obj/structure/closet/crate/secure/cybersun/dusk
+/obj/structure/closet/crate/secure/syndicate/cybersun/dusk
desc = "A secure crate from Cybersun Industries. It has distinct purple-green colouring, probably of some departament or division, but you cannot tell what is it."
icon_state = "cyber_duskcrate"
base_icon_state = "cyber_duskcrate"
-/obj/structure/closet/crate/secure/cybersun/night
+/obj/structure/closet/crate/secure/syndicate/cybersun/night
desc = "A secure crate from Cybersun Industries. This one blatantly adorns syndicate colours. You can only guess it contains equipement for syndicate operatives."
icon_state = "cyber_nightcrate"
base_icon_state = "cyber_nightcrate"
-/obj/structure/closet/crate/secure/wafflecorp
- name = "wafflecorp crate"
+/obj/structure/closet/crate/secure/syndicate/wafflecorp
+ name = "\improper Waffle corp. crate"
desc = "A very outdated model and design of shipment crate with a modern lock strapped on it, how befitting of its brand owner, Waffle Corporation. Golden lettering written in cursive by the logo reads 'bringing you consecutively top five world-wide rated* breakfast since 2055. A much smaller fineprint, also in cursive, clarifies: '*in years 2099-2126'... It's year 2563 now, however."
icon_state = "wafflecrate"
base_icon_state = "wafflecrate"
-/obj/structure/closet/crate/secure/gorlex
- name = "gorlex marauders crate"
+/obj/structure/closet/crate/secure/syndicate/gorlex
+ name = "\improper Gorlex Marauders crate"
icon_state = "gorlexcrate"
base_icon_state = "gorlexcrate"
+
+/obj/structure/closet/crate/secure/syndicate/gorlex/weapons
+ desc = "A secure weapons crate of Gorlex Marauders."
+ name = "weapons crate"
+ icon_state = "gorlex_weaponcrate"
+ base_icon_state = "gorlex_weaponcrate"
+
+/obj/structure/closet/crate/secure/syndicate/gorlex/weapons/bustedlock
+ desc = "A beaten up weapon crate with Gorlex Marauders branding. Its lock looks broken."
+ name = "damaged weapons crate"
+ secure = FALSE
+ locked = FALSE
+ max_integrity = 400
+ damage_deflection = 15
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 03fd1b39a432d..37f44fe49f6a4 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -456,6 +456,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 718ee1428961c..0ac2a77b7d4d9 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 0ae4c1173d4cb..acadb7eba9a07 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)
@@ -241,18 +242,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 06553329897ac..20164d3072f59 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
@@ -664,6 +661,9 @@
/obj/structure/table/reinforced/welder_act_secondary(mob/living/user, obj/item/tool)
if(tool.tool_start_check(user, amount = 0))
+ if(attempt_electrocution(user))
+ return ITEM_INTERACT_BLOCKING
+
if(deconstruction_ready)
to_chat(user, span_notice("You start strengthening the reinforced table..."))
if (tool.use_tool(src, user, 50, volume = 50))
@@ -684,6 +684,40 @@
return ..()
+/obj/structure/table/reinforced/screwdriver_act_secondary(mob/living/user, obj/item/tool)
+ if(deconstruction_ready && attempt_electrocution(user))
+ return ITEM_INTERACT_BLOCKING
+ return ..()
+
+/obj/structure/table/reinforced/wrench_act_secondary(mob/living/user, obj/item/tool)
+ if(deconstruction_ready && attempt_electrocution(user))
+ return ITEM_INTERACT_BLOCKING
+ return ..()
+
+/// Attempts to shock the user, given the table is hooked up and they're within range.
+/// Returns TRUE on successful electrocution, FALSE otherwise.
+/obj/structure/table/reinforced/proc/attempt_electrocution(mob/user)
+ if(!anchored) // If for whatever reason it's not anchored, it can't be shocked either.
+ return FALSE
+ if(!in_range(src, user)) // To prevent TK and mech users from getting shocked.
+ return FALSE
+
+ var/turf/our_turf = get_turf(src)
+ if(our_turf.overfloor_placed) // Can't have a floor in the way.
+ return FALSE
+
+ var/obj/structure/cable/cable_node = our_turf.get_cable_node()
+ if(isnull(cable_node))
+ return FALSE
+ if(!electrocute_mob(user, cable_node, src, 1, TRUE))
+ return FALSE
+
+ var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
+ sparks.set_up(3, TRUE, src)
+ sparks.start()
+
+ return TRUE
+
/obj/structure/table/bronze
name = "bronze table"
desc = "A solid table made out of bronze."
diff --git a/code/game/sound.dm b/code/game/sound.dm
index b379187e09ddd..070f2026955c6 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -229,7 +229,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)
@@ -526,6 +529,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 68c3c1a1c7710..a841db9265e13 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -494,6 +494,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 c9256f2e0c850..db185ba38eccb 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -772,6 +772,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 7ecadd4891c37..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 = ANNOUNCER_SHUTTLE, // SKYRAT EDIT CHANGE - Announcer Sounds - ORIGINAL: 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 = ANNOUNCER_SHUTTLE, // SKYRAT EDIT CHANGE - Announcer Sounds - ORIGINAL: 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 6aaa5068a5b9e..6b0976e0b1916 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 9090a5cd2f039..0000000000000
--- a/code/modules/admin/verbs/shuttlepanel.dm
+++ /dev/null
@@ -1,78 +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()
- options += "-----COMPATIBLE DOCKS:" //SKYRAT EDIT ADDITION
- 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
- //SKYRAT EDIT ADDITION START
- options += "-----INCOMPATIBLE DOCKS:" //I WILL CRASH THIS SHIP WITH NO SURVIVORS!
- 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
- //SKYRAT EDIT END
-
- 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], TRUE) //SKYRAT EDIT CHANGE
- message_admins("[user.ckey] has admin FORCED [name || shuttle_id] to dock at [options[selection]], this is ignoring all safety measures.") //SKYRAT EDIT ADDITION
-
-/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 ddcc0c23887f7..8fb661fd432bf 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 b04e8a4caf196..0f46ded08017e 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/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm
index 0032816c08203..590e2f75b0809 100644
--- a/code/modules/cargo/packs/imports.dm
+++ b/code/modules/cargo/packs/imports.dm
@@ -143,7 +143,7 @@
/obj/item/gun/ballistic/automatic/wt550 = 2,
/obj/item/ammo_box/magazine/wt550m9 = 2,
)
- crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
+ crate_type = /obj/structure/closet/crate/secure/syndicate/gorlex/weapons/bustedlock
/datum/supply_pack/imports/wt550ammo
name = "Smuggled WT-550 Ammo Crate"
@@ -156,7 +156,7 @@
/obj/item/ammo_box/magazine/wt550m9/wtic = 2,
)
crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
+ crate_type = /obj/structure/closet/crate/secure/syndicate/gorlex/weapons/bustedlock
/datum/supply_pack/imports/shocktrooper
name = "Shocktrooper Crate"
@@ -172,7 +172,7 @@
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/head/helmet,
)
- crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
+ crate_type = /obj/structure/closet/crate/secure/syndicate/gorlex/weapons/bustedlock
/datum/supply_pack/imports/specialops
name = "Special Ops Crate"
@@ -188,6 +188,7 @@
/obj/item/switchblade,
/obj/item/grenade/mirage = 5,
)
+ crate_type = /obj/structure/closet/crate/secure/syndicate/gorlex/weapons/bustedlock
// SKYRAT EDIT REMOVAL BEGIN - REPLACED BY LORE BEFITTING CRATE AT: modular_skyrat/modules/cargo/code/packs.dm
/*
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 348de7bd032fc..fea48d13d3776 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 b1cbc76399bd8..321a59e89f799 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -321,6 +321,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
@@ -444,6 +448,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
@@ -543,6 +551,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 2ca604505347e..20c258d373e50 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -38,7 +38,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 4c85ed7422281..b7c319d334913 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 7a8d212dbb80e..783c293b79900 100644
--- a/code/modules/deathmatch/deathmatch_loadouts.dm
+++ b/code/modules/deathmatch/deathmatch_loadouts.dm
@@ -588,7 +588,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 6fec7d2502e6d..c06c2e5b30994 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 d88129a7c43ec..539f7c9a0b9b5 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 06d508ffcabd8..56c1cb8e32529 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, BUBBERSTATION CHANGE: NO DUDS. HOLY SHIT.
/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 936c74d93c7ed..9d982743e7970 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -125,8 +125,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.
@@ -571,11 +570,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 ae3a5ac80a177..16f6f4c5fd579 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 057107130d300..c47bcb755214a 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 = {"
+