diff --git a/_maps/map_files/YogStation/YogStation.dmm b/_maps/map_files/YogStation/YogStation.dmm
index fba2136161e4..06a0541feec8 100644
--- a/_maps/map_files/YogStation/YogStation.dmm
+++ b/_maps/map_files/YogStation/YogStation.dmm
@@ -17,6 +17,24 @@
/obj/effect/landmark/stationroom/box/foreportmaint1,
/turf/template_noop,
/area/template_noop)
+"aad" = (
+/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/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 10
+ },
+/turf/open/chasm/ballpit/sec1prt1,
+/area/crew_quarters/fitness)
"aae" = (
/obj/effect/landmark/carpspawn,
/turf/open/space,
@@ -231,30 +249,32 @@
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"aaC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1,
/obj/structure/window/reinforced{
- dir = 8
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/chasm/ballpit/sec1prt2,
/area/crew_quarters/fitness)
"aaD" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 5
- },
/obj/structure/window/reinforced{
- dir = 8
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/turf/open/chasm/ballpit/sec1prt3,
/area/crew_quarters/fitness)
"aaE" = (
-/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{
+/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced{
- dir = 8
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/chasm/ballpit/sec1prt4,
/area/crew_quarters/fitness)
"aaF" = (
/obj/machinery/atmospherics/components/unary/tank/air{
@@ -1476,6 +1496,13 @@
/obj/structure/table/reinforced,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
+"acU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/chasm/ballpit/sec2prt1,
+/area/crew_quarters/fitness)
"acV" = (
/obj/structure/cable{
icon_state = "0-2"
@@ -1712,6 +1739,19 @@
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
+"adr" = (
+/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/chasm/ballpit/sec2prt2,
+/area/crew_quarters/fitness)
"ads" = (
/obj/structure/cable{
icon_state = "0-2"
@@ -2349,6 +2389,22 @@
/obj/item/pen,
/turf/open/floor/plasteel,
/area/security/main)
+"aeC" = (
+/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/chasm/ballpit/sec2prt3,
+/area/crew_quarters/fitness)
"aeD" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -2522,6 +2578,15 @@
},
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
+"aeR" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/chasm/ballpit/sec2prt4,
+/area/crew_quarters/fitness)
"aeS" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{
dir = 6
@@ -2742,6 +2807,45 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"afl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/chasm/ballpit/sec3prt1,
+/area/crew_quarters/fitness)
+"afm" = (
+/obj/effect/landmark/event_spawn,
+/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 10
+ },
+/turf/open/chasm/ballpit/sec3prt2,
+/area/crew_quarters/fitness)
+"afn" = (
+/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/chasm/ballpit/sec3prt3,
+/area/crew_quarters/fitness)
"afo" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod Three"
@@ -2889,6 +2993,13 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"afE" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/chasm/ballpit/sec3prt4,
+/area/crew_quarters/fitness)
"afF" = (
/obj/structure/table,
/obj/item/assembly/signaler,
@@ -3088,6 +3199,16 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"agb" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/chasm/ballpit/sec4prt1,
+/area/crew_quarters/fitness)
"agc" = (
/obj/structure/closet/emcloset,
/obj/machinery/light/small{
@@ -3377,6 +3498,11 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plasteel,
/area/security/brig)
+"agG" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1,
+/turf/open/chasm/ballpit/sec4prt2,
+/area/crew_quarters/fitness)
"agH" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
dir = 5
@@ -3605,6 +3731,13 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"ahi" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 8
+ },
+/turf/open/chasm/ballpit/sec4prt3,
+/area/crew_quarters/fitness)
"ahj" = (
/obj/machinery/door/window/eastright{
base_state = "left";
@@ -3982,6 +4115,21 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"ahN" = (
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ icon_state = "left";
+ name = "Fitness Ring"
+ },
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 8
+ },
+/turf/open/chasm/ballpit/sec4prt4,
+/area/crew_quarters/fitness)
"ahO" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -4330,6 +4478,19 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"aiv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/flora/tree/jungle{
+ desc = "*sips monster drink* yep dont make stations like they used too.";
+ name = "Oak Tree"
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
"aiw" = (
/obj/machinery/door/window/westleft{
base_state = "right";
@@ -5132,6 +5293,12 @@
/obj/effect/spawner/structure/window/reinforced/shutter,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"ajW" = (
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf{
+ name = "Simon"
+ },
+/turf/open/floor/wood,
+/area/vacant_room)
"ajX" = (
/obj/structure/window/reinforced{
dir = 8
@@ -5439,6 +5606,12 @@
},
/turf/open/floor/plasteel,
/area/security/courtroom)
+"akB" = (
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion{
+ name = "Lewis"
+ },
+/turf/open/floor/wood,
+/area/vacant_room)
"akC" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -5763,6 +5936,13 @@
/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solar/starboard/fore)
+"alh" = (
+/obj/structure/bed/dogbed/ian,
+/mob/living/simple_animal/pet/eggdog{
+ name = "Better Ian"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
"ali" = (
/obj/effect/spawner/structure/window/reinforced/shutter,
/turf/open/floor/plating,
@@ -5798,12 +5978,23 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
+"aln" = (
+/mob/living/simple_animal/bot/honkbot,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"alo" = (
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/space/basic,
/area/space)
+"alp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/mob/living/simple_animal/bot/honkbot,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"alq" = (
/turf/open/floor/plasteel,
/area/security/processing)
@@ -9181,24 +9372,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/layer3{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"ato" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/chair{
@@ -9439,15 +9612,6 @@
dir = 4
},
/area/medical/sleeper)
-"atP" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"atQ" = (
/obj/machinery/door/airlock{
id_tag = "Dorm5";
@@ -9482,15 +9646,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"atV" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"atW" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
@@ -9662,15 +9817,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/layer3{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"aus" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -9692,22 +9838,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
-"aut" = (
-/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"auu" = (
/obj/structure/chair{
dir = 8
@@ -9717,16 +9847,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/layer3,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"auw" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{
dir = 8
@@ -10171,19 +10291,6 @@
"avy" = (
/turf/closed/wall/r_wall,
/area/engine/atmos_distro)
-"avz" = (
-/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)
"avA" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -10688,23 +10795,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/security/prison)
-"awz" = (
-/obj/effect/landmark/event_spawn,
-/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/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"awA" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -11279,13 +11369,6 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"axI" = (
-/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"axJ" = (
/obj/machinery/atmospherics/pipe/layer_manifold{
level = 2
@@ -11387,11 +11470,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"axU" = (
-/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"axV" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -11400,21 +11478,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"axW" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- icon_state = "left";
- name = "Fitness Ring"
- },
-/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"axX" = (
/obj/machinery/light/small{
dir = 8
@@ -16064,15 +16127,6 @@
/obj/structure/closet/secure_closet/contraband/armory,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
-"aHw" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/storage/primary)
"aHx" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -31860,13 +31914,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
-"bnQ" = (
-/obj/structure/bed/dogbed/ian,
-/mob/living/simple_animal/pet/dog/corgi/Ian{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
"bnR" = (
/obj/machinery/computer/security/telescreen/vault{
pixel_y = 30
@@ -57459,13 +57506,6 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"sEf" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"sEo" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/reinforced,
@@ -74838,7 +74878,7 @@ aPx
dpO
ayl
czK
-aUO
+ajW
aUy
aWm
bcR
@@ -75097,7 +75137,7 @@ ayl
czK
aUN
aUQ
-aUO
+akB
bcS
pPf
czK
@@ -79967,7 +80007,7 @@ aBR
aBQ
aDn
aDo
-aHw
+aiv
aMA
aIZ
aBQ
@@ -81513,9 +81553,9 @@ aIs
uiz
aTL
aSs
-aLE
-aLE
-aOl
+aln
+aln
+alp
aPG
aPG
aPG
@@ -81770,9 +81810,9 @@ aJY
aKq
jbI
aSs
-aLE
+aln
bDe
-aOl
+alp
aPF
aQY
aSk
@@ -82027,9 +82067,9 @@ aGb
tCH
tPm
aSs
-aLE
-aLE
-aOl
+aln
+aln
+alp
aPH
aRa
aRa
@@ -88473,7 +88513,7 @@ bjE
bbX
bbX
bmo
-bnQ
+alh
bpb
bqz
blt
@@ -96148,10 +96188,10 @@ aja
arj
arn
asN
-atn
-aaC
-aaD
-aaE
+aad
+acU
+afl
+agb
azk
aAk
arj
@@ -96405,10 +96445,10 @@ ahn
arj
asr
asN
-atP
-avz
-awz
-axU
+aaC
+adr
+afm
+agG
azn
aAn
arj
@@ -96662,10 +96702,10 @@ aqp
arj
asq
asN
-aur
-aut
-avz
-axI
+aaD
+aeC
+afn
+ahi
azm
auU
arj
@@ -96919,10 +96959,10 @@ aqq
arj
ast
asN
-auv
-atV
-sEf
-axW
+aaE
+aeR
+afE
+ahN
azs
aAp
aBC
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_box.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_box.dmm
index 15b85f45bc12..70cb34ca952e 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_box.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_box.dmm
@@ -394,7 +394,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"aY" = (
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_casino.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
index 521b00323ef0..676286a16367 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_casino.dmm
@@ -389,7 +389,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel{
icon_state = "showroomfloor"
},
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_cheese.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_cheese.dmm
index e67062a6c297..4200ae81e532 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_cheese.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_cheese.dmm
@@ -449,7 +449,7 @@
icon_state = "vent_map_on-1";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"bg" = (
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
index a225db348fb6..42011f2dabcc 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_conveyor.dmm
@@ -373,7 +373,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel{
icon_state = "showroomfloor"
},
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_diner.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
index c665d3bd7e9b..db505af90a3a 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_diner.dmm
@@ -388,7 +388,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel{
icon_state = "showroomfloor"
},
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_disco.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
index 6a2f0c9de2b5..a92559ab8334 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_disco.dmm
@@ -395,7 +395,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel{
icon_state = "showroomfloor"
},
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_irish.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
index 9649c56680f0..d56961a59d86 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_irish.dmm
@@ -534,7 +534,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"bh" = (
@@ -1762,12 +1762,12 @@
/area/crew_quarters/bar)
"cZ" = (
/obj/structure/table/reinforced,
-/obj/item/storage/fancy/donut_box,
/obj/machinery/door/firedoor,
/obj/machinery/door/poddoor/shutters/preopen{
id = "kitchen";
name = "kitchen shutters"
},
+/obj/item/storage/box/fancy/donut_box,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"da" = (
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_purple.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
index 16e2a3db07a0..ec6d0e1e4ba9 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_purple.dmm
@@ -545,7 +545,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel{
icon_state = "showroomfloor"
},
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
index 40c0b1210e01..225fdfb0b356 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_spacious.dmm
@@ -292,7 +292,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"aM" = (
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_trek.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
index 17ca6ce293fb..7a531f31f3ca 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/bar_trek.dmm
@@ -498,7 +498,7 @@
icon_state = "scrub_map_on-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/mob/kitchen_animal,
+/mob/living/simple_animal/hostile/retaliate/goat/king,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"aX" = (
diff --git a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/engine_singulo_tesla.dmm b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/engine_singulo_tesla.dmm
index 63f46856f6a2..addbabd15949 100644
--- a/_maps/yogstation/RandomRuins/StationRuins/BoxStation/engine_singulo_tesla.dmm
+++ b/_maps/yogstation/RandomRuins/StationRuins/BoxStation/engine_singulo_tesla.dmm
@@ -59,6 +59,10 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
+"aj" = (
+/obj/machinery/power/hugbox_engine,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"ak" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -660,10 +664,6 @@
/obj/machinery/the_singularitygen/tesla,
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"bT" = (
-/obj/machinery/the_singularitygen,
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
"bU" = (
/obj/machinery/power/grounding_rod,
/obj/machinery/light{
@@ -1542,7 +1542,7 @@ aa
aa
bN
aR
-aR
+aj
aR
aa
aa
@@ -1570,7 +1570,7 @@ aT
aQ
aQ
aR
-bT
+aR
aR
aa
aa
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index e95da9d72d59..458a56441f6a 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -18,6 +18,7 @@ GLOBAL_LIST_EMPTY(drones_list)
GLOBAL_LIST_EMPTY(dead_mob_list) //all dead mobs, including clientless. Excludes /mob/dead/new_player
GLOBAL_LIST_EMPTY(joined_player_list) //all clients that have joined the game at round-start or as a latejoin.
GLOBAL_LIST_EMPTY(silicon_mobs) //all silicon mobs
+GLOBAL_LIST_EMPTY(crew_mobs) //all crew member mobs
GLOBAL_LIST_EMPTY(mob_living_list) //all instances of /mob/living and subtypes
GLOBAL_LIST_EMPTY(carbon_list) //all instances of /mob/living/carbon and subtypes, notably does not contain brains or simple animals
GLOBAL_LIST_EMPTY(ai_list)
@@ -68,7 +69,7 @@ GLOBAL_LIST_EMPTY(accents_name2regexes) // Holds some complex data regarding acc
.[E.key] = list(E)
else
.[E.key] += E
-
+
if(!.[E.key_third_person])
.[E.key_third_person] = list(E)
else
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index e8dfd11cdd5c..898f94093285 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -514,6 +514,11 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary."
icon_state = "locked"
+/obj/screen/alert/crewlocked
+ name = "Locked Down"
+ desc = "Your muscles are tight and unresponsive, and you're unable to move at all. Perhaps you can get someone to release you at the Crew Control Console in the medical wing?"
+ icon_state = "paralysis"
+
/obj/screen/alert/newlaw
name = "Law Update"
desc = "Laws have potentially been uploaded to or removed from this unit. Please be aware of any changes \
diff --git a/code/game/machinery/computer/crew_control.dm b/code/game/machinery/computer/crew_control.dm
new file mode 100644
index 000000000000..91aad5bb77a7
--- /dev/null
+++ b/code/game/machinery/computer/crew_control.dm
@@ -0,0 +1,61 @@
+/obj/machinery/computer/crewcontrol
+ name = "crew control console"
+ desc = "Used to remotely lockdown or detonate crew members."
+ icon_screen = "robot"
+ icon_keyboard = "rd_key"
+ req_access = list(ACCESS_CMO)
+ circuit = /obj/item/circuitboard/computer/crewcontrol
+ light_color = LIGHT_COLOR_BLUE
+
+/obj/machinery/computer/crewcontrol/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
+ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
+ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "crew_control_console", name, 500, 460, master_ui, state)
+ ui.open()
+
+/obj/machinery/computer/crewcontrol/ui_data(mob/user)
+ var/list/data = list()
+
+ data["can_hack"] = FALSE
+
+ data["crew"] = list()
+ for(var/mob/living/carbon/human/H in GLOB.crew_mobs)
+ if(z != (get_turf(H)).z)
+ continue
+ if(QDELETED(H)) //If we somehow missed removing a human that got deleted
+ GLOB.crew_mobs -= H
+ continue
+
+ var/list/crew_data = list(
+ name = H.name,
+ locked_down = H.lockdown,
+ status = H.stat,
+ ref = REF(H)
+ )
+ data["crew"] += list(crew_data)
+ return data
+
+/obj/machinery/computer/crewcontrol/ui_act(action, params)
+ if(..())
+ return
+
+ switch(action)
+ if("killcrew")
+ if(allowed(usr))
+ var/mob/living/carbon/human/H = locate(params["ref"]) in GLOB.crew_mobs
+ var/turf/T = get_turf(H)
+ message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(H, H.client)] at [ADMIN_VERBOSEJMP(T)]!")
+ log_game("\[key_name(usr)] detonated [key_name(H)]!")
+ H.gib(FALSE,TRUE,TRUE)
+ else
+ to_chat(usr, "Access Denied.")
+ if("stopcrew")
+ if(allowed(usr))
+ var/mob/living/carbon/human/H = locate(params["ref"]) in GLOB.crew_mobs
+ H.SetLockdown(!H.lockdown)
+ message_admins("[ADMIN_LOOKUPFLW(usr)] [H.lockdown ? "locked down" : "released"] [ADMIN_LOOKUPFLW(H)]!")
+ log_game("[key_name(usr)] [H.lockdown ? "locked down" : "released"] [key_name(H)]!")
+ to_chat(H, "[!H.lockdown ? "You feel your muscles relax!" : "Your muscles tighten up!"]")
+ else
+ to_chat(usr, "Access Denied.")
\ No newline at end of file
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index 4d9d3f1b7165..dc9052c7718c 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -482,3 +482,8 @@
name = "Mining Shuttle (Computer Board)"
icon_state = "supply"
build_path = /obj/machinery/computer/shuttle/mining
+
+/obj/item/circuitboard/computer/crewcontrol
+ name = "Crew Control (Computer Board)"
+ icon_state = "science"
+ build_path = /obj/machinery/computer/crewcontrol
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 03e9bd61ada9..248eb8e7858e 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -1,6 +1,6 @@
/obj/item/melee/baton
- name = "stun baton"
- desc = "A stun baton for incapacitating people with."
+ name = "arrest baton"
+ desc = "An arrest baton for arresting people with."
icon_state = "stunbaton"
item_state = "baton"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
@@ -111,12 +111,27 @@
update_icon()
add_fingerprint(user)
+/obj/item/melee/baton/proc/move_to_jail(mob/living/L, user)
+ //pick randomly from a list of prison turfs to teleport the RDMer to
+ var/list/validturfs = list() //Find all open prison turfs so we can pick from them later
+ for(var/area/security/prison/P in SSmapping.areas_in_z["[SSmapping.station_start]"])
+ for(var/turf/open/floor/F in P.contents)
+ validturfs += F
+ if(LAZYLEN(validturfs))
+ var/turf/newturf = pick(validturfs)
+ L.loc = newturf
+ priority_announce("[L] has been arrested for 300 seconds")
+ to_chat(L,"You have been arrested for 300 seconds")
+ if(L != user)
+ to_chat(user,"You have arrested [L] for 300 seconds")
+
/obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user)
if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \
"You accidentally hit yourself with [src]!")
user.Paralyze(stunforce*3)
deductcharge(hitcost)
+ move_to_jail(user,user)
return
//yogs edit begin ---------------------------------
if(status && ishuman(M))
@@ -164,6 +179,7 @@
if(!deductcharge(hitcost))
return 0
+ move_to_jail(L, user)
L.Paralyze(stunforce)
L.apply_effect(EFFECT_STUTTER, stunforce)
SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK)
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index 58fa42a708b6..4b342cfc515a 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -174,6 +174,14 @@
if(P.client)
P.client.playtitlemusic()
+ lobby_music = list(
+ "https://www.youtube.com/watch?v=qOVLUiha1B8", //yogs meme songs
+ "https://www.youtube.com/watch?v=ytWz0qVvBZ0", // yogs meme songs
+ "https://www.youtube.com/watch?v=rbBl5Jqs7ls", //yogs meme
+ "https://www.youtube.com/watch?v=36VQq9bYXEs", //wait we are yogs right
+ "https://www.youtube.com/watch?v=PWZylTw6RGY" //embrace the memes
+ )
+
/datum/holiday/spess
name = "Cosmonautics Day"
begin_day = 12
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index df755bd58d57..b8392fcae697 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -402,7 +402,7 @@
if(GLOB.highlander)
to_chat(humanc, "THERE CAN BE ONLY ONE!!!")
humanc.make_scottish()
-
+
if(GLOB.curse_of_madness_triggered)
give_madness(humanc, GLOB.curse_of_madness_triggered)
@@ -512,6 +512,7 @@
new_character = .
if(transfer_after)
transfer_character()
+ GLOB.crew_mobs += .
/mob/dead/new_player/proc/transfer_character()
. = new_character
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index b90c029240cc..44bb35026946 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1,3 +1,6 @@
+/mob/living/carbon/human
+ var/lockdown = 0
+
/mob/living/carbon/human
name = "Unknown"
real_name = "Unknown"
@@ -41,6 +44,7 @@
/mob/living/carbon/human/Destroy()
QDEL_NULL(physiology)
+ GLOB.crew_mobs -= src
return ..()
@@ -896,6 +900,13 @@
return FALSE
return ..()
+/mob/living/carbon/human/proc/SetLockdown(state = 1)
+ if(state)
+ throw_alert("locked", /obj/screen/alert/crewlocked)
+ else
+ clear_alert("locked")
+ lockdown = state
+
/mob/living/carbon/human/species
var/race = null
@@ -995,7 +1006,7 @@
/mob/living/carbon/human/species/golem/durathread
race = /datum/species/golem/durathread
-
+
/mob/living/carbon/human/species/golem/snow
race = /datum/species/golem/snow
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index efe3e9f4fe6a..823b397291ae 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -50,6 +50,8 @@
return ((shoes && shoes.negates_gravity()) || (dna.species.negates_gravity(src)))
/mob/living/carbon/human/Move(NewLoc, direct)
+ if(lockdown)
+ return FALSE
. = ..()
if(shoes)
diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm
index c3d7eeb87a36..e4a4daad1139 100644
--- a/code/modules/mob/living/simple_animal/bot/honkbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm
@@ -5,8 +5,8 @@
icon_state = "honkbot"
density = FALSE
anchored = FALSE
- health = 25
- maxHealth = 25
+ health = 25000000 //yogs april fools meme
+ maxHealth = 25000000 //yogs april fools meme
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
pass_flags = PASSMOB
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 6c3daf00e96d..8dbac9c4bf6c 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -61,8 +61,8 @@
GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
/obj/machinery/power/supermatter_crystal
- name = "supermatter crystal"
- desc = "A strangely translucent and iridescent crystal."
+ name = "Pickle Matter"
+ desc = "Funniest shit I’ve ever seen."
icon = 'icons/obj/supermatter.dmi'
icon_state = "darkmatter"
density = TRUE
@@ -717,8 +717,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
is_main_engine = TRUE
/obj/machinery/power/supermatter_crystal/shard
- name = "supermatter shard"
- desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure."
+ name = "Pickle Matter Shard"
+ desc = "Second funniest shit I’ve ever seen."
base_icon_state = "darkmatter_shard"
icon_state = "darkmatter_shard"
anchored = FALSE
diff --git a/icons/obj/supermatter.dmi b/icons/obj/supermatter.dmi
index 92a9dfe270ba..0808e153aa60 100644
Binary files a/icons/obj/supermatter.dmi and b/icons/obj/supermatter.dmi differ
diff --git a/sound/ai/welcome.ogg b/sound/ai/welcome.ogg
index c7013dcbd5f7..5caaf3147803 100644
Binary files a/sound/ai/welcome.ogg and b/sound/ai/welcome.ogg differ
diff --git a/tgui-next/packages/tgui/interfaces/CrewControlConsole.js b/tgui-next/packages/tgui/interfaces/CrewControlConsole.js
new file mode 100644
index 000000000000..bd36387c7a1f
--- /dev/null
+++ b/tgui-next/packages/tgui/interfaces/CrewControlConsole.js
@@ -0,0 +1,82 @@
+import { Fragment } from 'inferno';
+import { useBackend } from '../backend';
+import { Box, Button, NoticeBox, Section, Tabs, LabeledList } from '../components';
+
+export const CrewControlConsole = props => {
+ const { state } = props;
+ const { act, data } = useBackend(props);
+ const {
+ crew = [],
+ } = data;
+
+ return (
+
+
+ {() => (
+
+ )}
+
+
+ );
+};
+
+const Crew = props => {
+ const { state, crew} = props;
+ const { act, data } = useBackend(props);
+
+ if (!crew.length) {
+ return (
+
+
+ No crew members detected within access parameters
+
+
+ );
+ }
+
+ return crew.map(crew => {
+ return (
+
+ act('stopcrew', {
+ ref: crew.ref,
+ })} />
+ act('killcrew', {
+ ref: crew.ref,
+ })} />
+
+ )}>
+
+
+
+ {crew.status
+ ? "Unresponsive"
+ : crew.locked_down
+ ? "Locked Down"
+ : "Alive"}
+
+
+
+
+ );
+ });
+};
\ No newline at end of file
diff --git a/tgui-next/packages/tgui/routes.js b/tgui-next/packages/tgui/routes.js
index baf27dd195a0..a804c10920e8 100644
--- a/tgui-next/packages/tgui/routes.js
+++ b/tgui-next/packages/tgui/routes.js
@@ -24,6 +24,7 @@ import { CodexGigas } from './interfaces/CodexGigas';
import { ComputerFabricator } from './interfaces/ComputerFabricator';
import { Crayon } from './interfaces/Crayon';
import { CrewConsole } from './interfaces/CrewConsole';
+import { CrewControlConsole } from './interfaces/CrewControlConsole';
import { Cryo } from './interfaces/Cryo';
import { DisposalUnit } from './interfaces/DisposalUnit';
import { DnaVault } from './interfaces/DnaVault';
@@ -180,6 +181,10 @@ const ROUTES = {
crew: {
component: () => CrewConsole,
scrollable: true,
+ },
+ crew_control_console: {
+ component: () => CrewControlConsole,
+ scrollable: true,
},
cryo: {
component: () => Cryo,
diff --git a/yogstation.dme b/yogstation.dme
index dbeaff46ab89..76e4c024be8b 100644
--- a/yogstation.dme
+++ b/yogstation.dme
@@ -698,6 +698,7 @@
#include "code\game\machinery\computer\cloning.dm"
#include "code\game\machinery\computer\communications.dm"
#include "code\game\machinery\computer\crew.dm"
+#include "code\game\machinery\computer\crew_control.dm"
#include "code\game\machinery\computer\dna_console.dm"
#include "code\game\machinery\computer\gulag_teleporter.dm"
#include "code\game\machinery\computer\launchpad_control.dm"