diff --git a/_maps/map_files/YogsBox/YogsBox.dmm b/_maps/map_files/YogsBox/YogsBox.dmm
index 07887ba41bc8..6c182be0cac6 100644
--- a/_maps/map_files/YogsBox/YogsBox.dmm
+++ b/_maps/map_files/YogsBox/YogsBox.dmm
@@ -231,16 +231,6 @@
/mob/living/simple_animal/spiffles,
/turf/open/floor/plasteel,
/area/clerk)
-"aaE" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"aaG" = (
/obj/structure/window/reinforced,
/obj/structure/chair{
@@ -5904,29 +5894,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"apf" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -24
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"apg" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -6397,23 +6364,6 @@
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet)
-"aqT" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"aqU" = (
/obj/machinery/door/poddoor/shutters{
id = "armory";
@@ -6526,16 +6476,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"arn" = (
-/obj/structure/closet/athletic_mixed,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"aro" = (
/turf/open/floor/engine{
name = "Holodeck Projector Floor"
@@ -6789,20 +6729,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"asr" = (
-/obj/structure/closet/boxinggloves,
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/clothing/shoes/jackboots,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"ast" = (
/obj/structure/closet/lasertag/blue,
/obj/effect/turf_decal/tile/neutral{
@@ -6996,15 +6922,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
-"ath" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"ati" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -7053,24 +6970,6 @@
},
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
-"atn" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- dir = 8;
- icon_state = "left";
- name = "Fitness Ring"
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"ato" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/chair{
@@ -7216,15 +7115,6 @@
"atN" = (
/turf/closed/wall/r_wall,
/area/science/nanite)
-"atP" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"atQ" = (
/obj/machinery/door/airlock{
id_tag = "Dorm5";
@@ -7371,15 +7261,6 @@
/obj/machinery/light/small,
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
-"aur" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"auu" = (
/obj/structure/chair{
dir = 8
@@ -7389,18 +7270,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"auv" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"auw" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
@@ -7770,21 +7639,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
-"avw" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"avx" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -7968,12 +7822,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/dorms)
-"awb" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"awc" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
@@ -8422,19 +8270,6 @@
},
/turf/open/floor/plasteel,
/area/hydroponics/garden)
-"axU" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"axW" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- icon_state = "left";
- name = "Fitness Ring"
- },
-/obj/structure/window/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"axX" = (
/obj/machinery/light/small{
dir = 8
@@ -8796,35 +8631,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"azl" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azm" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azn" = (
-/obj/structure/table,
-/obj/item/clothing/mask/balaclava,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"azq" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -9056,47 +8862,6 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
-"aAk" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"aAl" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"aAm" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -14465,6 +14230,12 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"aQG" = (
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aQK" = (
/obj/effect/spawner/xmastree,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -28786,10 +28557,6 @@
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/plasteel,
/area/security/checkpoint/medical)
-"bZi" = (
-/obj/machinery/holopad,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"bZC" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -32247,6 +32014,9 @@
/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
+"cQr" = (
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness)
"cQw" = (
/obj/effect/spawner/structure/window,
/obj/machinery/door/firedoor/border_only,
@@ -32478,18 +32248,23 @@
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"cUT" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -24
},
-/obj/effect/turf_decal/tile/green{
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/green{
- dir = 4
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"cVb" = (
/turf/closed/wall,
@@ -33210,6 +32985,9 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"dyc" = (
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness)
"dyd" = (
/obj/effect/turf_decal/trimline/red/filled/corner{
dir = 4
@@ -34241,6 +34019,30 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"eil" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/table,
+/obj/item/clothing/mask/balaclava,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"eiN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -35252,15 +35054,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"eQU" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"eQZ" = (
/obj/structure/chair/office/dark{
dir = 8
@@ -35318,17 +35111,6 @@
/obj/machinery/light,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"eTs" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"eUi" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/closet/firecloset/full,
@@ -35860,16 +35642,6 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/entry)
-"fkH" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"flZ" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
@@ -38204,19 +37976,6 @@
},
/turf/open/floor/plasteel/dark/telecomms,
/area/tcommsat/server)
-"gOF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"gPr" = (
/obj/machinery/door/window/northleft{
base_state = "right";
@@ -38291,6 +38050,10 @@
},
/turf/open/floor/plasteel/white,
/area/medical/surgery)
+"gQE" = (
+/obj/item/twohanded/required/pool/pool_noodle,
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness)
"gQJ" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/effect/turf_decal/stripes/line,
@@ -38323,6 +38086,27 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"gSB" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"gSO" = (
/obj/structure/sink{
dir = 8;
@@ -38797,6 +38581,16 @@
/obj/item/assembly/flash/handheld,
/turf/open/floor/plasteel,
/area/science/robotics/lab)
+"hlY" = (
+/obj/structure/sign/departments/minsky/command/charge{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"hmc" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -39906,6 +39700,23 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/janitor)
+"hUH" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"hVc" = (
/obj/structure/table,
/obj/item/multitool,
@@ -40518,19 +40329,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"ild" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"ile" = (
/obj/structure/closet/secure_closet/paramedic,
/obj/effect/turf_decal/delivery,
@@ -40623,6 +40421,10 @@
},
/turf/open/floor/plasteel/white,
/area/medical/paramedic)
+"ine" = (
+/obj/structure/pool_ladder,
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness)
"inJ" = (
/obj/effect/turf_decal/arrows/white{
color = "#99ccff";
@@ -41677,6 +41479,21 @@
dir = 4
},
/area/crew_quarters/theatre)
+"iSt" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"iSP" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -42292,6 +42109,22 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
+"jpg" = (
+/obj/structure/closet/boxinggloves,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/clothing/shoes/jackboots,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/item/twohanded/required/pool/rubber_ring,
+/obj/item/twohanded/required/pool/rubber_ring,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"jpr" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -42864,15 +42697,6 @@
},
/turf/open/space,
/area/solar/port/fore)
-"jFA" = (
-/obj/structure/sign/departments/minsky/command/charge{
- pixel_x = 32
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"jFB" = (
/obj/effect/spawner/structure/window/reinforced/shutter,
/obj/structure/cable{
@@ -42954,18 +42778,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/library)
-"jIM" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"jJK" = (
/obj/machinery/telecomms/processor/preset_three,
/turf/open/floor/circuit/green/telecomms/mainframe,
@@ -43376,6 +43188,18 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"jXj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"jXF" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -43661,6 +43485,12 @@
},
/turf/open/floor/plasteel,
/area/vacant_room/commissary)
+"khY" = (
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"kie" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -44917,6 +44747,13 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/maintenance/fore)
+"kXy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool/corner,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"kXE" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -45160,6 +44997,10 @@
/mob/living/carbon/monkey,
/turf/open/floor/grass,
/area/medical/genetics)
+"lfz" = (
+/obj/item/twohanded/required/pool/rubber_ring,
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness)
"lfO" = (
/obj/machinery/atmospherics/pipe/simple/purple/visible{
dir = 4
@@ -46874,19 +46715,6 @@
"mof" = (
/turf/closed/wall/r_wall,
/area/quartermaster/sorting)
-"moI" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"mqp" = (
/obj/machinery/space_heater,
/turf/open/floor/plating,
@@ -49428,11 +49256,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"nMX" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"nOA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -50351,6 +50174,18 @@
},
/turf/open/floor/plating,
/area/science/xenobiology)
+"ooF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"opi" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -52456,20 +52291,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/satellite)
-"pGM" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/landmark/start/assistant,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"pHz" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
@@ -55144,15 +54965,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos_distro)
-"ris" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"riv" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
@@ -55708,6 +55520,14 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"rDf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/pool/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"rDi" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
@@ -56808,15 +56628,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/maintenance/fore)
-"sjh" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"sjo" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -57479,6 +57290,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
+"sHY" = (
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"sIa" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -25
@@ -59134,6 +58949,18 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"tKv" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"tKT" = (
/obj/machinery/atmospherics/pipe/simple/supply/visible{
dir = 8
@@ -59415,15 +59242,6 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"tTv" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"tTI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -61760,6 +61578,29 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
+"vsE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"vsP" = (
/obj/effect/turf_decal/stripes/end,
/turf/open/floor/plating,
@@ -61902,6 +61743,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
+"vwe" = (
+/obj/machinery/pool_filter{
+ pixel_x = -16;
+ pixel_y = -21
+ },
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness)
"vwq" = (
/obj/structure/janitorialcart,
/obj/effect/turf_decal/delivery,
@@ -62623,6 +62471,18 @@
},
/turf/open/floor/plasteel/white,
/area/medical/storage)
+"vVj" = (
+/obj/structure/closet/athletic_mixed,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/item/twohanded/required/pool/pool_noodle,
+/obj/item/twohanded/required/pool/pool_noodle,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"vVN" = (
/obj/structure/window/reinforced{
dir = 8
@@ -63097,6 +62957,13 @@
},
/turf/open/space/basic,
/area/engine/atmos_distro)
+"wiV" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"wjk" = (
/obj/machinery/flasher{
id = "PCell 3";
@@ -63526,6 +63393,18 @@
/obj/structure/ore_box,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"wyi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"wyn" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/machinery/atmospherics/miner/n2o,
@@ -102074,9 +101953,9 @@ xVA
aqc
apv
arl
-aqT
-apf
-avw
+hUH
+cUT
+iSt
rea
rVP
azj
@@ -102331,13 +102210,13 @@ sIp
kJl
arj
asb
-awb
-ath
-asN
-bZi
-asN
-azl
-aAl
+kXy
+aQG
+aQG
+wiV
+aQG
+gSB
+eil
aCr
iSq
ayz
@@ -102587,14 +102466,14 @@ qdv
xls
bDx
arj
-arn
-asN
-atn
-eTs
-moI
-aaE
-asN
-aAk
+vVj
+sHY
+ine
+cQr
+cQr
+cQr
+khY
+vsE
aCr
cIO
aAN
@@ -102844,13 +102723,13 @@ arj
arj
arj
arj
-asr
-asN
-atP
-pGM
-cUT
-axU
-azn
+jpg
+sHY
+dyc
+cQr
+lfz
+cQr
+khY
aAn
aCr
aCh
@@ -103102,12 +102981,12 @@ iwj
uyw
arj
asq
-asN
-aur
-ild
-gOF
-axU
-azm
+sHY
+dyc
+gQE
+cQr
+vwe
+khY
auU
aCr
aCr
@@ -103359,12 +103238,12 @@ cYm
eeI
arj
ast
-asN
-auv
-fkH
-jIM
-axW
-asN
+sHY
+dyc
+cQr
+cQr
+cQr
+khY
jXO
iVG
aCt
@@ -103616,12 +103495,12 @@ nGE
eOZ
arj
vBs
-sjh
-ris
-ris
-eQU
-tTv
-nMX
+jXj
+wyi
+wyi
+ooF
+tKv
+rDf
nWA
arj
alP
@@ -103876,7 +103755,7 @@ mck
eAX
gaI
mhm
-jFA
+hlY
eAX
udq
aAo
diff --git a/_maps/map_files/Yogsmeta/Yogsmeta.dmm b/_maps/map_files/Yogsmeta/Yogsmeta.dmm
index ebf0fdb80e7a..6de4d27c71f2 100644
--- a/_maps/map_files/Yogsmeta/Yogsmeta.dmm
+++ b/_maps/map_files/Yogsmeta/Yogsmeta.dmm
@@ -2695,65 +2695,6 @@
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/fitness/recreation)
-"afu" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/drinks/sillycup{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/drinks/sillycup,
-/obj/item/reagent_containers/food/drinks/sillycup{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/drinks/sillycup{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/drinks/sillycup{
- pixel_x = 5;
- pixel_y = 3
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
-"afw" = (
-/obj/structure/closet/masks,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
-"afx" = (
-/obj/structure/closet/athletic_mixed,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"afz" = (
/obj/structure/closet/emcloset,
/obj/structure/sign/warning/pods{
@@ -3550,29 +3491,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"ahi" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/tile/neutral,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
-"ahj" = (
-/obj/structure/chair,
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
-"ahk" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
-"ahl" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"ahm" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -4354,12 +4272,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"aiR" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"aiT" = (
/obj/machinery/door/airlock/maintenance{
name = "Paramedic Staging Area Maintenance";
@@ -5220,24 +5132,6 @@
},
/turf/open/floor/plasteel,
/area/security/main)
-"akL" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
-"akM" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"akN" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -5345,17 +5239,6 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plasteel,
/area/security/warden)
-"ale" = (
-/obj/structure/table,
-/obj/item/clothing/under/sl_suit{
- desc = "Whoever wears this makes the rules.";
- name = "referee suit"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"alg" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -6327,13 +6210,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/main)
-"anI" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"anJ" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -6494,14 +6370,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"aok" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"aol" = (
/obj/machinery/door/airlock/command/glass{
name = "Gravity Generator Area";
@@ -11171,20 +11039,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"azw" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"azx" = (
/obj/machinery/nuclearbomb/selfdestruct,
/obj/effect/turf_decal/tile/neutral{
@@ -57858,6 +57712,9 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/white,
/area/science/mixing)
+"cBC" = (
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness/recreation)
"cBJ" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
@@ -61843,6 +61700,16 @@
dir = 1
},
/area/science/robotics/lab)
+"cYe" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"cYj" = (
/obj/structure/closet/firecloset,
/obj/effect/spawner/lootdrop/maintenance,
@@ -63763,6 +63630,15 @@
},
/turf/open/floor/carpet,
/area/bridge/showroom/corporate)
+"diE" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"diH" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/structure/sign/poster/contraband/random{
@@ -64195,12 +64071,8 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"dqi" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+"dqo" = (
+/obj/effect/turf_decal/pool{
dir = 8
},
/turf/open/floor/plasteel,
@@ -64379,6 +64251,9 @@
/obj/machinery/space_heater,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"dzB" = (
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness/recreation)
"dzP" = (
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=10-Aft-To-Central";
@@ -64534,13 +64409,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
-"dBY" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"dCb" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/red{
@@ -64578,6 +64446,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
+"dCx" = (
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"dCA" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/neutral{
@@ -65393,6 +65269,10 @@
dir = 1
},
/area/crew_quarters/kitchen)
+"elt" = (
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"elS" = (
/obj/machinery/computer/scan_consolenew{
dir = 4
@@ -65857,6 +65737,13 @@
},
/turf/open/floor/plasteel,
/area/security/checkpoint/engineering)
+"eLI" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"eMO" = (
/obj/effect/landmark/xeno_spawn,
/obj/structure/chair,
@@ -66188,15 +66075,6 @@
dir = 1
},
/area/engine/engineering)
-"feq" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"fey" = (
/obj/effect/turf_decal/loading_area{
dir = 8
@@ -67726,28 +67604,6 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"gIZ" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"gJh" = (
/obj/structure/chair/office/dark,
/obj/structure/cable/yellow{
@@ -67931,25 +67787,6 @@
},
/turf/open/floor/plasteel,
/area/engine/foyer)
-"gRG" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"gSl" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -68517,15 +68354,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"hCv" = (
-/obj/machinery/light_switch{
- pixel_x = -26
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"hDn" = (
/obj/machinery/light{
dir = 1
@@ -68633,15 +68461,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"hHm" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"hHS" = (
/obj/machinery/light/small{
dir = 4
@@ -68676,6 +68495,10 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"hIR" = (
+/obj/machinery/pool_filter,
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness/recreation)
"hKT" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -69679,6 +69502,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"iQE" = (
+/obj/item/twohanded/required/pool/pool_noodle,
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness/recreation)
"iRa" = (
/obj/structure/sign/warning/fire{
pixel_y = -32
@@ -69688,11 +69515,6 @@
},
/turf/open/floor/engine,
/area/science/mixing/chamber)
-"iRE" = (
-/obj/structure/window/reinforced,
-/obj/effect/turf_decal/trimline/blue/line,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"iRO" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -69909,16 +69731,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
-"jdY" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -26
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"jeN" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -69975,6 +69787,15 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/space/basic,
/area/engine/atmos_distro)
+"jjs" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"jjM" = (
/obj/structure/table/glass,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -70250,6 +70071,10 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"jwI" = (
+/obj/structure/pool_ladder,
+/turf/open/indestructible/sound/pool/end,
+/area/crew_quarters/fitness/recreation)
"jwW" = (
/turf/closed/wall/mineral/plastitanium,
/area/crew_quarters/fitness/recreation)
@@ -70888,13 +70713,6 @@
name = "Holodeck Projector Floor"
},
/area/holodeck/rec_center)
-"kbS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"kcd" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/yellow{
@@ -71270,6 +71088,19 @@
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"kud" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"kug" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
@@ -71323,16 +71154,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"kAo" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"kAI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -71661,6 +71482,18 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/port)
+"kPU" = (
+/obj/machinery/light_switch{
+ pixel_x = -26
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"kQm" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer";
@@ -71702,6 +71535,22 @@
/obj/effect/turf_decal/trimline/yellow/filled/line,
/turf/open/floor/plasteel,
/area/engine/foyer)
+"kRk" = (
+/obj/structure/closet/athletic_mixed,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/twohanded/required/pool/rubber_ring,
+/obj/item/twohanded/required/pool/rubber_ring,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness/recreation)
"kRB" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
@@ -71799,6 +71648,15 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"kWp" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/pool/corner,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"kWx" = (
/obj/effect/turf_decal/trimline/blue/filled/corner{
dir = 1
@@ -72005,6 +71863,19 @@
icon_state = "platingdmg2"
},
/area/maintenance/port/fore)
+"lla" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"llj" = (
/obj/structure/toilet{
pixel_y = 13
@@ -72156,6 +72027,15 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"lrZ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"lso" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 8
@@ -72314,6 +72194,18 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"lys" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"lyN" = (
/obj/machinery/button/door{
id = "qm_mine_warehouse";
@@ -72895,6 +72787,10 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"mgw" = (
+/obj/item/twohanded/required/pool/rubber_ring,
+/turf/open/indestructible/sound/pool,
+/area/crew_quarters/fitness/recreation)
"mgP" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -73362,15 +73258,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
-"mJk" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"mKO" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
@@ -73868,28 +73755,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"ntv" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"nue" = (
/obj/structure/chair/office/dark,
/obj/structure/cable/yellow{
@@ -74352,6 +74217,15 @@
/obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"nPC" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"nPJ" = (
/obj/machinery/light/small{
dir = 1
@@ -74535,17 +74409,6 @@
/obj/item/storage/box/fancy/candle_box,
/turf/open/floor/engine/cult,
/area/library)
-"nYd" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- icon_state = "left";
- name = "Fitness Ring"
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"nYJ" = (
/obj/structure/lattice,
/obj/structure/grille/broken,
@@ -74812,6 +74675,19 @@
},
/turf/open/floor/plating,
/area/engine/atmos_distro)
+"oom" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -26
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"opk" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 4
@@ -74907,9 +74783,6 @@
},
/turf/open/floor/plasteel,
/area/medical/genetics)
-"ovH" = (
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"owf" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -75148,6 +75021,18 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"oNk" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"oOU" = (
/obj/structure/sign/warning/vacuum/external{
pixel_x = 32
@@ -75544,6 +75429,15 @@
/obj/machinery/rnd/production/techfab/department/service,
/turf/open/floor/plasteel,
/area/hallway/secondary/service)
+"pjT" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"pkA" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -75562,6 +75456,22 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"plB" = (
+/obj/structure/closet/masks,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/twohanded/required/pool/pool_noodle,
+/obj/item/twohanded/required/pool/pool_noodle,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness/recreation)
"plS" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/techstorage/RnD_secure,
@@ -75741,6 +75651,12 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"pwY" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"pxC" = (
/obj/machinery/shower{
pixel_y = 20
@@ -75843,6 +75759,17 @@
/obj/machinery/ai/data_core/primary,
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/ai_monitored/turret_protected/ai)
+"pBH" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"pBX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -76041,21 +75968,6 @@
},
/turf/open/floor/engine,
/area/engine/atmos_distro)
-"pIU" = (
-/obj/machinery/door/window/westleft{
- name = "Fitness Ring"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"pIW" = (
/obj/structure/window/reinforced{
dir = 1
@@ -76184,16 +76096,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
-"pSt" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"pSG" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{
dir = 8
@@ -76457,6 +76359,15 @@
dir = 1
},
/area/medical/surgery)
+"qcG" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"qdi" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/structure/cable/yellow{
@@ -77488,24 +77399,6 @@
},
/turf/open/floor/plating,
/area/engine/atmos_distro)
-"rfe" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
-"rfZ" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"rgh" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -77942,6 +77835,21 @@
},
/turf/open/floor/plasteel/white,
/area/science/lab)
+"rAR" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/random{
+ pixel_x = -32
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness/recreation)
"rBD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/light/small{
@@ -78061,15 +77969,6 @@
},
/turf/open/floor/plasteel,
/area/engine/foyer)
-"rHB" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"rHS" = (
/obj/machinery/camera{
c_tag = "Brig Physicians Office";
@@ -78348,6 +78247,24 @@
},
/turf/open/floor/plasteel,
/area/engine/storage_shared)
+"shx" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
+"shA" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"siF" = (
/obj/structure/grille,
/turf/open/floor/plating/airless,
@@ -78551,6 +78468,13 @@
/obj/structure/girder/reinforced,
/turf/open/space/basic,
/area/space/nearstation)
+"sxk" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"sxU" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -79454,16 +79378,6 @@
},
/turf/open/floor/plating,
/area/engine/foyer)
-"tmG" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"tnW" = (
/obj/machinery/recharge_station,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -80024,18 +79938,6 @@
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
-"tSM" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"tTl" = (
/obj/machinery/air_sensor{
id_tag = "air_sensor"
@@ -80065,26 +79967,6 @@
},
/turf/open/floor/carpet,
/area/crew_quarters/theatre)
-"tVk" = (
-/obj/structure/window/reinforced,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/red/line{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"tVx" = (
/obj/effect/landmark/start/yogs/psychiatrist,
/obj/structure/chair/wood{
@@ -80411,15 +80293,6 @@
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
-"unl" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"unu" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -80496,6 +80369,11 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard)
+"urU" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"usm" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
dir = 4
@@ -80769,10 +80647,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
-"uIn" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"uIZ" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -81060,11 +80934,6 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel/dark/telecomms,
/area/ai_monitored/turret_protected/ai)
-"uUV" = (
-/obj/structure/window/reinforced,
-/obj/effect/turf_decal/trimline/red/line,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"uUX" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -81316,15 +81185,6 @@
},
/turf/open/floor/engine/cult,
/area/library)
-"vgT" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"vgV" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 9
@@ -81399,12 +81259,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/wood,
/area/library)
-"vhT" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"viD" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -82025,6 +81879,24 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"vLb" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/clothing/under/sl_suit{
+ desc = "Whoever wears this makes the rules.";
+ name = "referee suit"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness/recreation)
"vLK" = (
/obj/item/reagent_containers/food/snacks/grown/wheat,
/obj/item/reagent_containers/food/snacks/grown/watermelon,
@@ -82146,14 +82018,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"vPl" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness/recreation)
"vPs" = (
/obj/effect/landmark/stationroom/maint/threexthree,
/turf/template_noop,
@@ -82311,18 +82175,6 @@
/obj/item/storage/box/syringes,
/turf/open/floor/plasteel,
/area/hydroponics)
-"waq" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"wau" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -83442,6 +83294,14 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"xmU" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"xmY" = (
/obj/effect/turf_decal/stripes/end{
dir = 1
@@ -83471,12 +83331,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"xpE" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness/recreation)
"xqo" = (
/obj/machinery/cryopod,
/obj/machinery/light{
@@ -83733,6 +83587,18 @@
/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos_distro)
+"xCh" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"xDl" = (
/obj/structure/chair{
dir = 8
@@ -83997,6 +83863,14 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos_distro)
+"xWy" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/recreation)
"xXt" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
@@ -118997,7 +118871,7 @@ acP
acP
acP
tDT
-feq
+rAR
amv
acP
alO
@@ -119249,15 +119123,15 @@ tys
hPi
qca
xYj
-akN
-akN
-jdY
-rfe
-ahg
-ahl
-ahl
-hCv
-alQ
+kGC
+diE
+oom
+xCh
+nhy
+qcG
+qcG
+kPU
+vmz
aqc
arB
asT
@@ -119505,16 +119379,16 @@ vsg
jPM
oSR
qca
-afu
-kGC
-nhy
-nhy
-nhy
-nhy
-nhy
-nhy
-nhy
-vmz
+vLb
+akN
+ahg
+ahg
+ahg
+elt
+ahg
+ahg
+ahg
+alQ
aqd
arB
asU
@@ -119764,13 +119638,13 @@ hsn
iKc
odl
lZV
-vPl
-aiR
-ale
-mJk
-azw
-aok
-dqi
+kWp
+shA
+shA
+dCx
+pBH
+pBH
+lla
aoZ
dhs
arB
@@ -120021,13 +119895,13 @@ kay
sGn
hvR
agu
-kbS
-waq
-hHm
-pIU
-hHm
-kAo
-tmG
+xmU
+jwI
+cBC
+cBC
+cBC
+cBC
+kud
api
aqf
arB
@@ -120276,15 +120150,15 @@ vsg
gLv
oSR
qca
-afw
+plB
agu
-ahi
-unl
-uIn
-vgT
-ovH
-iRE
-akL
+pwY
+dzB
+cBC
+cBC
+cBC
+cBC
+oNk
api
aqg
arC
@@ -120533,15 +120407,15 @@ xqo
fWM
doc
qca
-afx
+kRk
agw
-ahj
-ntv
-gRG
-gIZ
-gRG
-tVk
-anI
+urU
+dzB
+cBC
+mgw
+cBC
+cBC
+shx
apA
amb
amL
@@ -120792,13 +120666,13 @@ sGn
sGn
kGo
agx
-ahk
-rfZ
-ovH
-xpE
-vhT
-uUV
-akM
+xWy
+iQE
+cBC
+cBC
+cBC
+cBC
+lys
apB
arp
asW
@@ -121049,13 +120923,13 @@ aaa
acP
acP
agy
-ahl
-tSM
-rHB
-nYd
-rHB
-pSt
-akN
+eLI
+hIR
+cBC
+cBC
+cBC
+cBC
+pjT
ahh
aqj
arB
@@ -121306,13 +121180,13 @@ acP
acP
afz
agz
-dBY
-ahl
-ahl
-ahg
-akN
-akN
-akN
+cYe
+jjs
+jjs
+dqo
+lrZ
+lrZ
+nPC
ahh
aqk
arB
@@ -121822,7 +121696,7 @@ afB
agz
ahn
agz
-aiY
+sxk
aiY
ahh
akj
diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm
index ac32cc9d3b76..1242221ee18d 100644
--- a/_maps/shuttles/emergency_luxury.dmm
+++ b/_maps/shuttles/emergency_luxury.dmm
@@ -26,14 +26,6 @@
},
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
-"cf" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/holofloor/beach/coast_b{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"cv" = (
/obj/docking_port/mobile/emergency{
dwidth = 5;
@@ -146,16 +138,8 @@
},
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
-"hv" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/structure/musician/piano{
- icon_state = "piano"
- },
-/turf/open/floor/mineral/gold{
- dir = 4
- },
+"jr" = (
+/turf/open/indestructible/sound/pool,
/area/shuttle/escape/luxury)
"kk" = (
/obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti{
@@ -194,12 +178,6 @@
/obj/structure/table/wood/fancy/black,
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
-"lG" = (
-/turf/open/floor/holofloor/beach/coast_t{
- dir = 1;
- icon_state = "sandwater_inner"
- },
-/area/shuttle/escape/luxury)
"mc" = (
/obj/item/reagent_containers/food/snacks/notasandwich{
pixel_y = 11
@@ -221,6 +199,23 @@
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape/luxury)
+"ni" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
"oo" = (
/obj/machinery/door/poddoor/shutters{
id = "ohnopoors"
@@ -240,6 +235,17 @@
},
/turf/open/floor/plating/airless,
/area/shuttle/escape/luxury)
+"oD" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/pool/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
"oP" = (
/obj/machinery/vending/wallmed{
pixel_x = -28
@@ -303,11 +309,6 @@
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape/luxury)
-"qw" = (
-/turf/open/floor/holofloor/beach/coast_b{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"rj" = (
/obj/item/reagent_containers/food/snacks/cakeslice/slimecake{
pixel_y = 2
@@ -315,11 +316,6 @@
/obj/structure/table/wood/fancy/black,
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
-"rl" = (
-/turf/open/floor/holofloor/beach/coast_t{
- icon_state = "sandwater_inner"
- },
-/area/shuttle/escape/luxury)
"rw" = (
/obj/structure/sign/poster/official/fruit_bowl{
pixel_y = -32
@@ -360,11 +356,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
-"vg" = (
-/turf/open/floor/holofloor/beach/coast_t{
- icon_state = "sandwater_t"
- },
-/area/shuttle/escape/luxury)
"vh" = (
/obj/machinery/computer/crew,
/turf/open/floor/mineral/diamond,
@@ -384,12 +375,6 @@
/obj/item/broken_bottle,
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
-"vS" = (
-/turf/open/floor/holofloor/beach/coast_b{
- dir = 9;
- icon_state = "sandwater_b"
- },
-/area/shuttle/escape/luxury)
"wa" = (
/obj/structure/chair/comfy/teal{
dir = 1;
@@ -420,6 +405,41 @@
dir = 4
},
/area/shuttle/escape/luxury)
+"wY" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/pool,
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
+"xe" = (
+/obj/structure/pool_ladder,
+/turf/open/indestructible/sound/pool/end,
+/area/shuttle/escape/luxury)
+"yo" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/pool,
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
+"yt" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/structure/musician/piano{
+ icon_state = "piano"
+ },
+/obj/effect/turf_decal/pool{
+ dir = 1
+ },
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
"yR" = (
/obj/item/reagent_containers/food/snacks/carneburrito{
pixel_y = 4
@@ -456,14 +476,6 @@
dir = 4
},
/area/shuttle/escape/luxury)
-"Av" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/turf/open/floor/mineral/gold{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"AJ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/trash/pistachios,
@@ -540,21 +552,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
-"Gz" = (
-/turf/open/floor/holofloor/beach/coast_b{
- dir = 10;
- icon_state = "sandwater_b"
- },
-/area/shuttle/escape/luxury)
-"Hx" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/mineral/gold{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"HK" = (
/obj/item/reagent_containers/food/snacks/honkdae{
pixel_y = 8
@@ -578,6 +575,14 @@
/obj/structure/grille/indestructable,
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
+"Kl" = (
+/obj/effect/turf_decal/pool{
+ dir = 4
+ },
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
"Kn" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -615,6 +620,13 @@
/obj/structure/table/wood/fancy/black,
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
+"Mt" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/pool/corner,
+/turf/open/floor/mineral/gold{
+ dir = 4
+ },
+/area/shuttle/escape/luxury)
"Nz" = (
/obj/machinery/scanner_gate/luxury_shuttle{
layer = 2.6
@@ -658,12 +670,6 @@
/obj/structure/table/wood/fancy/black,
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
-"Pc" = (
-/turf/open/floor/holofloor/beach/coast_t{
- dir = 1;
- icon_state = "sandwater_t"
- },
-/area/shuttle/escape/luxury)
"Pk" = (
/obj/structure/chair/comfy/shuttle,
/obj/machinery/light/small{
@@ -691,20 +697,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/shuttle/escape/luxury)
-"RK" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/structure/chair/comfy/black{
- dir = 8
- },
-/turf/open/floor/mineral/gold{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"RR" = (
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
@@ -831,11 +823,6 @@
/obj/structure/table/wood/fancy/black,
/turf/open/floor/carpet,
/area/shuttle/escape/luxury)
-"Zo" = (
-/turf/open/floor/holofloor/beach/coast_t{
- dir = 4
- },
-/area/shuttle/escape/luxury)
"Zx" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1129,21 +1116,21 @@ Ek
zQ
Xt
zQ
-Xt
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-zQ
-Av
+Mt
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+oD
zQ
zQ
oP
@@ -1156,21 +1143,21 @@ mt
fR
mt
zQ
-Xt
-rl
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-Zo
-lG
-hv
+yo
+xe
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+yt
zQ
zQ
zQ
@@ -1183,21 +1170,21 @@ ZZ
sG
mt
zQ
-Hx
-vg
-vS
-qw
-qw
-qw
-qw
-cf
-qw
-qw
-qw
-qw
-Gz
-Pc
-RK
+wY
+xe
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+jr
+ni
zQ
zQ
pv
diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index 1c275dffcbc7..9d7eb469cad7 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -191,6 +191,7 @@
#define COMPONENT_BLOCK_MAGIC 1
#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //from base of mob/create_mob_hud(): ()
#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" //from base of
+#define COMSIG_MOB_ATTACK_HAND_TURF "mob_attack_hand_turf" //from the base of turf/attack_hand
#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" //from base of /obj/item/attack(): (mob/M, mob/user)
#define COMSIG_MOB_APPLY_DAMAGE "mob_apply_damage" //from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
@@ -240,7 +241,7 @@
#define COMSIG_CARBON_STATUS_STAMCRIT "living_stamcrit" //from base of mob/living/carbon/enter_stamcrit()
#define COMSIG_BODYPART_GAUZED "bodypart_gauzed" // from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze)
#define COMSIG_BODYPART_GAUZE_DESTROYED "bodypart_degauzed" // from [/obj/item/bodypart/proc/seep_gauze] when it runs out of absorption
-
+#define COMSIG_CARBON_SPECIESCHANGE "mob_carbon_specieschange" //from base of mob/living/carbon/set_species(): (new_race)
// /mob/living/simple_animal/hostile signals
#define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget"
#define COMPONENT_HOSTILE_NO_ATTACK 1
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index d95b015d3156..d174f57c35bc 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -72,3 +72,5 @@
#define MOVESPEED_ID_CLOCKCHANT "CLOCKCHANT"
#define MOVESPEED_ID_NECRO_VIRUS_SLOWDOWN "NECRO_VIRUS"
+
+#define MOVESPEED_ID_SWIMMING "SWIMMING_SPEED_MOD"
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index cabbf46d8054..8aadd86a4e91 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -120,6 +120,8 @@ GLOBAL_LIST_EMPTY(station_turfs)
/turf/attack_hand(mob/user)
. = ..()
+ if(SEND_SIGNAL(user, COMSIG_MOB_ATTACK_HAND_TURF, src) & COMPONENT_NO_ATTACK_HAND)
+ . = TRUE
if(.)
return
user.Move_Pulled(src)
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 801eabf75825..95b109cc1439 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -156,6 +156,10 @@ GLOBAL_LIST_EMPTY(mentor_races)
///Bitflag that controls what in game ways can select this species as a spawnable source. Think magic mirror and pride mirror, slime extract, ERT etc, see defines in __DEFINES/mobs.dm, defaults to NONE, so people actually have to think about it
var/changesource_flags = NONE
+
+ //The component to add when swimming
+ var/swimming_component = /datum/component/swimming
+
///////////
// PROCS //
///////////
diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
index 090aba2eb7a7..aedbece3e919 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -25,6 +25,7 @@
inert_mutation = SHOCKTOUCH
hair_color = "fixedmutcolor"
hair_alpha = 140
+ swimming_component = /datum/component/swimming/ethereal
var/current_color
var/EMPeffect = FALSE
var/emageffect = FALSE
diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm
index 5bf71c26daff..3f26a17452ce 100644
--- a/code/modules/mob/living/carbon/human/species_types/felinid.dm
+++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm
@@ -12,6 +12,7 @@
mutantears = /obj/item/organ/ears/cat
mutanttail = /obj/item/organ/tail/cat
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ swimming_component = /datum/component/swimming/felinid
species_language_holder = /datum/language_holder/felinid
/datum/species/human/felinid/qualifies_for_rank(rank, list/features)
diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm
index 53b203f5dfb5..67d85cafbf41 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -22,6 +22,7 @@
// changes, only the Random Golem type can be chosen
limbs_id = "golem"
fixed_mut_color = "aaa"
+ swimming_component = /datum/component/swimming/golem
var/info_text = "As an Iron Golem, you don't have any special traits."
var/random_eligible = TRUE //If false, the golem subtype can't be made through golem mutation toxin
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index a9a1698abf49..fb67c03d956f 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -17,6 +17,7 @@
burnmod = 0.5 // = 1/2x generic burn damage
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
species_language_holder = /datum/language_holder/jelly
+ swimming_component = /datum/component/swimming/dissolve
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
if(regenerate_limbs)
@@ -738,4 +739,4 @@
to_chat(H, span_notice("You connect [target]'s mind to your slime link!"))
else
to_chat(H, span_warning("You can't seem to link [target]'s mind..."))
- to_chat(target, span_warning("The foreign presence leaves your mind."))
\ No newline at end of file
+ to_chat(target, span_warning("The foreign presence leaves your mind."))
diff --git a/code/modules/pool/components/swimming.dm b/code/modules/pool/components/swimming.dm
new file mode 100644
index 000000000000..d08c57582032
--- /dev/null
+++ b/code/modules/pool/components/swimming.dm
@@ -0,0 +1,131 @@
+//Component used to show that a mob is swimming, and force them to swim a lil' bit slower. Components are actually really based!
+
+/datum/component/swimming
+ dupe_mode = COMPONENT_DUPE_UNIQUE
+ var/lengths = 0 //How far have we swum?
+ var/lengths_for_bonus = 25 //If you swim this much, you'll count as having "excercised" and thus gain a buff.
+ var/list/species = list()
+ var/drowning = FALSE
+ var/ticks_drowned = 0
+ var/slowdown = 4
+ var/bob_height_min = 2
+ var/bob_height_max = 5
+ var/bob_tick = 0
+
+/datum/component/swimming/Initialize()
+ . = ..()
+ if(!isliving(parent))
+ message_admins("Swimming component erroneously added to a non-living mob ([parent]).")
+ return INITIALIZE_HINT_QDEL //Only mobs can swim, like Ian...
+ var/mob/M = parent
+ M.visible_message("[parent] starts splashing around in the water!")
+ M.add_movespeed_modifier(MOVESPEED_ID_SWIMMING, update=TRUE, priority=50, multiplicative_slowdown=slowdown, movetypes=GROUND)
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/onMove)
+ RegisterSignal(parent, COMSIG_CARBON_SPECIESCHANGE, .proc/onChangeSpecies)
+ RegisterSignal(parent, COMSIG_MOB_ATTACK_HAND_TURF, .proc/try_leave_pool)
+ START_PROCESSING(SSprocessing, src)
+ enter_pool()
+
+/datum/component/swimming/proc/onMove()
+ lengths ++
+ if(lengths > lengths_for_bonus)
+ var/mob/living/L = parent
+ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise)
+ L.apply_status_effect(STATUS_EFFECT_EXERCISED) //Swimming is really good excercise!
+ lengths = 0
+
+//Damn edge cases
+/datum/component/swimming/proc/onChangeSpecies()
+ var/mob/living/carbon/C = parent
+ var/component_type = /datum/component/swimming
+ if(istype(C) && C?.dna?.species)
+ component_type = C.dna.species.swimming_component
+ var/mob/M = parent
+ RemoveComponent()
+ M.AddComponent(component_type)
+
+/datum/component/swimming/proc/try_leave_pool(datum/source, turf/clicked_turf)
+ var/mob/living/L = parent
+ if(!L.can_interact_with(clicked_turf))
+ return
+ if(is_blocked_turf(clicked_turf))
+ return
+ if(istype(clicked_turf, /turf/open/indestructible/sound/pool))
+ return
+ to_chat(parent, "You start to climb out of the pool...")
+ if(do_after(parent, 1 SECONDS, target=clicked_turf))
+ L.forceMove(clicked_turf)
+ L.visible_message("[parent] climbs out of the pool.")
+ RemoveComponent()
+
+/datum/component/swimming/UnregisterFromParent()
+ exit_pool()
+ var/mob/M = parent
+ if(drowning)
+ stop_drowning(M)
+ if(bob_tick)
+ M.pixel_y = 0
+ M.remove_movespeed_modifier(MOVESPEED_ID_SWIMMING)
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+ UnregisterSignal(parent, COMSIG_CARBON_SPECIESCHANGE)
+ UnregisterSignal(parent, COMSIG_MOB_ATTACK_HAND_TURF)
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/datum/component/swimming/process()
+ var/mob/living/L = parent
+ var/floating = FALSE
+ var/obj/item/twohanded/required/pool/helditem = L.get_active_held_item()
+ if(istype(helditem) && helditem.wielded)
+ bob_tick ++
+ animate(L, time=9.5, pixel_y = (L.pixel_y == bob_height_max) ? bob_height_min : bob_height_max)
+ floating = TRUE
+ else
+ if(bob_tick)
+ animate(L, time=5, pixel_y = 0)
+ bob_tick = 0
+ if(!floating && is_drowning(L))
+ if(!drowning)
+ start_drowning(L)
+ drowning = TRUE
+ drown(L)
+ else if(drowning)
+ stop_drowning(L)
+ drowning = FALSE
+ L.adjust_fire_stacks(-1)
+
+/datum/component/swimming/proc/is_drowning(mob/living/victim)
+ var/obj/item/twohanded/required/pool/helditem = victim.get_active_held_item()
+ if(istype(helditem) && helditem.wielded)
+ return
+ return ((!(victim.mobility_flags & MOBILITY_STAND)) && (!HAS_TRAIT(victim, TRAIT_NOBREATH)))
+
+/datum/component/swimming/proc/drown(mob/living/victim)
+ if(victim.losebreath < 1)
+ victim.losebreath += 1
+ ticks_drowned ++
+ if(prob(20))
+ victim.emote("cough")
+ else if(prob(25))
+ victim.emote("gasp")
+ if(ticks_drowned > 20)
+ if(prob(10))
+ victim.visible_message("[victim] falls unconcious for a moment!")
+ victim.Unconscious(10)
+
+/datum/component/swimming/proc/start_drowning(mob/living/victim)
+ to_chat(victim, "Water fills your lungs and mouth, you can't breathe!")
+ ADD_TRAIT(victim, TRAIT_MUTE, "pool")
+
+/datum/component/swimming/proc/stop_drowning(mob/living/victim)
+ victim.emote("cough")
+ to_chat(victim, "You cough up the last of the water, regaining your ability to speak and breathe clearly!")
+ REMOVE_TRAIT(victim, TRAIT_MUTE, "pool")
+ ticks_drowned = 0
+
+/datum/component/swimming/proc/enter_pool()
+ return
+
+//Essentially the same as remove component, but easier for overiding
+/datum/component/swimming/proc/exit_pool()
+ return
diff --git a/code/modules/pool/components/swimming_dissolve.dm b/code/modules/pool/components/swimming_dissolve.dm
new file mode 100644
index 000000000000..e92f1009afce
--- /dev/null
+++ b/code/modules/pool/components/swimming_dissolve.dm
@@ -0,0 +1,28 @@
+/datum/component/swimming/dissolve
+ var/start_alpha = 0
+
+/datum/component/swimming/dissolve/enter_pool()
+ var/mob/living/L = parent
+ start_alpha = L.alpha
+ to_chat(parent, "You begin disolving into the pool, get out fast!")
+
+/datum/component/swimming/dissolve/process()
+ ..()
+ var/mob/living/L = parent
+ var/mob/living/carbon/human/H = L
+ if(istype(H))
+ if(H.wear_suit && istype(H.wear_suit, /obj/item/clothing))
+ var/obj/item/clothing/CH = H.wear_suit
+ if (CH.clothing_flags & THICKMATERIAL)
+ return
+ L.adjustCloneLoss(1)
+ L.alpha = ((L.health-HEALTH_THRESHOLD_DEAD) / (L.maxHealth - HEALTH_THRESHOLD_DEAD)) * 255
+ if(L.stat == DEAD)
+ L.visible_message("[L] dissolves into the pool!")
+ var/obj/item/organ/brain = L.getorgan(/obj/item/organ/brain)
+ brain.Remove(L) //Maybe making them completely unrecoverable is too far
+ brain.forceMove(get_turf(L))
+ qdel(L)
+
+/datum/component/swimming/dissolve/exit_pool()
+ animate(parent, alpha=start_alpha, time=20)
diff --git a/code/modules/pool/components/swimming_ethereal.dm b/code/modules/pool/components/swimming_ethereal.dm
new file mode 100644
index 000000000000..13f1877e9d3b
--- /dev/null
+++ b/code/modules/pool/components/swimming_ethereal.dm
@@ -0,0 +1,11 @@
+/datum/component/swimming/ethereal/enter_pool()
+ var/mob/living/L = parent
+ L.visible_message("Sparks of energy begin coursing around the pool!")
+
+/datum/component/swimming/ethereal/process()
+ ..()
+ var/mob/living/L = parent
+ if(prob(2) && L.nutrition > NUTRITION_LEVEL_FED)
+ L.adjust_nutrition(-50)
+ tesla_zap(L, 7, 2000, TESLA_MOB_STUN)
+ playsound(L, 'sound/machines/defib_zap.ogg', 50, TRUE)
diff --git a/code/modules/pool/components/swimming_felinid.dm b/code/modules/pool/components/swimming_felinid.dm
new file mode 100644
index 000000000000..b6cde0425452
--- /dev/null
+++ b/code/modules/pool/components/swimming_felinid.dm
@@ -0,0 +1,27 @@
+/datum/component/swimming/felinid/enter_pool()
+ var/mob/living/L = parent
+ L.emote("scream")
+ to_chat(parent, "You get covered in water and start panicking!")
+
+/datum/component/swimming/felinid/process()
+ ..()
+ var/mob/living/L = parent
+ var/obj/item/twohanded/required/pool/helditem = L.get_active_held_item()
+ if(istype(helditem) && helditem.wielded)
+ return
+ switch(rand(1, 100))
+ if(1 to 4)
+ to_chat(parent, "You can't touch the bottom!")
+ L.emote("scream")
+ if(5 to 7)
+ if(L.confused < 5)
+ L.confused += 1
+ if(8 to 12)
+ L.Jitter(10)
+ if(13 to 14)
+ shake_camera(L, 15, 1)
+ L.emote("whimper")
+ L.Paralyze(10)
+ to_chat(parent, "You feel like you are never going to get out...")
+ if(15 to 17)
+ L.emote("cry")
diff --git a/code/modules/pool/components/swimming_golem.dm b/code/modules/pool/components/swimming_golem.dm
new file mode 100644
index 000000000000..669d2aa097ff
--- /dev/null
+++ b/code/modules/pool/components/swimming_golem.dm
@@ -0,0 +1,9 @@
+/datum/component/swimming/golem/enter_pool()
+ var/mob/living/M = parent
+ M.Paralyze(60)
+ M.visible_message("[M] crashed violently into the ground!",
+ "You sink like a rock!")
+ playsound(get_turf(M), 'sound/effects/picaxe1.ogg')
+
+/datum/component/swimming/golem/is_drowning()
+ return FALSE
diff --git a/code/modules/pool/pool.dm b/code/modules/pool/pool.dm
new file mode 100644
index 000000000000..530ee5eac5b2
--- /dev/null
+++ b/code/modules/pool/pool.dm
@@ -0,0 +1,294 @@
+//Simple pool behaviour. Sprites by Cdey!
+
+/**
+How to pool!
+Place pool turfs on the inside of your pool. This is where you swim. Pool end caps to cap it off on the north face
+Place pool border decals around the pool so it doesn't look weird
+Place a pool ladder at the top of the pool so that it leads to a normal tile (or else it'll be hard to get out of the pool.)
+Place a pool filter somewhere in the pool if you want people to be able to modify the pool's settings (Temperature) or dump reagents into the pool (which'll change the pool's colour)
+*/
+
+/obj/effect/overlay/poolwater
+ name = "Pool water"
+ icon = 'icons/obj/pool.dmi'
+ icon_state = "water"
+ anchored = TRUE
+ layer = ABOVE_ALL_MOB_LAYER
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/turf/open/indestructible/sound/pool
+ name = "Swimming pool"
+ desc = "A fun place where you go to swim! Drag and drop yourself onto it to climb in..."
+ icon = 'icons/obj/pool.dmi'
+ icon_state = "pool"
+ sound = 'sound/effects/splash.ogg'
+ var/id = null //Set me if you don't want the pool and the pump to be in the same area, or you have multiple pools per area.
+ var/obj/effect/water_overlay = null
+
+/turf/open/indestructible/sound/pool/end
+ icon_state = "poolwall"
+
+/turf/open/indestructible/sound/pool/Initialize(mapload)
+ . = ..()
+ water_overlay = new /obj/effect/overlay/poolwater(get_turf(src))
+
+/turf/open/indestructible/sound/pool/proc/set_colour(colour)
+ water_overlay.color = colour
+
+/turf/open/indestructible/sound/pool/end/ChangeTurf(path, list/new_baseturfs, flags)
+ if(water_overlay)
+ qdel(water_overlay)
+ . = ..()
+
+/turf/open/CanPass(atom/movable/mover, turf/target)
+ var/datum/component/swimming/S = mover.GetComponent(/datum/component/swimming) //If you're swimming around, you don't really want to stop swimming just like that do you?
+ if(S)
+ return FALSE //If you're swimming, you can't swim into a regular turf, y'dig?
+ . = ..()
+
+/turf/open/indestructible/sound/pool/CanPass(atom/movable/mover, turf/target)
+ if(mover.throwing)
+ return TRUE
+ var/datum/component/swimming/S = mover.GetComponent(/datum/component/swimming) //You can't get in the pool unless you're swimming.
+ return (isliving(mover)) ? S : ..() //So you can do stuff like throw beach balls around the pool!
+
+/turf/open/indestructible/sound/pool/Entered(atom/movable/AM)
+ . = ..()
+ SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, 2)
+ if(isliving(AM))
+ var/datum/component/swimming/S = AM.GetComponent(/datum/component/swimming) //You can't get in the pool unless you're swimming.
+ if(!S)
+ var/mob/living/carbon/C = AM
+ var/component_type = /datum/component/swimming
+ if(istype(C) && C?.dna?.species)
+ component_type = C.dna.species.swimming_component
+ AM.AddComponent(component_type)
+
+/turf/open/indestructible/sound/pool/Exited(atom/movable/Obj, atom/newloc)
+ . = ..()
+ if(!istype(newloc, /turf/open/indestructible/sound/pool))
+ var/datum/component/swimming/S = Obj.GetComponent(/datum/component/swimming) //Handling admin TPs here.
+ S?.RemoveComponent()
+
+/turf/open/MouseDrop_T(atom/dropping, mob/user)
+ if(!isliving(user) || !isliving(dropping)) //No I don't want ghosts to be able to dunk people into the pool.
+ return
+ var/atom/movable/AM = dropping
+ var/datum/component/swimming/S = dropping.GetComponent(/datum/component/swimming)
+ if(S)
+ if(do_after(user, 1 SECONDS, target=src))
+ S.RemoveComponent()
+ visible_message("[dropping] climbs out of the pool.")
+ AM.forceMove(src)
+ else
+ . = ..()
+
+/turf/open/indestructible/sound/pool/MouseDrop_T(atom/dropping, mob/user)
+ if(!isliving(user) || !isliving(dropping)) //No I don't want ghosts to be able to dunk people into the pool.
+ return
+ var/datum/component/swimming/S = dropping.GetComponent(/datum/component/swimming) //If they're already swimming, don't let them start swimming again.
+ if(S)
+ return FALSE
+ . = ..()
+ if(user != dropping)
+ dropping.visible_message("[user] starts to lower [dropping] down into [src].", \
+ "You start to lower [dropping] down into [src].")
+ else
+ to_chat(user, "You start climbing down into [src]...")
+ if(do_after(user, 4 SECONDS, target=src))
+ splash(dropping)
+
+/datum/mood_event/poolparty
+ description = "I love swimming!.\n"
+ mood_change = 2
+ timeout = 2 MINUTES
+
+/datum/mood_event/robotpool
+ description = "I really wasn't built with water resistance in mind...\n"
+ mood_change = -3
+ timeout = 2 MINUTES
+
+/datum/mood_event/poolwet
+ description = "Eugh! my clothes are soaking wet from that swim.\n"
+ mood_change = -4
+ timeout = 4 MINUTES
+
+/turf/open/indestructible/sound/pool/proc/splash(mob/user)
+ user.forceMove(src)
+ playsound(src, 'sound/effects/splosh.ogg', 100, 1) //Credit to hippiestation for this sound file!
+ user.visible_message("SPLASH!")
+ var/zap = 0
+ if(issilicon(user)) //Do not throw brick in a pool. Brick begs.
+ zap = 1 //Sorry borgs! Swimming will come at a cost.
+ if(ishuman(user))
+ var/mob/living/carbon/human/F = user
+ var/datum/species/SS = F.dna.species
+ if(MOB_ROBOTIC in SS.inherent_biotypes || ispreternis(F)) //ZAP goes preternis
+ zap = 2 //You can protect yourself from water damage with thick clothing.
+ if(F.head && istype(F.head, /obj/item/clothing))
+ var/obj/item/clothing/CH = F.head
+ if (CH.clothing_flags & THICKMATERIAL) //thick suits should suffice! But preternis are robots and probably not water-sealed.
+ zap --
+ if(F.wear_suit && istype(F.wear_suit, /obj/item/clothing))
+ var/obj/item/clothing/CS = F.wear_suit
+ if (CS.clothing_flags & THICKMATERIAL)
+ zap --
+ if(zap > 0)
+ user.emp_act(zap)
+ user.emote("scream") //Chad coders use M.say("*scream")
+ do_sparks(zap, TRUE, user)
+ to_chat(user, "WARNING: WATER DAMAGE DETECTED!")
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "robotpool", /datum/mood_event/robotpool)
+ else
+ if(!check_clothes(user))
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "pool", /datum/mood_event/poolparty)
+ return
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "pool", /datum/mood_event/poolwet)
+
+//Largely a copypaste from shower.dm. Checks if the mob was stupid enough to enter a pool fully clothed. We allow masks as to not discriminate against clown and mime players.
+/turf/open/indestructible/sound/pool/proc/check_clothes(mob/living/carbon/human/H)
+ if(!istype(H) || iscatperson(H)) //Don't care about non humans.
+ return FALSE
+ if(H.wear_suit && (H.wear_suit.clothing_flags & SHOWEROKAY))
+ // Do not check underclothing if the over-suit is suitable.
+ // This stops people feeling dumb if they're showering
+ // with a radiation suit on.
+ return FALSE
+
+ . = FALSE
+ if(!(H.wear_suit?.clothing_flags & SHOWEROKAY))
+ return TRUE
+ if(!(H.w_uniform?.clothing_flags & SHOWEROKAY))
+ return TRUE
+ if(!(H.head?.clothing_flags & SHOWEROKAY))
+ return TRUE
+
+/obj/effect/turf_decal/pool
+ name = "Pool siding"
+ icon = 'icons/obj/pool.dmi'
+ icon_state = "poolborder"
+
+/obj/effect/turf_decal/pool/corner
+ icon_state = "bordercorner"
+
+/obj/effect/turf_decal/pool/innercorner
+ icon_state = "innercorner"
+
+//Pool machinery
+
+/obj/structure/pool_ladder
+ name = "Pool ladder"
+ desc = "Click this to get out of a pool quickly."
+ icon = 'icons/obj/pool.dmi'
+ icon_state = "ladder"
+ pixel_y = 12
+
+GLOBAL_LIST_EMPTY(pool_filters)
+
+/obj/machinery/pool_filter
+ name = "Pool filter"
+ desc = "A device which can help you regulate conditions in a pool. Use a wrench to change its operating temperature, or hit it with a reagent container to load in new liquid to add to the pool."
+ icon = 'icons/obj/pool.dmi'
+ icon_state = "poolfilter"
+ pixel_y = 12 //So it sits above the water
+ idle_power_usage = IDLE_POWER_USE
+ var/id = null //change this if youre an annoying mapper who wants multiple pools per area.
+ var/list/pool = list()
+ var/desired_temperature = 300 //Room temperature
+ var/current_temperature = 300 //current temp
+ var/preset_reagent_type = null //Set this if you want your pump to start filled with a given reagent. SKEWIUM POOL SKEWIUM POOL!
+
+/obj/machinery/pool_filter/examine(mob/user)
+ . = ..()
+ . += "The thermostat on it reads [current_temperature]."
+
+/obj/machinery/pool_filter/Initialize()
+ . = ..()
+ create_reagents(100, OPENCONTAINER) //If you're a terrible terrible clown and want to dump reagents into the pool.
+ if(preset_reagent_type)
+ reagents.add_reagent(preset_reagent_type, 100)
+ var/area/AR = get_area(src)
+ for(var/turf/open/indestructible/sound/pool/water in get_area_turfs(AR))
+ if(id && water.id != id)
+ continue //Not the same id. Fine. Ignore that one then!
+ pool += water
+ GLOB.pool_filters += src
+
+//Brick can set the pool to low temperatures remotely. This will probably be hell on malf!
+
+/obj/machinery/pool_filter/attack_robot(mob/user)
+ . = ..()
+ wrench_act(user, null)
+
+/obj/machinery/pool_filter/attack_ai(mob/user)
+ . = ..()
+ wrench_act(user, null)
+
+/obj/machinery/pool_filter/wrench_act(mob/living/user, obj/item/I)
+ . = ..()
+ var/newTemp = input(user, "Set a new temperature for [src] (Kelvin).", "[src]", null) as num
+ if(!newTemp)
+ return
+ newTemp = clamp(newTemp, T0C, 320)
+ desired_temperature = newTemp
+ return FALSE
+
+/obj/machinery/pool_filter/process()
+ if(!LAZYLEN(pool) || !is_operational())
+ return //No use having one of these processing for no reason is there?
+ use_power(idle_power_usage)
+ var/delta = (current_temperature > desired_temperature) ? -0.5 : 0.5
+ current_temperature += delta
+ current_temperature = clamp(current_temperature, T0C, desired_temperature)
+ var/trans_amount = reagents.total_volume / pool.len //Split up the reagents equally.
+ for(var/turf/open/indestructible/sound/pool/water as() in pool)
+ if(reagents.reagent_list.len)
+ water.set_colour(mix_color_from_reagents(reagents.reagent_list))
+ else
+ water.set_colour("#009999")
+ if(water.contents.len && reagents.total_volume > 0)
+ for(var/mob/living/M in water)
+ if(!istype(M))
+ continue
+ var/datum/reagents/splash_holder = new/datum/reagents(trans_amount) //Take some of our reagents out, react them with the pool denizens.
+ splash_holder.my_atom = water
+ reagents.trans_to(splash_holder, trans_amount, transfered_by = src)
+ splash_holder.chem_temp = current_temperature
+ if(prob(80))
+ splash_holder.reaction(M, TOUCH)
+ else //Sometimes the water penetrates a lil deeper than just a splosh.
+ splash_holder.reaction(M, INGEST)
+ splash_holder.trans_to(M, trans_amount, transfered_by = src) //Actually put reagents in the mob
+ qdel(splash_holder)
+ var/mob/living/carbon/C = M
+ if(current_temperature <= 283.5) //Colder than 10 degrees is going to make you very cold
+ if(iscarbon(M))
+ C.adjust_bodytemperature(-80, 80)
+ to_chat(M, "The water is freezing cold!")
+ else if(current_temperature >= 308.5) //Hotter than 35 celsius is going to make you burn up
+ if(iscarbon(M))
+ C.adjust_bodytemperature(35, 0, 500)
+ M.adjustFireLoss(5)
+ to_chat(M, "The water is searing hot!")
+
+/obj/structure/pool_ladder/attack_hand(mob/user)
+ var/datum/component/swimming/S = user.GetComponent(/datum/component/swimming)
+ if(S)
+ to_chat(user, "You start to climb out of the pool...")
+ if(do_after(user, 1 SECONDS, target=src))
+ S.RemoveComponent()
+ visible_message("[user] climbs out of the pool.")
+ user.forceMove(get_turf(get_step(src, NORTH))) //Ladders shouldn't adjoin another pool section. Ever.
+ else
+ to_chat(user, "You start to climb into the pool...")
+ var/turf/T = get_turf(src)
+ if(do_after(user, 1 SECONDS, target=src))
+ if(!istype(T, /turf/open/indestructible/sound/pool)) //Ugh, fine. Whatever.
+ user.forceMove(get_turf(src))
+ else
+ var/turf/open/indestructible/sound/pool/P = T
+ P.splash(user)
+
+/obj/structure/pool_ladder/attack_robot(mob/user)
+ . = ..()
+ attack_hand(user)
diff --git a/code/modules/pool/pool_items.dm b/code/modules/pool/pool_items.dm
new file mode 100644
index 000000000000..b54f5072cccd
--- /dev/null
+++ b/code/modules/pool/pool_items.dm
@@ -0,0 +1,78 @@
+/obj/item/twohanded/required/pool
+ icon = 'icons/obj/pool.dmi'
+ lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ force = 0
+ damtype = STAMINA
+ force_wielded = 5
+ wieldsound = 'sound/weapons/tap.ogg'
+ unwieldsound = 'sound/weapons/tap.ogg'
+ w_class = WEIGHT_CLASS_BULKY
+ attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
+
+/obj/item/twohanded/required/pool/Initialize()
+ . = ..()
+ //Pick a random color
+ color = pick(COLOR_YELLOW, COLOR_LIME, COLOR_RED, COLOR_BLUE_LIGHT, COLOR_CYAN, COLOR_MAGENTA)
+
+/obj/item/twohanded/required/pool/rubber_ring
+ name = "inflatable"
+ desc = "An inflatable ring used for keeping people afloat. Throw at drowning people to save them."
+ icon_state = "rubber_ring"
+
+/obj/item/twohanded/required/pool/rubber_ring/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ . = ..()
+ if(ishuman(hit_atom))
+ var/mob/living/carbon/human/H = hit_atom
+ //Make sure they are in a pool
+ if(!istype(get_turf(H), /turf/open/indestructible/sound/pool))
+ return
+ //Make sure they are alive and can pick it up
+ if(H.stat)
+ return
+ //Try shove it in their inventory
+ if(H.put_in_active_hand(src))
+ visible_message("The [src] lands over [H]'s head!")
+
+/obj/item/twohanded/required/pool/pool_noodle
+ icon_state = "pool_noodle"
+ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
+ name = "pool noodle"
+ desc = "A long noodle made of foam. Helping those with fears of swimming swim since the 1980s."
+ var/suiciding = FALSE
+
+/obj/item/twohanded/required/pool/pool_noodle/attack(mob/target, mob/living/carbon/human/user)
+ . = ..()
+ if(wielded && prob(50))
+ INVOKE_ASYNC(src, .proc/jedi_spin, user)
+
+/obj/item/twohanded/required/pool/pool_noodle/proc/jedi_spin(mob/living/user) //rip complex code, but this fucked up blocking
+ user.emote("flip")
+
+/obj/item/twohanded/required/pool/pool_noodle/suicide_act(mob/user)
+ if(suiciding)
+ return SHAME
+ suiciding = TRUE
+ user.visible_message("[user] begins kicking their legs to stay afloat!")
+ var/mob/living/L = user
+ if(istype(L))
+ L.Immobilize(63)
+ animate(user, time=20, pixel_y=18)
+ sleep(20)
+ animate(user, time=10, pixel_y=12)
+ sleep(10)
+ user.visible_message("[user] keeps swimming higher and higher!")
+ animate(user, time=10, pixel_y=22)
+ sleep(10)
+ animate(user, time=10, pixel_y=16)
+ sleep(10)
+ animate(user, time=15, pixel_y=32)
+ sleep(15)
+ user.visible_message("[user] suddenly realised they aren't in the water and cannot float.")
+ animate(user, time=1, pixel_y=0)
+ sleep(1)
+ user.ghostize()
+ user.gib()
+ suiciding = FALSE
+ return MANUAL_SUICIDE
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index 6add2927d80d..d2ccb674dfb3 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index 34bae4e97300..7f8dcfa9debd 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi
index 50ae2fb1639d..551e45cd5428 100644
Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi
index 24f4e1ab8210..21976c191fde 100644
Binary files a/icons/mob/inhands/weapons/melee_righthand.dmi and b/icons/mob/inhands/weapons/melee_righthand.dmi differ
diff --git a/icons/obj/pool.dmi b/icons/obj/pool.dmi
new file mode 100644
index 000000000000..54135ea36349
Binary files /dev/null and b/icons/obj/pool.dmi differ
diff --git a/sound/effects/splash.ogg b/sound/effects/splash.ogg
new file mode 100644
index 000000000000..39b6e69c5d5b
Binary files /dev/null and b/sound/effects/splash.ogg differ
diff --git a/sound/effects/splosh.ogg b/sound/effects/splosh.ogg
new file mode 100644
index 000000000000..ebb9c090f184
Binary files /dev/null and b/sound/effects/splosh.ogg differ
diff --git a/yogstation.dme b/yogstation.dme
index 7a8595e5b009..bc527422ad36 100644
--- a/yogstation.dme
+++ b/yogstation.dme
@@ -2631,6 +2631,13 @@
#include "code\modules\photography\photos\photo.dm"
#include "code\modules\plumbing\ducts.dm"
#include "code\modules\plumbing\plumbers\pumps.dm"
+#include "code\modules\pool\pool.dm"
+#include "code\modules\pool\pool_items.dm"
+#include "code\modules\pool\components\swimming.dm"
+#include "code\modules\pool\components\swimming_dissolve.dm"
+#include "code\modules\pool\components\swimming_ethereal.dm"
+#include "code\modules\pool\components\swimming_felinid.dm"
+#include "code\modules\pool\components\swimming_golem.dm"
#include "code\modules\power\apc.dm"
#include "code\modules\power\cable.dm"
#include "code\modules\power\cell.dm"