diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 594ba7b697f..5cacb35367b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -66,7 +66,7 @@ /area/ruin/powered/beach) "ao" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/sand, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index d09ec49272a..4c3c37bed82 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -185,7 +185,7 @@ /area/ruin/powered/seedvault) "aC" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -194,7 +194,7 @@ /area/ruin/powered/seedvault) "aD" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light, @@ -250,7 +250,7 @@ /area/ruin/powered/seedvault) "aK" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light{ @@ -366,7 +366,7 @@ /area/ruin/powered/seedvault) "aZ" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 5a1ccd7600f..13db62ea112 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -2035,7 +2035,7 @@ pixel_x = -24 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -2607,7 +2607,7 @@ pixel_y = 18 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light/small{ @@ -4634,7 +4634,7 @@ /area/ruin/unpowered/syndicate_lava_base/medbay) "mf" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/airalarm/syndicate{ diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index 18b3fa6541c..3a9283c141b 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -314,7 +314,7 @@ /area/ruin/space/djstation) "be" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index b763b86409e..bdd916d14a9 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -689,7 +689,7 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "bR" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel, @@ -1129,7 +1129,7 @@ "cO" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 41d62b305ec..27e69a18d86 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -166,7 +166,7 @@ /area/ruin/space/has_grav/listeningstation) "ar" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/toilet{ @@ -1071,7 +1071,7 @@ /area/ruin/space/has_grav/listeningstation) "bB" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/iv_drip, diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 601e77fca40..f59604d5c8c 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -412,7 +412,7 @@ /area/ruin/space/has_grav/hotel) "bM" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -455,7 +455,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_3) "bS" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -498,7 +498,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_4) "bY" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -541,7 +541,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_5) "ce" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -937,7 +937,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_2) "dm" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -994,7 +994,7 @@ /area/ruin/space/has_grav/hotel/guestroom/room_1) "du" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -1698,7 +1698,7 @@ /area/ruin/space/has_grav/hotel/dock) "fP" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 572a6cc2bc5..7fa61edd43b 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -2136,7 +2136,7 @@ /area/awaymission/academy/academyaft) "iv" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -2168,7 +2168,7 @@ /area/awaymission/academy/academyaft) "iA" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/cafeteria, diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 52f7a32a771..5ce6328c03e 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -104,7 +104,7 @@ /area/awaymission/cabin) "as" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -114,7 +114,7 @@ /area/awaymission/cabin) "at" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -537,7 +537,7 @@ /area/awaymission/cabin) "bG" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -556,7 +556,7 @@ /area/awaymission/cabin) "bJ" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/freezer, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 586dcbcc6a8..295e1a3a926 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -2969,7 +2969,7 @@ /area/awaymission/moonoutpost19/research) "gr" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -3751,7 +3751,7 @@ /area/awaymission/moonoutpost19/arrivals) "hS" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/urinal{ @@ -3940,7 +3940,7 @@ /area/awaymission/moonoutpost19/arrivals) "ik" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -4222,7 +4222,7 @@ /area/awaymission/moonoutpost19/research) "iN" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 17cf19c5e27..12142a93c54 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -3890,7 +3890,7 @@ pixel_x = -32 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -4208,7 +4208,7 @@ /area/awaymission/research/interior/medbay) "jg" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index b02e3764549..21b7920d961 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -2887,7 +2887,7 @@ /area/awaymission/snowdin/post/hydro) "gL" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4212,7 +4212,7 @@ pixel_y = 5 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/green, @@ -4646,7 +4646,7 @@ /area/awaymission/snowdin/post/dorm) "kC" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/showroomfloor, @@ -5583,7 +5583,7 @@ /area/awaymission/snowdin/post/hydro) "mv" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plating{ @@ -8235,7 +8235,7 @@ /area/awaymission/snowdin/post/cavern2) "tc" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/showroomfloor, @@ -8901,7 +8901,7 @@ /area/awaymission/snowdin/post/cavern1) "vw" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/showroomfloor, diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index d4926a8a19f..eadb2d9ae34 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -2222,7 +2222,7 @@ /area/awaymission/spacebattle/cruiser) "io" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/freezer, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index d051cec219f..dd89b39ec47 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -8474,7 +8474,7 @@ pixel_x = 28 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, @@ -8594,7 +8594,7 @@ "qm" = ( /obj/machinery/light/small, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -11 }, /obj/structure/mirror{ @@ -8701,7 +8701,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "qx" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, @@ -9056,7 +9056,7 @@ pixel_x = 28 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/freezer{ @@ -12250,7 +12250,7 @@ /area/awaymission/undergroundoutpost45/engineering) "wL" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light/small, diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index f88e6571db4..3ab25390e1b 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1181,7 +1181,7 @@ /area/security/prison) "acK" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -1746,6 +1746,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/engine/engineering) "adX" = ( @@ -5784,7 +5785,7 @@ /area/maintenance/port/fore) "amD" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -5946,6 +5947,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/security/brig) "amY" = ( @@ -11287,7 +11289,7 @@ /area/maintenance/starboard/fore) "aCm" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -11861,12 +11863,12 @@ /area/crew_quarters/dorms) "aDL" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -12816,7 +12818,7 @@ /area/ai_monitored/storage/eva) "aGk" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -13368,6 +13370,7 @@ "aHG" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/vault{ + name = "Vault"; req_access_txt = "53" }, /obj/effect/turf_decal/tile/neutral{ @@ -13381,6 +13384,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aHH" = ( @@ -13512,6 +13516,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aHU" = ( @@ -13519,7 +13524,7 @@ dir = 1 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -14380,6 +14385,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/primary) "aKa" = ( @@ -15733,6 +15739,7 @@ name = "Chapel Office"; req_access_txt = "22" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/chapel/office) "aNX" = ( @@ -16062,6 +16069,7 @@ req_access_txt = "25" }, /obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/wood, /area/crew_quarters/bar) "aOP" = ( @@ -16101,7 +16109,7 @@ /area/hallway/secondary/exit) "aOV" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -16311,6 +16319,7 @@ "aPD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aPE" = ( @@ -16802,6 +16811,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/tools) "aRg" = ( @@ -17114,6 +17124,7 @@ name = "Private Study"; req_access_txt = "37" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/engine/cult, /area/library) "aRR" = ( @@ -18867,6 +18878,7 @@ req_access_txt = "19" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/bridge) "aWK" = ( @@ -19755,6 +19767,7 @@ /obj/effect/turf_decal/tile/bar{ dir = 1 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aYL" = ( @@ -19951,7 +19964,7 @@ /area/vacant_room/office) "aZo" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -20277,7 +20290,7 @@ /area/crew_quarters/kitchen) "bal" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -20363,7 +20376,7 @@ /area/library) "baw" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -20531,6 +20544,7 @@ name = "Detective's Office"; req_access_txt = "4" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "baX" = ( @@ -21183,7 +21197,7 @@ /area/bridge/meeting_room) "bcO" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/freezer, @@ -21516,6 +21530,7 @@ req_access_txt = "6" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/medical/morgue) "bdO" = ( @@ -23006,6 +23021,7 @@ name = "Research Division Access"; req_access_txt = "47" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/white, /area/science/research) "bhC" = ( @@ -23546,7 +23562,7 @@ c_tag = "Research Division Access" }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/stripes/line{ @@ -24689,7 +24705,7 @@ /area/science/robotics/lab) "blH" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -25001,7 +25017,7 @@ /area/crew_quarters/heads/captain) "bmC" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -25641,6 +25657,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bof" = ( @@ -27659,6 +27676,7 @@ req_access_txt = "17" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/teleporter) "btO" = ( @@ -29050,6 +29068,7 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) "bxH" = ( @@ -29096,7 +29115,7 @@ /area/security/checkpoint/auxiliary) "bxN" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -32075,6 +32094,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plating, /area/storage/tech) "bFf" = ( @@ -32231,7 +32251,7 @@ /area/medical/sleeper) "bFA" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/requests_console{ @@ -33472,7 +33492,7 @@ /area/medical/virology) "bIK" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -34331,7 +34351,7 @@ /area/science/xenobiology) "bLd" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -35194,6 +35214,7 @@ name = "Cargo Office"; req_access_txt = "50" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/quartermaster/office) "bNL" = ( @@ -37537,7 +37558,7 @@ pixel_x = -22 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -37956,7 +37977,7 @@ /area/science/xenobiology) "bVk" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/white, @@ -38324,6 +38345,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/tcommsat/computer) "bWv" = ( @@ -38803,6 +38825,7 @@ name = "Atmospherics"; req_access_txt = "24" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/engine/atmos) "bXO" = ( @@ -39256,7 +39279,7 @@ /area/medical/virology) "bZa" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -46367,6 +46390,9 @@ name = "Escape Airlock"; safety_mode = 1 }, +/obj/machinery/navbeacon/wayfinding{ + location = "Escape" + }, /turf/open/floor/plating, /area/hallway/secondary/exit) "cyr" = ( @@ -47091,6 +47117,7 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/landmark/event_spawn, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/janitor) "cBz" = ( @@ -49525,6 +49552,11 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"fxH" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/pinpointer_dispenser, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "fBs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table/wood, @@ -49984,6 +50016,19 @@ }, /turf/closed/wall/r_wall, /area/security/courtroom) +"jly" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 1"; + safety_mode = 1 + }, +/obj/machinery/navbeacon/wayfinding{ + location = "Arrival Shuttle" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "jox" = ( /obj/machinery/chem_dispenser, /obj/machinery/camera{ @@ -50037,7 +50082,7 @@ }, /obj/effect/turf_decal/tile/purple, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -50781,6 +50826,15 @@ }, /turf/open/floor/plasteel, /area/vacant_room/commissary) +"nCW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel, +/area/hydroponics) "nEk" = ( /obj/machinery/chem_master, /turf/open/floor/plasteel/white, @@ -51762,6 +51816,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plating, /area/hallway/secondary/entry) "sLv" = ( @@ -52226,6 +52281,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "vdl" = ( @@ -64252,7 +64308,7 @@ aaa aaa azy auP -cIh +jly ayl aRY awW @@ -65794,7 +65850,7 @@ aKj aLw aLw aLw -aLw +fxH aQI aNh czK @@ -93044,7 +93100,7 @@ aVI aVI aYO aRJ -bbB +nCW aYV aYV aYV diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 79a5110eb3e..f7e3f70793c 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -9247,7 +9247,7 @@ pixel_x = -26 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/bot, @@ -10483,7 +10483,7 @@ /area/maintenance/port/fore) "aza" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/item/reagent_containers/glass/bucket, @@ -11039,6 +11039,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/janitor) "aAj" = ( @@ -12698,7 +12699,7 @@ /area/space/nearstation) "aDx" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -12718,7 +12719,7 @@ /area/hydroponics/garden/abandoned) "aDA" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/sign/departments/botany{ @@ -17005,6 +17006,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aLK" = ( @@ -26882,6 +26884,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/quartermaster/office) "bcr" = ( @@ -30816,7 +30819,7 @@ /area/maintenance/port/fore) "bjp" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/airalarm{ @@ -30913,6 +30916,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/hydroponics) "bjx" = ( @@ -30964,6 +30968,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bjB" = ( @@ -37624,7 +37629,7 @@ /area/storage/tech) "bvz" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/bot, @@ -37662,7 +37667,7 @@ /area/hydroponics) "bvD" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/requests_console{ @@ -38119,6 +38124,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/engine/atmos) "bwB" = ( @@ -39155,6 +39161,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/nuke_storage) "byw" = ( @@ -45597,6 +45604,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/primary) "bIF" = ( @@ -51262,6 +51270,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/tech) "bSt" = ( @@ -51533,6 +51542,7 @@ name = "Auxiliary Tool Storage"; req_access_txt = "12" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/tools) "bSV" = ( @@ -51563,6 +51573,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/security/detectives_office) "bSY" = ( @@ -54573,6 +54584,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/security/brig) "bXC" = ( @@ -55718,7 +55730,7 @@ /area/crew_quarters/heads/captain/private) "bZp" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -56417,6 +56429,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/engine/engineering) "cay" = ( @@ -64968,6 +64981,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cqY" = ( @@ -67227,6 +67241,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/library) "cvn" = ( @@ -67250,6 +67265,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cvq" = ( @@ -67549,6 +67565,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/locker) "cvR" = ( @@ -72780,7 +72797,7 @@ pixel_x = -26 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -73563,7 +73580,7 @@ pixel_x = -26 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -74289,7 +74306,7 @@ "cId" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ - name = "Lockerroom" + name = "Locker Room" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, @@ -74302,7 +74319,7 @@ "cIe" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ - name = "Lockerroom" + name = "Locker Room" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -74788,6 +74805,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cJj" = ( @@ -80011,6 +80029,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/medical/medbay/central) "cSK" = ( @@ -81384,7 +81403,7 @@ pixel_x = 26 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/dirt, @@ -83781,6 +83800,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/science/research) "cZk" = ( @@ -84686,7 +84706,7 @@ /area/science/research) "daN" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -85016,7 +85036,7 @@ pixel_x = 26 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/blue{ @@ -86501,7 +86521,7 @@ /area/science/research) "deb" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -89226,7 +89246,7 @@ /area/maintenance/starboard/aft) "diR" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/decal/cleanable/dirt, @@ -89519,10 +89539,10 @@ /obj/structure/window/reinforced{ dir = 1 }, -/mob/living/carbon/monkey, /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/mob/living/carbon/monkey, /turf/open/floor/plasteel/dark, /area/science/genetics) "djC" = ( @@ -89540,11 +89560,11 @@ name = "'Monkey Pen"; req_access_txt = "9" }, -/mob/living/carbon/monkey, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/mob/living/carbon/monkey, /turf/open/floor/plasteel/dark, /area/science/genetics) "djD" = ( @@ -89559,11 +89579,11 @@ name = "Monkey Pen"; req_access_txt = "9" }, -/mob/living/carbon/monkey, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/mob/living/carbon/monkey, /turf/open/floor/plasteel/dark, /area/science/genetics) "djE" = ( @@ -89574,10 +89594,10 @@ /obj/structure/window/reinforced{ dir = 1 }, -/mob/living/carbon/monkey, /obj/effect/turf_decal/stripes/end{ dir = 4 }, +/mob/living/carbon/monkey, /turf/open/floor/plasteel/dark, /area/science/genetics) "djF" = ( @@ -96294,7 +96314,7 @@ pixel_x = -26 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/tile/blue{ @@ -99551,7 +99571,7 @@ /area/medical/medbay/central) "dEc" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -100642,6 +100662,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/medical/morgue) "dGh" = ( @@ -105051,7 +105072,7 @@ /area/science/storage) "dOq" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -106023,7 +106044,7 @@ /area/hallway/primary/aft) "dQe" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/shower{ @@ -106407,7 +106428,7 @@ /area/hallway/primary/aft) "dQU" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -109678,7 +109699,7 @@ /area/medical/virology) "dYe" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/extinguisher_cabinet{ @@ -110265,7 +110286,7 @@ /area/medical/virology) "dZC" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -111811,6 +111832,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/chapel/main) "ecV" = ( @@ -113735,6 +113757,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding{ + location = "Escape" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "eMD" = ( @@ -113960,6 +113985,23 @@ }, /turf/open/floor/plasteel/dark, /area/science/nanite) +"gJw" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + safety_mode = 1 + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "gKr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -114773,6 +114815,32 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"luq" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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/structure/cable, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel/dark, +/area/bridge) "lwE" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8; @@ -116414,6 +116482,11 @@ }, /turf/open/space/basic, /area/space/nearstation) +"vVy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/pinpointer_dispenser, +/turf/open/floor/plating, +/area/hallway/secondary/entry) "wav" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -116425,6 +116498,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "waK" = ( @@ -155637,7 +155711,7 @@ aaa aaa aaa aaa -aaO +vVy ajw akg akL @@ -157429,7 +157503,7 @@ afz afV agk aaO -qkG +gJw aaO adq abf @@ -159803,7 +159877,7 @@ bvK bvI bwU bBw -bDA +luq bFC bBw bIV diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 43fc77bc710..d3a26a298c5 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -4103,7 +4103,7 @@ dir = 5 }, /turf/closed/wall, -/area/engine/break_room) +/area/engine/atmos) "agO" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall/rust, @@ -8064,7 +8064,7 @@ }, /obj/effect/turf_decal/bot, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -12818,6 +12818,7 @@ name = "Head of Personnel's Office"; req_access_txt = "57" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/courtroom) "aus" = ( @@ -14743,6 +14744,7 @@ name = "Teleporter Access"; req_one_access_txt = "17;19" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/teleporter) "axn" = ( @@ -15924,7 +15926,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -17286,6 +17288,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "aBn" = ( @@ -18375,7 +18378,7 @@ }, /obj/structure/sign/plaques/atmos, /turf/closed/wall/rust, -/area/engine/break_room) +/area/engine/atmos) "aCV" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, @@ -18671,7 +18674,7 @@ }, /obj/effect/decal/cleanable/food/flour, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/camera{ @@ -19031,6 +19034,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/effect/mapping_helpers/airlock/locked, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/nuke_storage) "aEc" = ( @@ -19877,7 +19881,7 @@ dir = 8 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -21572,7 +21576,7 @@ dir = 4 }, /turf/closed/wall, -/area/engine/break_room) +/area/engine/atmos) "aIh" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -24775,6 +24779,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/chapel/main) "aMY" = ( @@ -25208,14 +25213,6 @@ }, /turf/open/floor/plasteel/dark, /area/medical/genetics/cloning) -"aNJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/dark, -/area/medical/genetics/cloning) "aNK" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -26816,6 +26813,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aPU" = ( @@ -30686,6 +30684,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/chapel/main) "aVo" = ( @@ -31883,8 +31882,8 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "aXb" = ( -/mob/living/carbon/monkey, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/science/genetics) "aXc" = ( @@ -33934,7 +33933,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/landmark/start/roboticist, @@ -36732,7 +36731,6 @@ }, /obj/structure/window/reinforced, /obj/effect/turf_decal/box/corners, -/mob/living/carbon/monkey, /obj/structure/sink/puddle, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 @@ -36740,6 +36738,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/science/genetics) "bdT" = ( @@ -38729,7 +38728,7 @@ dir = 1 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/stripes/corner{ @@ -38844,7 +38843,7 @@ /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, @@ -39906,7 +39905,7 @@ }, /obj/effect/turf_decal/tile/blue, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -43221,6 +43220,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/crew_quarters/kitchen) "bna" = ( @@ -43467,7 +43467,7 @@ dir = 1 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/machinery/airalarm{ @@ -45344,7 +45344,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light_switch{ @@ -45802,6 +45802,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/hydroponics) "bqK" = ( @@ -47091,6 +47092,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bsA" = ( @@ -48698,6 +48700,7 @@ req_access_txt = "37" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/library) "buV" = ( @@ -50247,7 +50250,7 @@ dir = 1 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/stripes/corner{ @@ -56988,6 +56991,7 @@ }, /obj/effect/turf_decal/delivery, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "bHH" = ( @@ -58954,6 +58958,7 @@ dir = 1 }, /obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/bridge) "bKJ" = ( @@ -69700,7 +69705,7 @@ pixel_x = 30 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/dark, @@ -70042,7 +70047,7 @@ /area/crew_quarters/locker) "caM" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11; pixel_y = 8 }, @@ -70821,7 +70826,7 @@ "cbV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -73269,6 +73274,7 @@ name = "Custodial Closet"; req_access_txt = "26" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/janitor) "cge" = ( @@ -73845,6 +73851,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/storage/tech) "cgX" = ( @@ -75301,7 +75308,7 @@ "cjr" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/yellow{ @@ -76179,6 +76186,7 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/detectives_office) "ckJ" = ( @@ -77827,6 +77835,7 @@ name = "Brig"; req_access_txt = "63" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/brig) "cnu" = ( @@ -80543,7 +80552,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -81092,7 +81101,7 @@ pixel_x = 28 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/item/reagent_containers/glass/bucket, @@ -81711,8 +81720,9 @@ req_access_txt = "24" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, -/area/engine/break_room) +/area/engine/atmos) "ctM" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ dir = 8 @@ -81737,6 +81747,7 @@ req_access_txt = "10" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/engine/engineering) "ctP" = ( @@ -82378,6 +82389,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/engine/atmos) "cuK" = ( @@ -86908,6 +86920,7 @@ safety_mode = 1 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "cCk" = ( @@ -87007,7 +87020,7 @@ }, /obj/effect/turf_decal/bot, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -88248,7 +88261,7 @@ /area/maintenance/fore) "cEC" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -88497,7 +88510,7 @@ /area/engine/engineering) "cEV" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/blood/old, @@ -93776,7 +93789,7 @@ }, /obj/effect/turf_decal/bot, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -93862,11 +93875,65 @@ }, /turf/open/space/basic, /area/space/nearstation) +"dgX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Tool Storage" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel/dark, +/area/storage/primary) "fhz" = ( /obj/structure/cable, /obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain) +"prO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Departure Shuttle Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"pSI" = ( +/obj/effect/mapping_helpers/airlock/unres{ + icon_state = "airlock_unres_helper"; + dir = 8 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "medbay_front_door"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"utx" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + id_tag = "ResearchInt"; + name = "Research Division"; + req_one_access_txt = "47" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel/dark, +/area/science/research) +"xIs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/pinpointer_dispenser, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) (1,1,1) = {" aaa @@ -113508,7 +113575,7 @@ cvJ amh anV aNH -aNJ +and apW aBi avG @@ -113765,7 +113832,7 @@ czM cwy anW aNt -aNJ +and aqo aMd avI @@ -115062,7 +115129,7 @@ aOG aWo aNP cJJ -cJJ +pSI aNn ayC aRH @@ -128461,7 +128528,7 @@ bIB bZM bGx bYK -bQI +dgX aVw aYV bji @@ -130997,7 +131064,7 @@ aZB aOM aZr bdJ -bdJ +utx aZr aYd aYK @@ -133869,7 +133936,7 @@ bYe bTs bSQ bXB -bPe +xIs bYN bWX bXc @@ -136694,7 +136761,7 @@ bPe bTE bPe bPe -bWf +prO bRF bWf bPe diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index a780e5401c9..7d4881778a8 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3078,7 +3078,7 @@ /area/maintenance/fore) "agr" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -11489,6 +11489,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/security/detectives_office) "ayI" = ( @@ -13004,6 +13005,7 @@ }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/security/brig) "aCp" = ( @@ -13385,6 +13387,7 @@ "aDr" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/vault{ + name = "Vault"; req_access_txt = "53" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -13400,6 +13403,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/security/nuke_storage) "aDs" = ( @@ -15210,7 +15214,7 @@ /area/crew_quarters/toilet/restrooms) "aHJ" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -16284,6 +16288,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aKn" = ( @@ -16963,7 +16968,7 @@ /area/crew_quarters/locker) "aLU" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -19266,7 +19271,7 @@ dir = 5 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -20185,6 +20190,7 @@ name = "Locker Room" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTv" = ( @@ -21370,6 +21376,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/primary) "aVT" = ( @@ -26099,6 +26106,7 @@ req_access_txt = "12" }, /obj/effect/landmark/event_spawn, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/storage/tools) "bfJ" = ( @@ -26176,6 +26184,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/storage/tech) "bfQ" = ( @@ -26645,6 +26654,7 @@ }, /obj/effect/turf_decal/delivery, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/quartermaster/office) "bgU" = ( @@ -29941,8 +29951,9 @@ /area/hallway/primary/port) "bnP" = ( /obj/machinery/door/airlock/external{ - name = "Auxiliary Airlock" + name = "Common Mining Dock" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plating, /area/hallway/primary/port) "bnR" = ( @@ -31610,6 +31621,7 @@ req_one_access_txt = "32;19" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/engine/break_room) "brL" = ( @@ -32607,6 +32619,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/tcommsat/computer) "btO" = ( @@ -32799,6 +32812,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bun" = ( @@ -32975,6 +32989,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/wood, /area/crew_quarters/bar) "buP" = ( @@ -35677,6 +35692,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/bridge) "bBF" = ( @@ -37710,6 +37726,7 @@ }, /obj/effect/turf_decal/delivery, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bGC" = ( @@ -37725,6 +37742,7 @@ /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/delivery, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/teleporter) "bGE" = ( @@ -39326,6 +39344,7 @@ req_access_txt = "28" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bKl" = ( @@ -41055,6 +41074,7 @@ name = "Private Study"; req_access_txt = "37" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/engine/cult, /area/library) "bOn" = ( @@ -44091,7 +44111,7 @@ /area/hydroponics) "bVy" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/bot, @@ -45023,7 +45043,7 @@ /area/maintenance/port/aft) "bXA" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -45831,7 +45851,7 @@ /area/hallway/primary/central) "bZt" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -46446,7 +46466,7 @@ pixel_x = -24 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -46459,6 +46479,7 @@ req_access_txt = "35" }, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/hydroponics) "caK" = ( @@ -48419,7 +48440,7 @@ pixel_x = 24 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/purple, @@ -48603,6 +48624,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/maintenance/starboard) "cfl" = ( @@ -48912,6 +48934,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cfV" = ( @@ -49419,7 +49442,7 @@ "cha" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 12 }, /obj/effect/turf_decal/tile/blue{ @@ -50867,7 +50890,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -50885,7 +50908,7 @@ /area/science/research) "ckg" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -50939,7 +50962,7 @@ pixel_x = -24 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -51285,7 +51308,7 @@ /area/medical/sleeper) "clj" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -53925,7 +53948,7 @@ pixel_y = -22 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -54119,7 +54142,7 @@ /area/science/genetics) "cqW" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/purple, @@ -54204,7 +54227,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -54583,7 +54606,6 @@ /area/science/genetics) "crW" = ( /obj/structure/bed/roller, -/mob/living/carbon/monkey, /obj/machinery/door/window/westleft{ base_state = "right"; dir = 1; @@ -54592,6 +54614,7 @@ pixel_y = 2; req_access_txt = "9" }, +/mob/living/carbon/monkey, /turf/open/floor/plasteel/dark, /area/science/genetics) "crZ" = ( @@ -56496,7 +56519,7 @@ "cwu" = ( /obj/structure/disposalpipe/segment, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -56506,7 +56529,7 @@ /area/medical/medbay/aft) "cwv" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -56999,7 +57022,7 @@ pixel_x = 29 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -58142,6 +58165,7 @@ req_one_access_txt = "47" }, /obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel, /area/science/research) "cAN" = ( @@ -58214,7 +58238,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/cafeteria{ @@ -59959,6 +59983,7 @@ name = "Morgue"; req_access_txt = "6" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEZ" = ( @@ -61255,7 +61280,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/green, @@ -61328,7 +61353,7 @@ network = list("ss13","medbay") }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light_switch{ @@ -61464,7 +61489,7 @@ /area/medical/medbay/aft) "cHF" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -62009,7 +62034,7 @@ "cIJ" = ( /obj/effect/landmark/start/roboticist, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -62548,7 +62573,7 @@ /area/science/robotics/lab) "cJO" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -63101,7 +63126,7 @@ /area/medical/virology) "cKZ" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/green, @@ -65114,6 +65139,7 @@ name = "Chapel Office"; req_access_txt = "22" }, +/obj/machinery/navbeacon/wayfinding, /turf/open/floor/plasteel/dark, /area/chapel/office) "cPm" = ( @@ -65882,7 +65908,7 @@ /area/science/xenobiology) "cRh" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -66729,7 +66755,7 @@ /area/science/xenobiology) "cSW" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -67841,7 +67867,7 @@ "dbX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -67993,7 +68019,7 @@ /area/science/xenobiology) "dcf" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/purple{ @@ -68342,7 +68368,7 @@ /area/science/xenobiology) "dcO" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/camera{ @@ -70190,7 +70216,7 @@ "diz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/sign/poster/official/cleanliness{ @@ -72864,6 +72890,15 @@ }, /turf/open/floor/wood, /area/vacant_room/office) +"ilu" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Departure Lounge Airlock" + }, +/obj/machinery/navbeacon/wayfinding, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "imV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ @@ -75572,6 +75607,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/maintenance/starboard) +"ttW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/pinpointer_dispenser, +/turf/open/floor/plating, +/area/quartermaster/sorting) "twp" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -76415,7 +76455,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/item/reagent_containers/glass/bucket, @@ -93999,7 +94039,7 @@ beV bgH biE bkh -dmH +ttW bnW bqn bsy @@ -103834,7 +103874,7 @@ cPs cPU cQp cQN -cQY +ilu cQK eCT cYJ diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index d83bf1af510..4b42adcd533 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -2193,7 +2193,7 @@ /area/mine/living_quarters) "fL" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/bar, @@ -3806,7 +3806,7 @@ /area/mine/laborcamp/security) "Fe" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index c62a3523482..26007d176a8 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2174,7 +2174,7 @@ /area/security/prison) "agO" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -12203,7 +12203,7 @@ /area/hallway/primary/central) "aEZ" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -14432,7 +14432,7 @@ /area/crew_quarters/cafeteria) "aLE" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -19353,7 +19353,7 @@ /area/janitor) "aXQ" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -19911,7 +19911,7 @@ /area/hydroponics) "aYQ" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel, @@ -21711,7 +21711,7 @@ /obj/item/reagent_containers/glass/bucket, /obj/item/mop, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light_switch{ @@ -24240,7 +24240,7 @@ "bkm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/tile/green{ @@ -27921,7 +27921,7 @@ }, /obj/effect/turf_decal/tile/purple, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/white, @@ -29353,7 +29353,7 @@ dir = 8 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/tile/yellow{ @@ -29700,7 +29700,7 @@ /area/science/explab) "bxL" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/dark, @@ -30217,7 +30217,7 @@ /area/science/explab) "byQ" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/stripes/line{ @@ -30609,7 +30609,7 @@ /area/medical/genetics) "bzL" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -32783,7 +32783,7 @@ /area/medical/virology) "bEs" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -33550,7 +33550,7 @@ /area/medical/medbay/central) "bFP" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -34643,7 +34643,7 @@ pixel_x = 28 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/green{ @@ -44149,7 +44149,7 @@ /area/chapel/main/monastery) "chu" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/showroomfloor, @@ -44260,7 +44260,7 @@ /area/chapel/main/monastery) "chU" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel, @@ -51141,7 +51141,7 @@ /area/maintenance/department/science) "hTl" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 12 }, /obj/structure/mirror{ @@ -51687,7 +51687,7 @@ /area/space/nearstation) "jhD" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -54077,7 +54077,7 @@ dir = 4 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel, @@ -54593,7 +54593,7 @@ /area/engine/engineering) "pMG" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -56373,7 +56373,7 @@ /area/engine/engineering) "tXn" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/stripes/corner{ diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 786e7f6cac9..3d0f6c84c80 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -5620,7 +5620,7 @@ /area/centcom/ferry) "nC" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -7671,7 +7671,7 @@ pixel_x = 28 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/plasteel/freezer, @@ -14697,7 +14697,7 @@ /area/centcom/ferry) "Hb" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -14751,7 +14751,7 @@ /area/tdome/tdomeobserve) "Hh" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -14774,7 +14774,7 @@ /area/centcom/holding) "Hn" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -14905,7 +14905,7 @@ /area/tdome/tdomeobserve) "Hx" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -14915,7 +14915,7 @@ /area/tdome/tdomeobserve) "HA" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -14946,7 +14946,7 @@ /area/tdome/tdomeobserve) "HC" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/red{ @@ -14963,7 +14963,7 @@ /area/tdome/tdomeobserve) "HD" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/effect/turf_decal/tile/bar, @@ -14974,7 +14974,7 @@ /area/tdome/tdomeobserve) "HF" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -14996,7 +14996,7 @@ /area/centcom/holding) "HI" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/structure/mirror{ @@ -15120,7 +15120,7 @@ /area/centcom/holding) "HR" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ @@ -17217,7 +17217,7 @@ /area/centcom/control) "Op" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm index d14c924cf37..2bd663f3e57 100644 --- a/_maps/shuttles/emergency_asteroid.dmm +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -323,7 +323,7 @@ /area/shuttle/escape) "bt" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index c8b8e57c910..80446cfc965 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -1499,7 +1499,7 @@ /area/shuttle/escape) "cX" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index d0b66ee2330..72e290b0987 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -299,7 +299,7 @@ /area/shuttle/escape) "au" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/turf_decal/tile/blue{ diff --git a/_maps/shuttles/emergency_donut.dmm b/_maps/shuttles/emergency_donut.dmm index 5cf8b4869df..b42dec9707c 100644 --- a/_maps/shuttles/emergency_donut.dmm +++ b/_maps/shuttles/emergency_donut.dmm @@ -364,7 +364,7 @@ /area/shuttle/escape) "bj" = ( /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /turf/open/floor/mineral/titanium/white, diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm index dd25eec25c3..4ca99a04e16 100644 --- a/_maps/shuttles/emergency_kilo.dmm +++ b/_maps/shuttles/emergency_kilo.dmm @@ -1441,7 +1441,7 @@ dir = 9 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -1483,7 +1483,7 @@ dir = 5 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /turf/open/floor/mineral/titanium/white, diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 2d9c1e12acb..00904d387e6 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -1011,7 +1011,7 @@ /area/shuttle/syndicate/medical) "ck" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index ecb26682a17..d3c364df8a3 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -1555,7 +1555,7 @@ pixel_y = 16 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 8af1f8e4568..f5d70f14db5 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -69,7 +69,7 @@ pixel_y = 16 }, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/mirror{ diff --git a/_maps/shuttles/whiteship_donut.dmm b/_maps/shuttles/whiteship_donut.dmm index b695fea84fd..bdfd28b984f 100644 --- a/_maps/shuttles/whiteship_donut.dmm +++ b/_maps/shuttles/whiteship_donut.dmm @@ -252,7 +252,7 @@ "aQ" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12 }, /obj/item/soap, diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index caada2a63a0..b641313e3c9 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -1002,7 +1002,7 @@ "bG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/structure/toilet{ @@ -2549,7 +2549,7 @@ "dR" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/effect/decal/cleanable/food/flour, @@ -2562,7 +2562,7 @@ "dT" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/templates/hilbertshotel.dmm b/_maps/templates/hilbertshotel.dmm index 87fff9e42d9..df277f2d90a 100644 --- a/_maps/templates/hilbertshotel.dmm +++ b/_maps/templates/hilbertshotel.dmm @@ -137,7 +137,7 @@ pixel_x = -32 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/templates/hilbertshotellore.dmm b/_maps/templates/hilbertshotellore.dmm index f6be66bd067..8f98ec39965 100644 --- a/_maps/templates/hilbertshotellore.dmm +++ b/_maps/templates/hilbertshotellore.dmm @@ -174,7 +174,7 @@ pixel_x = -32 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, @@ -295,7 +295,7 @@ pixel_x = -32 }, /obj/structure/sink{ - dir = 8; + dir = 4; pixel_x = -12; pixel_y = 2 }, diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index 6da0647ac38..f2a3de030ca 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -212,7 +212,7 @@ /area/survivalpod) "I" = ( /obj/structure/sink{ - dir = 4; + dir = 8; pixel_x = 11 }, /obj/machinery/light/small{ diff --git a/code/__DEFINES/blackmarket.dm b/code/__DEFINES/blackmarket.dm new file mode 100644 index 00000000000..569759f5437 --- /dev/null +++ b/code/__DEFINES/blackmarket.dm @@ -0,0 +1,10 @@ + +// Shipping methods + +// The BEST way of shipping items: accurate, "undetectable" +#define SHIPPING_METHOD_LTSRBT "LTSRBT" +// Picks a random area to teleport the item to and gives you a minute to get there before it is sent. +#define SHIPPING_METHOD_TELEPORT "Teleport" +// Throws the item from somewhere at the station. +#define SHIPPING_METHOD_LAUNCH "Launch" + diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index f4060495d61..e9d147a9f1f 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -198,7 +198,6 @@ #define HEARING_SPANS 6 #define HEARING_MESSAGE_MODE 7 */ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) -#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" //Called when the movable's glide size is updated: (new_glide_size) // /mob signals #define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5c931924397..57f8c5d1eeb 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -398,6 +398,7 @@ GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE))) #define ARCADE_FILE "arcade.json" #define BOOMER_FILE "boomer.json" #define LOCATIONS_FILE "locations.json" +#define WANTED_FILE "wanted_message.json" //Fullscreen overlay resolution in tiles. #define FULLSCREEN_OVERLAY_RESOLUTION_X 15 diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm deleted file mode 100644 index 5d5605d0fa1..00000000000 --- a/code/__DEFINES/movement.dm +++ /dev/null @@ -1,18 +0,0 @@ -//The minimum for glide_size to be clamped to. -//Clamped to 5 because byond's glide size scaling is actually just completely broken and "step" -//movement is better than dealing with the awful camera juddering -#define MIN_GLIDE_SIZE 5 -//The maximum for glide_size to be clamped to. -//This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case. -#define MAX_GLIDE_SIZE 32 - -//This is a global so it can be changed in game, if you want to make this a bit faster you can make it a constant/define directly in the code -GLOBAL_VAR_INIT(glide_size_multiplier, 1.25) - -///Broken down, here's what this does: -/// divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick. -/// The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set -/// Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. -/// The whole result is then clamped to within the range above. -/// Not very readable but it works -#define DELAY_TO_GLIDE_SIZE(delay) (CLAMP(((32 / max(delay / world.tick_lag, 1)) * GLOB.glide_size_multiplier), MIN_GLIDE_SIZE, MAX_GLIDE_SIZE)) diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm index f2f57bb15db..32c2dc213ec 100644 --- a/code/__HELPERS/_string_lists.dm +++ b/code/__HELPERS/_string_lists.dm @@ -1,4 +1,5 @@ #define pick_list(FILE, KEY) (pick(strings(FILE, KEY))) +#define pick_list_weighted(FILE, KEY) (pickweight(strings(FILE, KEY))) #define pick_list_replacements(FILE, KEY) (strings_replacement(FILE, KEY)) #define json_load(FILE) (json_decode(file2text(FILE))) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 14c752613bf..6dcc6225799 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used GLOBAL_LIST_EMPTY(teleportbeacons) //list of all tracking beacons used by teleporters GLOBAL_LIST_EMPTY(deliverybeacons) //list of all MULEbot delivery beacons. GLOBAL_LIST_EMPTY(deliverybeacontags) //list of all tags associated with delivery beacons. +GLOBAL_LIST_EMPTY(wayfindingbeacons) //list of all navigation beacons used by wayfinding pinpointers GLOBAL_LIST_EMPTY(nuke_list) GLOBAL_LIST_EMPTY(alarmdisplay) //list of all machines or programs that can display station alerts GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the station (actually technically all engines) diff --git a/code/controllers/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm new file mode 100644 index 00000000000..58fad562d7a --- /dev/null +++ b/code/controllers/subsystem/blackmarket.dm @@ -0,0 +1,115 @@ +SUBSYSTEM_DEF(blackmarket) + name = "Blackmarket" + flags = SS_BACKGROUND + init_order = INIT_ORDER_DEFAULT + + /// Descriptions for each shipping methods. + var/shipping_method_descriptions = list( + SHIPPING_METHOD_LAUNCH="Launches the item at the station from space, cheap but you might not recieve your item at all.", + SHIPPING_METHOD_LTSRBT="Long-To-Short-Range-Bluespace-Transceiver, a machine that recieves items outside the station and then teleports them to the location of the uplink.", + SHIPPING_METHOD_TELEPORT="Teleports the item in a random area in the station, you get 60 seconds to get there first though." + ) + + /// List of all existing markets. + var/list/datum/blackmarket_market/markets = list() + /// List of existing ltsrbts. + var/list/obj/machinery/ltsrbt/telepads = list() + /// Currently queued purchases. + var/list/queued_purchases = list() + +/datum/controller/subsystem/blackmarket/Initialize(timeofday) + for(var/market in subtypesof(/datum/blackmarket_market)) + markets[market] += new market + + for(var/item in subtypesof(/datum/blackmarket_item)) + var/datum/blackmarket_item/I = new item() + if(!I.item) + continue + + for(var/M in I.markets) + if(!markets[M]) + stack_trace("SSblackmarket: Item [I] available in market that does not exist.") + continue + markets[M].add_item(item) + qdel(I) + . = ..() + +/datum/controller/subsystem/blackmarket/fire(resumed) + while(length(queued_purchases)) + var/datum/blackmarket_purchase/purchase = queued_purchases[1] + queued_purchases.Cut(1,2) + + // Uh oh, uplink is gone. We will just keep the money and you will not get your order. + if(!purchase.uplink || QDELETED(purchase.uplink)) + queued_purchases -= purchase + qdel(purchase) + continue + + switch(purchase.method) + // Find a ltsrbt pad and make it handle the shipping. + if(SHIPPING_METHOD_LTSRBT) + if(!telepads.len) + continue + // Prioritize pads that don't have a cooldown active. + var/free_pad_found = FALSE + for(var/obj/machinery/ltsrbt/pad in telepads) + if(pad.recharge_cooldown) + continue + pad.add_to_queue(purchase) + queued_purchases -= purchase + free_pad_found = TRUE + break + + if(free_pad_found) + continue + + var/obj/machinery/ltsrbt/pad = pick(telepads) + + to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "[purchase.uplink] flashes a message noting that the order is being processed by [pad].") + + queued_purchases -= purchase + pad.add_to_queue(purchase) + // Get random area, throw it somewhere there. + if(SHIPPING_METHOD_TELEPORT) + var/turf/targetturf = get_safe_random_station_turf() + // This shouldn't happen. + if (!targetturf) + continue + + to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.") + + // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. + addtimer(CALLBACK(src, /datum/controller/subsystem/blackmarket/proc/fake_teleport, purchase.entry.spawn_item(), targetturf), 60 SECONDS) + queued_purchases -= purchase + qdel(purchase) + // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. + if(SHIPPING_METHOD_LAUNCH) + var/startSide = pick(GLOB.cardinals) + var/turf/T = get_turf(purchase.uplink) + var/pickedloc = spaceDebrisStartLoc(startSide, T.z) + + var/atom/movable/item = purchase.entry.spawn_item(pickedloc) + item.throw_at(purchase.uplink, 3, 3, spin = FALSE) + + to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "[purchase.uplink] flashes a message noting the order is being launched at the station from [dir2text(startSide)].") + + queued_purchases -= purchase + qdel(purchase) + + if(MC_TICK_CHECK) + break + +/// Used to make a teleportation effect as do_teleport does not like moving items from nullspace. +/datum/controller/subsystem/blackmarket/proc/fake_teleport(atom/movable/item, turf/target) + item.forceMove(target) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(5, 1, target) + sparks.attach(item) + sparks.start() + +/// Used to add /datum/blackmarket_purchase to queued_purchases var. Returns TRUE when queued. +/datum/controller/subsystem/blackmarket/proc/queue_item(datum/blackmarket_purchase/P) + if(P.method == SHIPPING_METHOD_LTSRBT && !telepads.len) + return FALSE + queued_purchases += P + return TRUE diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index b4d29ef7594..1bc39fd3580 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -41,3 +41,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) badquirk = TRUE if(badquirk) cli.prefs.save_character() + + // Assign wayfinding pinpointer granting quirk if they're new + if(cli.calc_exp_type(EXP_TYPE_LIVING) < 1200 && !user.has_quirk(/datum/quirk/needswayfinder)) + user.add_quirk(/datum/quirk/needswayfinder, TRUE) diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm index d6804564cb7..4bff66fc7da 100644 --- a/code/datums/components/caltrop.dm +++ b/code/datums/components/caltrop.dm @@ -15,10 +15,6 @@ RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), .proc/Crossed) /datum/component/caltrop/proc/Crossed(datum/source, atom/movable/AM) - var/atom/A = parent - if(!A.has_gravity()) - return - if(!prob(probability)) return @@ -30,6 +26,12 @@ if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK) return + //move these next two down a level if you add more mobs to this. + if(H.is_flying() || H.is_floating()) //check if they are able to pass over us + return //gravity checking only our parent would prevent us from triggering they're using magboots / other gravity assisting items that would cause them to still touch us. + if(H.buckled) //if they're buckled to something, that something should be checked instead. + return + var/picked_def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) if(!istype(O)) @@ -42,15 +44,13 @@ if(!(flags & CALTROP_BYPASS_SHOES) && (H.shoes || feetCover)) return - if((H.movement_type & FLYING) || H.buckled) - return - var/damage = rand(min_damage, max_damage) if(HAS_TRAIT(H, TRAIT_LIGHT_STEP)) damage *= 0.75 H.apply_damage(damage, BRUTE, picked_def_zone) if(cooldown < world.time - 10) //cooldown to avoid message spam. + var/atom/A = parent if(!H.incapacitated(ignore_restraints = TRUE)) H.visible_message("[H] steps on [A].", \ "You step on [A]!") diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index aaa20604bf0..8bc450a4e89 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -59,6 +59,10 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/strobeshield/New() + ..() + blacklist |= subtypesof(/obj/item/shield/riot/) + /datum/crafting_recipe/molotov name = "Molotov" result = /obj/item/reagent_containers/food/drinks/bottle/molotov @@ -113,7 +117,7 @@ name = "Tail Club" result = /obj/item/tailclub reqs = list(/obj/item/organ/tail/lizard = 1, - /obj/item/stack/sheet/metal = 1) + /obj/item/stack/sheet/metal = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -122,7 +126,7 @@ name = "Liz O' Nine Tails" result = /obj/item/melee/chainofcommand/tailwhip reqs = list(/obj/item/organ/tail/lizard = 1, - /obj/item/stack/cable_coil = 1) + /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -131,7 +135,7 @@ name = "Cat O' Nine Tails" result = /obj/item/melee/chainofcommand/tailwhip/kitty reqs = list(/obj/item/organ/tail/cat = 1, - /obj/item/stack/cable_coil = 1) + /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -518,7 +522,7 @@ result = /obj/item/clothing/accessory/talisman time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) + /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL /datum/crafting_recipe/bonecodpiece @@ -526,7 +530,7 @@ result = /obj/item/clothing/accessory/skullcodpiece time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 1) + /obj/item/stack/sheet/animalhide/goliath_hide = 1) category = CAT_PRIMAL /datum/crafting_recipe/skilt @@ -534,7 +538,7 @@ result = /obj/item/clothing/accessory/skilt time = 20 reqs = list(/obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 2) + /obj/item/stack/sheet/sinew = 2) category = CAT_PRIMAL /datum/crafting_recipe/bracers @@ -542,7 +546,7 @@ result = /obj/item/clothing/gloves/bracer time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) + /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL /datum/crafting_recipe/skullhelm @@ -597,7 +601,7 @@ result = /obj/item/twohanded/spear/bonespear time = 30 reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/sinew = 1) + /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL /datum/crafting_recipe/boneaxe @@ -605,7 +609,7 @@ result = /obj/item/twohanded/fireaxe/boneaxe time = 50 reqs = list(/obj/item/stack/sheet/bone = 6, - /obj/item/stack/sheet/sinew = 3) + /obj/item/stack/sheet/sinew = 3) category = CAT_PRIMAL /datum/crafting_recipe/bonfire @@ -657,9 +661,9 @@ result = /obj/item/pressure_plate time = 5 reqs = list(/obj/item/stack/sheet/metal = 1, - /obj/item/stack/tile/plasteel = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/assembly/igniter = 1) + /obj/item/stack/tile/plasteel = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/assembly/igniter = 1) category = CAT_MISC @@ -697,8 +701,8 @@ result = /obj/structure/guillotine time = 150 // Building a functioning guillotine takes time reqs = list(/obj/item/stack/sheet/plasteel = 3, - /obj/item/stack/sheet/mineral/wood = 20, - /obj/item/stack/cable_coil = 10) + /obj/item/stack/sheet/mineral/wood = 20, + /obj/item/stack/cable_coil = 10) tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) category = CAT_MISC diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 2051cb9e8fa..44665479192 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -24,13 +24,10 @@ if(ismovableatom(target)) tracker = new(target, CALLBACK(src, .proc/move_react)) - RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, .proc/orbiter_glide_size_update) - /datum/component/orbiter/UnregisterFromParent() var/atom/target = parent target.orbiters = null QDEL_NULL(tracker) - UnregisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE) /datum/component/orbiter/Destroy() var/atom/master = parent @@ -78,12 +75,6 @@ orbiter.transform = shift orbiter.SpinAnimation(rotation_speed, -1, clockwise, rotation_segments, parallel = FALSE) - if(ismob(orbiter)) - var/mob/M = orbiter - M.updating_glide_size = FALSE - if(ismovableatom(parent)) - var/atom/movable/AM = parent - orbiter.glide_size = AM.glide_size //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit orbiter.transform = initial_transform @@ -99,10 +90,6 @@ orbiters -= orbiter orbiter.stop_orbit(src) orbiter.orbiting = null - if(ismob(orbiter)) - var/mob/M = orbiter - M.updating_glide_size = TRUE - M.glide_size = 8 if(!refreshing && !length(orbiters) && !QDELING(src)) qdel(src) @@ -133,11 +120,6 @@ return end_orbit(orbiter) -/datum/component/orbiter/proc/orbiter_glide_size_update(datum/source, target) - for(var/orbiter in orbiters) - var/atom/movable/AM = orbiter - AM.glide_size = target - ///////////////////// /atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE) diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 1d851934477..3840845a4c4 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -32,14 +32,10 @@ var/atom/movable/AM = parent restore_position(M) unequip_buckle_inhands(M) - M.updating_glide_size = TRUE if(del_on_unbuckle_all && !AM.has_buckled_mobs()) qdel(src) /datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE) - var/atom/movable/AM = parent - M.set_glide_size(AM.glide_size) - M.updating_glide_size = FALSE handle_vehicle_offsets() /datum/component/riding/proc/handle_vehicle_layer() @@ -57,10 +53,8 @@ /datum/component/riding/proc/vehicle_moved(datum/source) var/atom/movable/AM = parent - AM.set_glide_size(DELAY_TO_GLIDE_SIZE(vehicle_move_delay)) - for(var/mob/M in AM.buckled_mobs) - ride_check(M) - M.set_glide_size(AM.glide_size) + for(var/i in AM.buckled_mobs) + ride_check(i) handle_vehicle_offsets() handle_vehicle_layer() diff --git a/code/datums/elements/waddling.dm b/code/datums/elements/waddling.dm index 0d654e85331..a7a141afcbd 100644 --- a/code/datums/elements/waddling.dm +++ b/code/datums/elements/waddling.dm @@ -16,9 +16,9 @@ /datum/element/waddling/proc/LivingWaddle(mob/living/target) if(target.incapacitated() || !(target.mobility_flags & MOBILITY_STAND)) return - Waddle() + Waddle(target) /datum/element/waddling/proc/Waddle(atom/movable/target) animate(target, pixel_z = 4, time = 0) - animate(target, pixel_z = 0, transform = turn(matrix(), pick(-12, 0, 12)), time=2) - animate(target, pixel_z = 0, transform = matrix(), time = 0) + animate(pixel_z = 0, transform = turn(matrix(), pick(-12, 0, 12)), time=2) + animate(pixel_z = 0, transform = matrix(), time = 0) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 1f38a7d9cf6..0f86aa5b9c1 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -129,8 +129,39 @@ /datum/quirk/phobia/post_add() var/mob/living/carbon/human/H = quirk_holder H.gain_trauma(new /datum/brain_trauma/mild/phobia(H.client.prefs.phobia), TRAUMA_RESILIENCE_ABSOLUTE) - + /datum/quirk/phobia/remove() var/mob/living/carbon/human/H = quirk_holder if(H) H.cure_trauma_type(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/quirk/needswayfinder + name = "Navigationally Challenged" + desc = "Lacking familiarity with certain stations, you start with a wayfinding pinpointer where available." + value = 0 + medical_record_text = "Patient demonstrates a keen ability to get lost." + + var/obj/item/pinpointer/wayfinding/wayfinder + var/where + +/datum/quirk/needswayfinder/on_spawn() + if(!GLOB.wayfindingbeacons.len) + return + var/mob/living/carbon/human/H = quirk_holder + + wayfinder = new /obj/item/pinpointer/wayfinding + var/list/slots = list( + "in your left pocket" = ITEM_SLOT_LPOCKET, + "in your right pocket" = ITEM_SLOT_RPOCKET, + "in your backpack" = ITEM_SLOT_BACKPACK + ) + where = H.equip_in_one_of_slots(wayfinder, slots, FALSE) || "at your feet" + +/datum/quirk/needswayfinder/post_add() + if(!GLOB.wayfindingbeacons.len) + return + if(where == "in your backpack") + var/mob/living/carbon/human/H = quirk_holder + SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H) + + to_chat(quirk_holder, "There is a pinpointer [where], which can help you find your way around. Click in-hand to activate.") diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 65f52ff11d7..9e166242106 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -167,21 +167,20 @@ /atom/movable/proc/Move_Pulled(atom/A) if(!pulling) - return FALSE + return if(pulling.anchored || pulling.move_resist > move_force || !pulling.Adjacent(src)) stop_pulling() - return FALSE + return if(isliving(pulling)) var/mob/living/L = pulling if(L.buckled && L.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it stop_pulling() - return FALSE + return if(A == loc && pulling.density) - return FALSE - var/move_dir = get_dir(pulling.loc, A) - if(!Process_Spacemove(move_dir)) - return FALSE - pulling.Move(get_step(pulling.loc, move_dir), move_dir, glide_size) + return + if(!Process_Spacemove(get_dir(pulling.loc, A))) + return + step(pulling, get_dir(pulling.loc, A)) return TRUE /mob/living/Move_Pulled(atom/A) @@ -210,18 +209,11 @@ if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1) //separated from our puller and not in the middle of a diagonal move. pulledby.stop_pulling() -/atom/movable/proc/set_glide_size(target = 8) - SEND_SIGNAL(src, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, target) - glide_size = target - - for(var/atom/movable/AM in buckled_mobs) - AM.set_glide_size(target) - //////////////////////////////////////// // Here's where we rewrite how byond handles movement except slightly different // To be removed on step_ conversion // All this work to prevent a second bump -/atom/movable/Move(atom/newloc, direct=0, glide_size_override = 0) +/atom/movable/Move(atom/newloc, direct=0) . = FALSE if(!newloc || newloc == loc) return @@ -267,7 +259,7 @@ //////////////////////////////////////// -/atom/movable/Move(atom/newloc, direct, glide_size_override = 0) +/atom/movable/Move(atom/newloc, direct) var/atom/movable/pullee = pulling var/turf/T = loc if(!moving_from_pull) @@ -276,10 +268,6 @@ return FALSE var/atom/oldloc = loc - //Early override for some cases like diagonal movement - if(glide_size_override) - set_glide_size(glide_size_override) - if(loc != newloc) if (!(direct & (direct - 1))) //Cardinal move . = ..() @@ -351,18 +339,13 @@ //puller and pullee more than one tile away or in diagonal position if(get_dist(src, pulling) > 1 || (moving_diagonally != SECOND_DIAG_STEP && ((pull_dir - 1) & pull_dir))) pulling.moving_from_pull = src - pulling.Move(T, get_dir(pulling, T), glide_size) //the pullee tries to reach our previous position + pulling.Move(T, get_dir(pulling, T)) //the pullee tries to reach our previous position pulling.moving_from_pull = null check_pulling() - //glide_size strangely enough can change mid movement animation and update correctly while the animation is playing - //This means that if you don't override it late like this, it will just be set back by the movement update that's called when you move turfs. - if(glide_size_override) - set_glide_size(glide_size_override) - last_move = direct setDir(direct) - if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc, direct, glide_size_override)) //movement failed due to buckled mob(s) + if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s) return FALSE //Called after a successful Move(). By this point, we've already moved @@ -638,16 +621,16 @@ SSthrowing.currentrun[src] = TT TT.tick() -/atom/movable/proc/handle_buckled_mob_movement(newloc, direct, glide_size_override) +/atom/movable/proc/handle_buckled_mob_movement(newloc,direct) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m - if(!buckled_mob.Move(newloc, direct, glide_size_override)) + if(!buckled_mob.Move(newloc, direct)) forceMove(buckled_mob.loc) last_move = buckled_mob.last_move inertia_dir = last_move buckled_mob.inertia_dir = last_move - return FALSE - return TRUE + return 0 + return 1 /atom/movable/proc/force_pushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction) return FALSE diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 8ac33432c98..1972915a318 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -12,8 +12,8 @@ density = FALSE state_open = TRUE circuit = /obj/item/circuitboard/machine/sleeper - ui_x = 375 - ui_y = 550 + ui_x = 250 + ui_y = 465 var/efficiency = 1 var/min_health = -25 diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index 0e7f012576b..430f931ecb2 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -1,14 +1,13 @@ /obj/machinery/computer/launchpad - name = "\improper launchpad control console" + name = "launchpad control console" desc = "Used to teleport objects to and from a launchpad." icon_screen = "teleport" icon_keyboard = "teleport_key" circuit = /obj/item/circuitboard/computer/launchpad_console - ui_x = 350 - ui_y = 470 + ui_x = 475 + ui_y = 260 - var/screen = "select" //current UI view - var/obj/machinery/launchpad/current_pad //current pad viewed on the screen + var/selected_id var/list/obj/machinery/launchpad/launchpads var/maximum_pads = 4 @@ -62,154 +61,66 @@ /obj/machinery/computer/launchpad/ui_data(mob/user) var/list/data = list() - if(!LAZYLEN(launchpads)) - data["screen"] = "empty" - return data - else - data["screen"] = screen - - if(screen == "select") - var/list/pad_list = list() - for(var/i in 1 to LAZYLEN(launchpads)) - if(pad_exists(i)) - var/obj/machinery/launchpad/pad = get_pad(i) - var/list/this_pad = list() - this_pad["name"] = pad.display_name - this_pad["id"] = i - if(pad.stat & NOPOWER) - this_pad["inactive"] = TRUE - pad_list += list(this_pad) - else - launchpads -= get_pad(i) - data["launchpads"] = pad_list - else if(screen == "control") + var/list/pad_list = list() + for(var/i in 1 to LAZYLEN(launchpads)) + if(pad_exists(i)) + var/obj/machinery/launchpad/pad = get_pad(i) + var/list/this_pad = list() + this_pad["name"] = pad.display_name + this_pad["id"] = i + if(pad.stat & NOPOWER) + this_pad["inactive"] = TRUE + pad_list += list(this_pad) + else + launchpads -= get_pad(i) + data["launchpads"] = pad_list + data["selected_id"] = selected_id + if(selected_id) + var/obj/machinery/launchpad/current_pad = launchpads[selected_id] + data["x"] = current_pad.x_offset + data["y"] = current_pad.y_offset + data["pad_name"] = current_pad.display_name + data["range"] = current_pad.range + data["selected_pad"] = current_pad if(QDELETED(current_pad) || (current_pad.stat & NOPOWER)) data["pad_active"] = FALSE return data data["pad_active"] = TRUE - data["pad_name"] = current_pad.display_name - data["abs_x"] = abs(current_pad.x_offset) - data["abs_y"] = abs(current_pad.y_offset) - data["north_south"] = current_pad.y_offset > 0 ? "N":"S" - data["east_west"] = current_pad.x_offset > 0 ? "E":"W" return data /obj/machinery/computer/launchpad/ui_act(action, params) if(..()) return + var/obj/machinery/launchpad/current_pad = launchpads[selected_id] switch(action) - if("return") - screen = "select" - . = TRUE if("select_pad") - current_pad = get_pad(text2num(params["id"])) - screen = "control" + selected_id = text2num(params["id"]) . = TRUE - if("right") - if(!current_pad.teleporting) - if(current_pad.x_offset < current_pad.range) - current_pad.x_offset++ - current_pad.update_indicator() + if("set_pos") + var/new_x = text2num(params["x"]) + var/new_y = text2num(params["y"]) + current_pad.set_offset(new_x, new_y) . = TRUE - - if("left") - if(!current_pad.teleporting) - if(current_pad.x_offset > (current_pad.range * -1)) - current_pad.x_offset-- - current_pad.update_indicator() + if("move_pos") + var/plus_x = text2num(params["x"]) + var/plus_y = text2num(params["y"]) + current_pad.set_offset( + x = current_pad.x_offset + plus_x, + y = current_pad.y_offset + plus_y + ) . = TRUE - - if("up") - if(!current_pad.teleporting) - if(current_pad.y_offset < current_pad.range) - current_pad.y_offset++ - current_pad.update_indicator() - . = TRUE - - if("down") - if(!current_pad.teleporting) - if(current_pad.y_offset > (current_pad.range * -1)) - current_pad.y_offset-- - current_pad.update_indicator() - . = TRUE - - if("up-right") - if(!current_pad.teleporting) - if(current_pad.y_offset < current_pad.range) - current_pad.y_offset++ - if(current_pad.x_offset < current_pad.range) - current_pad.x_offset++ - current_pad.update_indicator() - . = TRUE - - if("up-left") - if(!current_pad.teleporting) - if(current_pad.y_offset < current_pad.range) - current_pad.y_offset++ - if(current_pad.x_offset > (current_pad.range * -1)) - current_pad.x_offset-- - current_pad.update_indicator() - . = TRUE - - if("down-right") - if(!current_pad.teleporting) - if(current_pad.y_offset > (current_pad.range * -1)) - current_pad.y_offset-- - if(current_pad.x_offset < current_pad.range) - current_pad.x_offset++ - current_pad.update_indicator() - . = TRUE - - if("down-left") - if(!current_pad.teleporting) - if(current_pad.y_offset > (current_pad.range * -1)) - current_pad.y_offset-- - if(current_pad.x_offset > (current_pad.range * -1)) - current_pad.x_offset-- - current_pad.update_indicator() - . = TRUE - - if("reset") - if(!current_pad.teleporting) - current_pad.y_offset = 0 - current_pad.x_offset = 0 - current_pad.update_indicator() - . = TRUE - - if("manual_x") - if(!current_pad.teleporting) - var/new_x = input("Set the X offset (Horizontal)","X Offset", current_pad.x_offset) as null|num - if(!isnull(new_x)) - new_x = CLAMP(new_x, current_pad.range * -1, current_pad.range) - . = TRUE - current_pad.x_offset = new_x - current_pad.update_indicator() - . = TRUE - - if("manual_y") - if(!current_pad.teleporting) - var/new_y = input("Set the Y offset (Vertical)","Y Offset", current_pad.y_offset) as null|num - if(!isnull(new_y)) - new_y = CLAMP(new_y, current_pad.range * -1, current_pad.range) - . = TRUE - current_pad.y_offset = new_y - current_pad.update_indicator() - . = TRUE - if("rename") . = TRUE - var/new_name = stripped_input(usr, "How do you want to rename the launchpad?", "Launchpad", current_pad.display_name, 15) + var/new_name = params["name"] if(!new_name) return current_pad.display_name = new_name - if("remove") - . = TRUE if(usr && alert(usr, "Are you sure?", "Unlink Launchpad", "I'm Sure", "Abort") != "Abort") launchpads -= current_pad - current_pad = null - + selected_id = null + . = TRUE if("launch") teleport(usr, current_pad, TRUE) . = TRUE diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index c99c9229c76..40d9434ce3d 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -6,8 +6,8 @@ icon_keyboard = "security_key" req_access = list(ACCESS_ARMORY) circuit = /obj/item/circuitboard/computer/gulag_teleporter_console - ui_x = 455 - ui_y = 440 + ui_x = 350 + ui_y = 295 var/default_goal = 200 var/obj/machinery/gulag_teleporter/teleporter = null @@ -53,13 +53,19 @@ data["teleporter_location"] = "([teleporter.x], [teleporter.y], [teleporter.z])" data["teleporter_lock"] = teleporter.locked data["teleporter_state_open"] = teleporter.state_open + else + data["teleporter"] = null if(beacon) data["beacon"] = beacon data["beacon_location"] = "([beacon.x], [beacon.y], [beacon.z])" + else + data["beacon"] = null if(contained_id) data["id"] = contained_id data["id_name"] = contained_id.registered_name data["goal"] = contained_id.goal + else + data["id"] = null data["can_teleport"] = can_teleport return data @@ -75,36 +81,41 @@ switch(action) if("scan_teleporter") teleporter = findteleporter() + return TRUE if("scan_beacon") beacon = findbeacon() + return TRUE if("handle_id") if(contained_id) id_eject(usr) else id_insert(usr) + return TRUE if("set_goal") - var/new_goal = input("Set the amount of points:", "Points", contained_id.goal) as num|null + var/new_goal = text2num(params["value"]) if(!isnum(new_goal)) return if(!new_goal) new_goal = default_goal - if (new_goal > 1000) - to_chat(usr, "The entered amount of points is too large. Points have instead been set to the maximum allowed amount.") contained_id.goal = CLAMP(new_goal, 0, 1000) //maximum 1000 points + return TRUE if("toggle_open") if(teleporter.locked) to_chat(usr, "The teleporter must be unlocked first.") return teleporter.toggle_open() + return TRUE if("teleporter_lock") if(teleporter.state_open) to_chat(usr, "The teleporter must be closed first.") return teleporter.locked = !teleporter.locked + return TRUE if("teleport") if(!teleporter || !beacon) return addtimer(CALLBACK(src, .proc/teleport, usr), 5) + return TRUE /obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/scan_machinery() teleporter = findteleporter() diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 7ea353d48df..0a80da4abdc 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -37,6 +37,7 @@ var/poddoor = FALSE var/unres_sides = 0 //Unrestricted sides. A bitflag for which direction (if any) can open the door with no access var/safety_mode = FALSE ///Whether or not the airlock can be opened with bare hands while unpowered + var/can_crush = TRUE /// Whether or not the door can crush mobs. /obj/machinery/door/examine(mob/user) . = ..() @@ -165,7 +166,7 @@ . = ..() if(.) return - if(try_safety_unlock(user)) + if(try_safety_unlock(user)) return return try_to_activate_door(user) @@ -325,11 +326,15 @@ operating = FALSE air_update_turf(1) update_freelook_sight() + + if(!can_crush) + return TRUE + if(safe) CheckForMobs() else crush() - return 1 + return TRUE /obj/machinery/door/proc/CheckForMobs() if(locate(/mob/living) in get_turf(src)) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 71d282237a2..958caa573c2 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -216,6 +216,7 @@ /obj/machinery/door/firedoor/border_only icon = 'icons/obj/doors/edge_Doorfire.dmi' + can_crush = FALSE flags_1 = ON_BORDER_1 CanAtmosPass = ATMOS_PASS_PROC diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index c49a117e684..4f51b5dea14 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -98,6 +98,15 @@ else holder.icon_state = null +/obj/machinery/launchpad/proc/set_offset(x, y) + if(teleporting) + return + if(!isnull(x)) + x_offset = CLAMP(x, -range, range) + if(!isnull(y)) + y_offset = CLAMP(y, -range, range) + update_indicator() + /obj/machinery/launchpad/proc/doteleport(mob/user, sending) if(teleporting) to_chat(user, "ERROR: Launchpad busy.") @@ -315,7 +324,7 @@ /obj/item/launchpad_remote/ui_interact(mob/user, ui_key = "launchpad_remote", 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, "launchpad_remote", "Briefcase Launchpad Remote", 550, 400, master_ui, state) //width, height + ui = new(user, src, ui_key, "launchpad_remote", "Briefcase Launchpad Remote", 300, 240, master_ui, state) //width, height ui.set_style("syndicate") ui.open() @@ -330,10 +339,9 @@ return data data["pad_name"] = pad.display_name - data["abs_x"] = abs(pad.x_offset) - data["abs_y"] = abs(pad.y_offset) - data["north_south"] = pad.y_offset > 0 ? "N":"S" - data["east_west"] = pad.x_offset > 0 ? "E":"W" + data["range"] = pad.range + data["x"] = pad.x_offset + data["y"] = pad.y_offset return data /obj/item/launchpad_remote/proc/teleport(mob/user, obj/machinery/launchpad/pad) @@ -349,94 +357,33 @@ if(..()) return switch(action) - if("right") - if(!pad.teleporting) - if(pad.x_offset < pad.range) - pad.x_offset++ - pad.update_indicator() + if("set_pos") + var/new_x = text2num(params["x"]) + var/new_y = text2num(params["y"]) + pad.set_offset(new_x, new_y) . = TRUE - - if("left") - if(!pad.teleporting) - if(pad.x_offset > (pad.range * -1)) - pad.x_offset-- - pad.update_indicator() + if("move_pos") + var/plus_x = text2num(params["x"]) + var/plus_y = text2num(params["y"]) + pad.set_offset( + x = pad.x_offset + plus_x, + y = pad.y_offset + plus_y + ) . = TRUE - - if("up") - if(!pad.teleporting) - if(pad.y_offset < pad.range) - pad.y_offset++ - pad.update_indicator() - . = TRUE - - if("down") - if(!pad.teleporting) - if(pad.y_offset > (pad.range * -1)) - pad.y_offset-- - pad.update_indicator() - . = TRUE - - if("up-right") - if(!pad.teleporting) - if(pad.y_offset < pad.range) - pad.y_offset++ - if(pad.x_offset < pad.range) - pad.x_offset++ - pad.update_indicator() - . = TRUE - - if("up-left") - if(!pad.teleporting) - if(pad.y_offset < pad.range) - pad.y_offset++ - if(pad.x_offset > (pad.range * -1)) - pad.x_offset-- - pad.update_indicator() - . = TRUE - - if("down-right") - if(!pad.teleporting) - if(pad.y_offset > (pad.range * -1)) - pad.y_offset-- - if(pad.x_offset < pad.range) - pad.x_offset++ - pad.update_indicator() - . = TRUE - - if("down-left") - if(!pad.teleporting) - if(pad.y_offset > (pad.range * -1)) - pad.y_offset-- - if(pad.x_offset > (pad.range * -1)) - pad.x_offset-- - pad.update_indicator() - . = TRUE - - if("reset") - if(!pad.teleporting) - pad.y_offset = 0 - pad.x_offset = 0 - pad.update_indicator() - . = TRUE - if("rename") . = TRUE - var/new_name = stripped_input(usr, "How do you want to rename the launchpad?", "Launchpad", pad.display_name, 15) + var/new_name = params["name"] if(!new_name) return pad.display_name = new_name - if("remove") . = TRUE if(usr && alert(usr, "Are you sure?", "Unlink Launchpad", "I'm Sure", "Abort") != "Abort") pad = null - if("launch") sending = TRUE teleport(usr, pad) . = TRUE - if("pull") sending = FALSE teleport(usr, pad) diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index bc0692fec4f..1e4bcdcbbcd 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "navbeacon0-f" name = "navigation beacon" - desc = "A radio beacon used for bot navigation." + desc = "A radio beacon used for bot navigation and crew wayfinding." level = 1 // underfloor layer = LOW_OBJ_LAYER max_integrity = 500 @@ -18,28 +18,31 @@ var/location = "" // location response text var/list/codes // assoc. list of transponder codes var/codes_txt = "" // codes as set on map: "tag1;tag2" or "tag1=value;tag2=value" + var/wayfinding = FALSE req_one_access = list(ACCESS_ENGINE, ACCESS_ROBOTICS) /obj/machinery/navbeacon/Initialize() . = ..() + if(wayfinding) + if(!location) + var/obj/machinery/door/airlock/A = locate(/obj/machinery/door/airlock) in loc + if(A) + location = A.name + else + location = get_area(src) + codes_txt += "wayfinding=[location]" + set_codes() var/turf/T = loc hide(T.intact) - if(codes["patrol"]) - if(!GLOB.navbeacons["[z]"]) - GLOB.navbeacons["[z]"] = list() - GLOB.navbeacons["[z]"] += src //Register with the patrol list! - if(codes["delivery"]) - GLOB.deliverybeacons += src - GLOB.deliverybeacontags += location + + glob_lists_register(init=TRUE) /obj/machinery/navbeacon/Destroy() - if (GLOB.navbeacons["[z]"]) - GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one. - GLOB.deliverybeacons -= src + glob_lists_deregister() return ..() /obj/machinery/navbeacon/onTransitZ(old_z, new_z) @@ -67,6 +70,25 @@ else codes[e] = "1" +/obj/machinery/navbeacon/proc/glob_lists_deregister() + if (GLOB.navbeacons["[z]"]) + GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one. + GLOB.deliverybeacons -= src + GLOB.deliverybeacontags -= location + GLOB.wayfindingbeacons -= src + +/obj/machinery/navbeacon/proc/glob_lists_register(var/init=FALSE) + if(!init) + glob_lists_deregister() + if(codes["patrol"]) + if(!GLOB.navbeacons["[z]"]) + GLOB.navbeacons["[z]"] = list() + GLOB.navbeacons["[z]"] += src //Register with the patrol list! + if(codes["delivery"]) + GLOB.deliverybeacons += src + GLOB.deliverybeacontags += location + if(codes["wayfinding"]) + GLOB.wayfindingbeacons += src // called when turf state changes // hide the object if turf is intact @@ -170,6 +192,7 @@ Transponder Codes: