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"