diff --git a/_build_dependencies.sh b/_build_dependencies.sh index 8cef5ce91b9..3aabf9e3758 100644 --- a/_build_dependencies.sh +++ b/_build_dependencies.sh @@ -1,9 +1,9 @@ # This file has all the information on what versions of libraries are thrown into the code # For dreamchecker -export SPACEMANDMM_TAG=suite-1.6 +export SPACEMANDMM_TAG=suite-1.7 # For TGUI export NODE_VERSION=12 # Byond Major -export BYOND_MAJOR=513 +export BYOND_MAJOR=514 # Byond Minor -export BYOND_MINOR=1528 +export BYOND_MINOR=1566 diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index e5f0121446b..52154089d66 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -5744,10 +5744,6 @@ /turf/space, /area/maintenance/auxsolarport) "atV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/chair/stool, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/driver_button{ @@ -5764,21 +5760,25 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "atW" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "atX" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "atY" = ( @@ -5968,14 +5968,14 @@ }, /area/maintenance/fore) "aus" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/conveyor_switch/oneway{ dir = 8; id = "garbage" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "aut" = ( @@ -6052,17 +6052,17 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "auB" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal/deliveryChute{ dir = 4 }, -/obj/effect/decal/warning_stripes/yellow, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "auC" = ( @@ -6080,8 +6080,8 @@ /turf/simulated/floor/plasteel, /area/maintenance/disposal) "auD" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -6451,12 +6451,12 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "avv" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/machinery/mineral/stacking_unit_console{ machinedir = 8; pixel_x = 32 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -6745,22 +6745,19 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "awb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/fore) "awd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -6768,12 +6765,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/fore) "awe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -6781,14 +6778,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/fore) "awf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -6800,6 +6797,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -6813,9 +6813,6 @@ }, /area/hallway/secondary/entry) "awi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -6828,15 +6825,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" }, /area/hallway/secondary/entry) "awj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -6845,45 +6842,45 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/secondary/entry) "awk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/secondary/entry) "awl" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/secondary/entry) "awm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall1"; location = "hall15" @@ -6894,16 +6891,19 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/secondary/entry) "awn" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ @@ -6929,20 +6929,20 @@ }, /area/hallway/secondary/entry) "awq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/fore2) "awr" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fore2) "aws" = ( @@ -7037,30 +7037,24 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "awB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/light/small{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "awC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/southeastcorner, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/disposal) "awD" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, /obj/machinery/conveyor{ dir = 4; id = "garbage" @@ -7074,6 +7068,12 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/disposal) "awE" = ( @@ -7091,8 +7091,8 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "awF" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/disposal) "awG" = ( @@ -7309,8 +7309,8 @@ /turf/simulated/wall/rust, /area/janitor) "axd" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/fore) "axe" = ( @@ -7388,17 +7388,14 @@ /turf/simulated/wall, /area/maintenance/fore2) "axn" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fore2) "axo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -7406,40 +7403,40 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/maintenance/fore2) -"axp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/fore2) +"axp" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/fore2) "axq" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fore2) "axr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/maintenance/fore2) -"axs" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/fore2) +"axs" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7447,14 +7444,14 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/fore2) "axt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7462,14 +7459,14 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/fore2) "axu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7477,14 +7474,12 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/fore2) "axv" = ( -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2"; - tag = null - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7499,12 +7494,14 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2"; + tag = null + }, /turf/simulated/floor/plasteel, /area/maintenance/fore2) "axw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7517,14 +7514,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/fore2) "axx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7541,14 +7538,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/maintenance/disposal) "axy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7561,12 +7558,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/disposal) -"axz" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/disposal) +"axz" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7580,12 +7577,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/maintenance/disposal) -"axA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/maintenance/disposal) +"axA" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7599,12 +7596,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/maintenance/disposal) -"axB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/maintenance/disposal) +"axB" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7615,14 +7612,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, /area/maintenance/disposal) "axC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7637,12 +7634,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/disposal) -"axD" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/disposal) +"axD" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -7652,15 +7649,14 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, /area/maintenance/disposal) "axE" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d2 = 8; icon_state = "0-8" @@ -7673,15 +7669,19 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "brown" }, /area/maintenance/disposal) "axF" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -8050,9 +8050,6 @@ /turf/simulated/wall, /area/crew_quarters/toilet) "ayw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -8068,6 +8065,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/fore) "ayx" = ( @@ -8115,13 +8115,13 @@ /turf/simulated/wall, /area/quartermaster/storage) "ayE" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/maintenance{ name = "Cargo Bay Maintenance"; req_access_txt = "31" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/fore2) "ayF" = ( @@ -8286,9 +8286,6 @@ }, /area/maintenance/fore) "azf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/warning_stripes/northwest, @@ -8297,6 +8294,9 @@ /obj/item/assembly/voice, /obj/item/clothing/head/welding, /obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/disposal) "azg" = ( @@ -8372,10 +8372,10 @@ /turf/simulated/floor/plasteel, /area/janitor) "azn" = ( -/obj/structure/disposalpipe/segment, /obj/effect/landmark{ name = "blobstart" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/fore) "azo" = ( @@ -8578,14 +8578,14 @@ }, /area/quartermaster/storage) "azK" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/sortjunction{ dir = 1; name = "Disposals Maint"; sortType = 1 }, -/obj/effect/decal/warning_stripes/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "brown" @@ -8926,8 +8926,8 @@ /turf/simulated/floor/plating, /area/janitor) "aAy" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -9002,10 +9002,6 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aAG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -9014,21 +9010,25 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/primary/fore) "aAH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -9049,10 +9049,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/toilet) "aAJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -9060,6 +9056,10 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/quartermaster/sorting) "aAK" = ( @@ -9191,7 +9191,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aAW" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/north, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -9199,6 +9198,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aAX" = ( @@ -9312,12 +9312,12 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aBm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -9465,27 +9465,27 @@ }, /area/janitor) "aBz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "whitegreen" }, /area/janitor) "aBA" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal, /obj/machinery/light/small, /obj/structure/extinguisher_cabinet{ pixel_x = 25 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel, /area/janitor) "aBB" = ( @@ -9518,15 +9518,14 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aBE" = ( -/obj/structure/disposalpipe/segment, /obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" }, /area/crew_quarters/bar) "aBF" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -9534,6 +9533,7 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/quartermaster/sorting) "aBG" = ( @@ -9571,9 +9571,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aBN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9587,6 +9584,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/fore2) "aBO" = ( @@ -9668,9 +9668,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aBZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9684,12 +9681,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/fore2) "aCd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9703,6 +9700,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -9770,9 +9770,6 @@ /turf/simulated/wall, /area/hydroponics/abandoned_garden) "aCm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9782,6 +9779,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/disposal) "aCn" = ( @@ -9823,7 +9823,6 @@ /turf/simulated/floor/plasteel, /area/janitor) "aCs" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor/shutters{ dir = 2; id_tag = "janitorshutters"; @@ -9836,11 +9835,12 @@ req_access_txt = "26" }, /obj/effect/decal/warning_stripes/south, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/janitor) "aCt" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -9857,9 +9857,6 @@ /turf/simulated/floor/plating, /area/crew_quarters/toilet) "aCv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -9869,6 +9866,9 @@ /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aCw" = ( @@ -9883,13 +9883,13 @@ /turf/simulated/floor/plating, /area/crew_quarters/toilet) "aCA" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/quartermaster/sorting) "aCB" = ( @@ -10350,10 +10350,6 @@ /turf/space, /area/space/nearstation) "aDD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -10373,34 +10369,38 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" }, /area/maintenance/fore) "aDE" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fore) "aDF" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" }, /area/maintenance/fore) "aDG" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "neutral" @@ -10420,22 +10420,19 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aDK" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/quartermaster/sorting) "aDL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10446,12 +10443,12 @@ name = "Cargo Bay Warehouse Maintenance"; req_access_txt = "31" }, -/turf/simulated/floor/plasteel, -/area/quartermaster/sorting) -"aDM" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/quartermaster/sorting) +"aDM" = ( /obj/structure/cable{ d1 = 2; d2 = 8; @@ -10466,6 +10463,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aDN" = ( @@ -10477,10 +10477,6 @@ /turf/simulated/floor/plating, /area/quartermaster/sorting) "aDO" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10492,6 +10488,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aDP" = ( @@ -10756,10 +10756,10 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aEw" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -10817,12 +10817,12 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/toilet) "aEC" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/sortjunction{ dir = 8; name = "Custodial Junction"; sortType = 22 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -10847,16 +10847,16 @@ }, /area/hallway/primary/fore) "aEG" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/quartermaster/sorting) "aEH" = ( @@ -10871,10 +10871,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aEI" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - sortType = 2 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10882,13 +10878,16 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + sortType = 2 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" }, /area/quartermaster/sorting) "aEJ" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -10901,12 +10900,10 @@ icon_state = "1-4" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/fore) "aEK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -10922,6 +10919,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -10942,10 +10942,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/office) "aEM" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, /obj/structure/window/reinforced{ dir = 4 }, @@ -10953,6 +10949,10 @@ dir = 8 }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, /turf/simulated/floor/plasteel, /area/quartermaster/office) "aEN" = ( @@ -11019,8 +11019,8 @@ }, /area/maintenance/fore) "aET" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -11344,8 +11344,8 @@ }, /area/quartermaster/sorting) "aFE" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/quartermaster/sorting) "aFF" = ( @@ -11897,11 +11897,11 @@ }, /area/crew_quarters/bar) "aGG" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal, /obj/structure/sign/poster/official/high_class_martini{ pixel_y = 32 }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -11923,7 +11923,6 @@ }, /area/hallway/primary/fore) "aGI" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -11937,6 +11936,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -12325,7 +12325,6 @@ /turf/simulated/floor/plasteel, /area/hydroponics/abandoned_garden) "aHH" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -12333,6 +12332,7 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -12429,26 +12429,16 @@ }, /area/crew_quarters/sleep) "aHR" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/newscaster{ pixel_x = 32 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" }, /area/crew_quarters/bar) "aHS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "Bar Junction"; - sortType = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -12461,6 +12451,16 @@ icon_state = "1-4" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + name = "Bar Junction"; + sortType = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -12506,9 +12506,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/fore) "aHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -12520,6 +12517,9 @@ name = "Bar Office Maintenance"; req_access_txt = "25" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -12617,24 +12617,15 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aIg" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "red" }, -/area/hallway/primary/fore) +/area/security/brig) "aIh" = ( /obj/machinery/conveyor/southeast{ id = "cargodelivery" @@ -12735,25 +12726,25 @@ /turf/simulated/floor/plating, /area/maintenance/auxsolarport) "aIt" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, /obj/structure/sign/deathsposal{ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" }, /area/maintenance/incinerator) "aIu" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" @@ -13033,10 +13024,6 @@ }, /area/crew_quarters/sleep) "aIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -13047,6 +13034,10 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -13059,7 +13050,6 @@ /turf/space, /area/space/nearstation) "aIU" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -13071,6 +13061,7 @@ }, /obj/effect/decal/warning_stripes/arrow, /obj/effect/decal/warning_stripes/yellow/partial, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -13128,10 +13119,10 @@ }, /area/crew_quarters/bar) "aJb" = ( -/obj/structure/disposalpipe/segment, /obj/structure/extinguisher_cabinet{ pixel_x = 25 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -13242,11 +13233,11 @@ }, /area/quartermaster/storage) "aJp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -13461,7 +13452,6 @@ /turf/simulated/floor/plating, /area/maintenance/auxsolarport) "aJN" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -13470,6 +13460,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/northwest, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/incinerator) "aJO" = ( @@ -13769,8 +13760,8 @@ }, /area/crew_quarters/sleep) "aKn" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -13836,7 +13827,6 @@ }, /area/hallway/primary/fore) "aKu" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -13848,6 +13838,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -13896,15 +13887,23 @@ /turf/simulated/floor/plating, /area/quartermaster/office) "aKA" = ( -/obj/item/twohanded/required/kirbyplants, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" }, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "whitepurplecorner" + icon_state = "neutralfull" }, -/area/medical/research) +/area/security/brig) "aKB" = ( /obj/structure/chair, /turf/simulated/floor/plasteel{ @@ -13913,9 +13912,12 @@ }, /area/quartermaster/storage) "aKC" = ( -/obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -13943,7 +13945,6 @@ }, /area/quartermaster/storage) "aKG" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -13951,6 +13952,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -13969,11 +13971,11 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aKL" = ( -/obj/structure/disposalpipe/segment, /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -14178,7 +14180,6 @@ }, /area/maintenance/incinerator) "aLk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -14186,6 +14187,7 @@ tag = "" }, /obj/effect/decal/warning_stripes/west, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -14418,10 +14420,6 @@ }, /area/crew_quarters/sleep) "aLL" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/machinery/alarm{ dir = 4; pixel_x = -24 @@ -14430,6 +14428,10 @@ layer = 3.3; pixel_y = -27 }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -14589,7 +14591,6 @@ }, /area/quartermaster/office) "aMb" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8; initialize_directions = 11 @@ -14598,6 +14599,7 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -15015,7 +15017,6 @@ }, /area/crew_quarters/sleep) "aNg" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -15026,6 +15027,7 @@ dir = 8; pixel_x = 24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -15043,7 +15045,6 @@ }, /area/crew_quarters/bar) "aNj" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 4 }, @@ -15051,6 +15052,7 @@ dir = 8; pixel_x = 24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redyellowfull" }, @@ -15153,8 +15155,8 @@ }, /area/quartermaster/storage) "aNt" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "browncorner" @@ -15170,9 +15172,6 @@ }, /area/quartermaster/storage) "aNv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -15184,6 +15183,9 @@ name = "Supply Break Room"; req_access_txt = "31" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aNw" = ( @@ -15520,7 +15522,6 @@ }, /area/crew_quarters/bar) "aOd" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -15531,6 +15532,7 @@ dir = 10 }, /obj/effect/decal/warning_stripes/west, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -16076,7 +16078,6 @@ }, /area/maintenance/incinerator) "aPt" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -16084,6 +16085,7 @@ }, /obj/machinery/atmospherics/binary/valve, /obj/effect/decal/warning_stripes/southwest, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -16539,9 +16541,10 @@ }, /area/quartermaster/storage) "aQo" = ( -/obj/structure/table/wood, -/obj/machinery/computer/med_data/laptop, -/turf/simulated/floor/wood, +/obj/structure/chair/comfy/lime{ + dir = 4 + }, +/turf/simulated/floor/carpet, /area/medical/psych) "aQp" = ( /obj/machinery/door/firedoor, @@ -16595,7 +16598,6 @@ }, /area/crew_quarters/bar) "aQu" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 8 }, @@ -16604,6 +16606,7 @@ pixel_x = -28 }, /obj/effect/decal/warning_stripes/southwestcorner, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aQv" = ( @@ -16751,7 +16754,6 @@ }, /area/maintenance/incinerator) "aQQ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, @@ -16760,6 +16762,7 @@ /obj/item/clipboard, /obj/item/folder/yellow, /obj/item/reagent_containers/food/pill/patch/silver_sulf, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "caution" }, @@ -17111,7 +17114,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/fore) "aRv" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -17121,6 +17123,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -17135,13 +17138,13 @@ }, /area/crew_quarters/bar/atrium) "aRx" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redyellowfull" }, @@ -17309,6 +17312,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "white" @@ -17458,8 +17464,8 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "aSq" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/southwest, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aSr" = ( @@ -17506,11 +17512,11 @@ /turf/simulated/floor/plating, /area/quartermaster/storage) "aSx" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/unary/outlet_injector/on, /turf/simulated/floor/plating, /area/maintenance/incinerator) "aSy" = ( @@ -17521,9 +17527,9 @@ /turf/simulated/floor/engine, /area/maintenance/incinerator) "aSz" = ( -/obj/structure/disposalpipe/segment, /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/visible, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/incinerator) "aSA" = ( @@ -17743,10 +17749,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/theatre) "aSV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -17760,6 +17762,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/crew_quarters/theatre) "aSW" = ( @@ -17796,9 +17802,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/theatre) "aSY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -17815,12 +17818,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/crew_quarters/theatre) -"aSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/crew_quarters/theatre) +"aSZ" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -17834,13 +17837,15 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" }, /area/crew_quarters/sleep) "aTa" = ( -/obj/structure/disposalpipe/junction, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -17864,6 +17869,7 @@ icon_state = "1-4" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/junction, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -17962,7 +17968,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/office) "aTj" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -17975,6 +17980,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding."; dir = 4; @@ -18013,10 +18019,10 @@ }, /area/crew_quarters/bar) "aTq" = ( +/obj/effect/spawner/window/reinforced, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/quartermaster/storage) "aTr" = ( @@ -18343,14 +18349,14 @@ }, /area/security/execution) "aTS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/space, /area/space/nearstation) "aTT" = ( @@ -18369,13 +18375,13 @@ }, /area/atmos) "aTU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/space, /area/space/nearstation) "aTV" = ( @@ -18686,15 +18692,15 @@ }, /area/crew_quarters/theatre) "aUA" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/machinery/firealarm{ dir = 4; pixel_x = 28 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "cafeteria" }, @@ -18719,13 +18725,13 @@ }, /area/crew_quarters/sleep) "aUD" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -19513,7 +19519,6 @@ }, /area/crew_quarters/theatre) "aWd" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -19521,6 +19526,7 @@ tag = "" }, /obj/item/twohanded/required/kirbyplants, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -19575,10 +19581,10 @@ }, /area/crew_quarters/bar) "aWl" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_pump/on{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ @@ -19587,10 +19593,6 @@ }, /area/hallway/primary/fore) "aWm" = ( -/obj/structure/disposalpipe/junction{ - dir = 1; - icon_state = "pipe-j2" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -19603,6 +19605,10 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -19782,10 +19788,6 @@ }, /area/quartermaster/storage) "aWB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -19805,6 +19807,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -19822,9 +19828,6 @@ /turf/space, /area/space) "aWD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -19837,15 +19840,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" }, /area/quartermaster/qm) "aWE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -19858,16 +19861,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/quartermaster/qm) "aWF" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -19880,6 +19882,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -20004,13 +20010,13 @@ }, /area/security/permabrig) "aWR" = ( +/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/trunk{ dir = 4 }, /obj/structure/disposaloutlet{ dir = 8 }, -/obj/structure/lattice/catwalk, /turf/space, /area/maintenance/incinerator) "aWS" = ( @@ -20361,7 +20367,6 @@ }, /area/crew_quarters/sleep) "aXA" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -20374,6 +20379,7 @@ icon_state = "2-8"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -20625,7 +20631,6 @@ }, /area/hallway/primary/fore) "aYd" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -20633,6 +20638,7 @@ tag = "" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -21009,9 +21015,6 @@ }, /area/maintenance/fore) "aYS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -21024,6 +21027,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/fore) "aYT" = ( @@ -21174,20 +21180,13 @@ }, /area/hallway/primary/fore) "aZe" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "dark" }, -/area/hallway/primary/fore) +/area/bridge) "aZf" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/glass, @@ -21322,10 +21321,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/office) "aZt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d2 = 2; icon_state = "0-2" @@ -21339,6 +21334,10 @@ c_tag = "Cargo Office SouthWest"; dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" @@ -21738,35 +21737,35 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "aZY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, /obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/space, /area/space/nearstation) "aZZ" = ( -/obj/structure/disposalpipe/segment, /obj/item/radio/intercom{ dir = 4; pixel_x = 28 }, /obj/structure/chair/stool/bar, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redyellowfull" }, /area/crew_quarters/bar) "baa" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 9 }, /obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/space, /area/space/nearstation) "bab" = ( @@ -22327,9 +22326,6 @@ /turf/simulated/floor/plating, /area/quartermaster/miningdock) "bbj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -22347,6 +22343,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/quartermaster/qm) "bbk" = ( @@ -22987,11 +22986,11 @@ }, /area/crew_quarters/kitchen) "bcw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, /turf/simulated/floor/plasteel, /area/crew_quarters/bar) "bcx" = ( @@ -24557,20 +24556,14 @@ /turf/simulated/floor/plasteel, /area/engine/gravitygenerator) "bfR" = ( -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "north bump"; - pixel_y = 24 - }, -/obj/structure/table/glass, /obj/machinery/alarm{ dir = 4; pixel_x = -24 }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "whitered" @@ -25136,12 +25129,6 @@ /obj/item/clothing/accessory/stethoscope, /obj/item/storage/belt/medical, /obj/item/clothing/glasses/hud/health, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitered" @@ -25152,25 +25139,38 @@ pixel_y = 26 }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitered" }, /area/security/medbay) "bhd" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_x = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitered" }, /area/security/medbay) "bhf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/photocopier/faxmachine/longrange{ department = "Magistrate's Office" }, /obj/structure/table/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, @@ -25840,15 +25840,9 @@ dir = 4 }, /obj/structure/cable{ - d1 = 2; + d1 = 4; d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" + icon_state = "4-8" }, /turf/simulated/floor/plasteel{ dir = 8; @@ -26706,23 +26700,12 @@ /obj/item/clothing/gloves/color/latex, /obj/item/healthanalyzer, /obj/item/reagent_containers/spray/cleaner, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitered" }, /area/security/medbay) "bka" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, /obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -26730,6 +26713,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -26747,6 +26739,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -26780,6 +26775,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitered" @@ -26803,6 +26801,10 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -26827,14 +26829,25 @@ }, /area/security/brig) "bkf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "red" + dir = 8; + icon_state = "vault" }, -/area/security/brig) +/area/bridge) "bkg" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/south, @@ -27332,6 +27345,12 @@ /area/crew_quarters/kitchen) "blp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -27686,6 +27705,7 @@ pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -27762,9 +27782,6 @@ }, /area/security/main) "bmd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, @@ -28135,9 +28152,9 @@ /turf/simulated/floor/plating, /area/atmos) "bmO" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -28424,12 +28441,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redcorner" }, /area/security/brig) "bnt" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d2 = 4; icon_state = "0-4" @@ -28439,6 +28456,7 @@ name = "west bump"; pixel_x = -24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -29091,9 +29109,7 @@ }, /area/security/prisonershuttle) "boN" = ( -/obj/machinery/computer/security{ - network = list("SS13","Mining Outpost") - }, +/obj/machinery/computer/security, /obj/item/radio/intercom{ pixel_y = 28 }, @@ -29131,21 +29147,15 @@ }, /area/security/prisonershuttle) "boR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" }, /area/security/brig) "boS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -29161,19 +29171,15 @@ }, /area/security/brig) "boT" = ( -/obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "red" + icon_state = "vault" }, -/area/security/main) +/area/bridge) "boU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -29193,9 +29199,6 @@ }, /area/security/main) "boV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/storage/secure/briefcase, /turf/simulated/floor/plasteel{ @@ -29218,9 +29221,6 @@ }, /area/security/prisonershuttle) "boX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly, /turf/simulated/floor/plasteel{ @@ -29229,9 +29229,6 @@ }, /area/security/main) "boY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/photocopier, /turf/simulated/floor/plasteel{ dir = 8; @@ -29239,9 +29236,6 @@ }, /area/security/main) "boZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -29249,29 +29243,30 @@ tag = "" }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" }, /area/security/main) "bpa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/security/main) "bpb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -29294,14 +29289,14 @@ req_access_txt = "58" }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/hos) "bpc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -29314,14 +29309,14 @@ icon_state = "2-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/hos) "bpd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -29329,14 +29324,14 @@ tag = "" }, /obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/hos) "bpe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -29358,14 +29353,14 @@ /obj/item/folder/red, /obj/item/stamp/hos, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/hos) "bpf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -29378,21 +29373,24 @@ /obj/effect/landmark/start{ name = "Head of Security" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/hos) "bpg" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -30108,7 +30106,8 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + dir = 8; + icon_state = "bluecorner" }, /area/hallway/primary/central) "bqx" = ( @@ -30193,9 +30192,6 @@ /turf/simulated/wall/rust, /area/maintenance/starboard) "bqJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ @@ -30237,23 +30233,19 @@ }, /area/security/prisonershuttle) "bqQ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" }, /area/security/brig) "bqR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -30272,15 +30264,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/security/brig) "bqS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -30293,15 +30286,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" }, /area/security/brig) "bqT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -30330,16 +30323,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "redfull"; tag = null }, /area/security/main) "bqU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -30352,6 +30344,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "red" @@ -30451,6 +30447,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "red" @@ -30537,9 +30534,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/computer/security{ - network = list("SS13","Mining Outpost") - }, +/obj/machinery/computer/security, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -30548,13 +30543,13 @@ }, /area/security/hos) "bri" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -30964,18 +30959,21 @@ }, /area/hallway/primary/central) "bsg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/light, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + dir = 8; + icon_state = "neutralfull" }, /area/hallway/primary/central) "bsh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -31093,10 +31091,6 @@ /turf/simulated/floor/plasteel, /area/quartermaster/miningdock) "bsD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -31109,25 +31103,26 @@ icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/security/prisonershuttle) "bsE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" }, /area/security/prisonershuttle) "bsF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/phone, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -31136,15 +31131,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" }, /area/security/prisonershuttle) "bsG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -31157,15 +31152,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" }, /area/security/prisonershuttle) "bsH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -31189,15 +31184,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, /area/security/prisonershuttle) "bsI" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -31210,6 +31204,11 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + name = "Brig Physisian Junction"; + sortType = 24 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -31225,6 +31224,7 @@ req_access_txt = "63"; req_one_access_txt = null }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -31756,7 +31756,6 @@ /turf/simulated/floor/plasteel, /area/security/prisonershuttle) "btU" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -31773,6 +31772,7 @@ dir = 1 }, /obj/effect/decal/warning_stripes/north, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/security/prisonershuttle) "btV" = ( @@ -31856,18 +31856,19 @@ /turf/simulated/floor/plating, /area/security/prisonershuttle) "bub" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + name = "Captain's Junction"; + sortType = 18 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, -/area/security/brig) +/area/hallway/primary/central) "buc" = ( /turf/simulated/wall, /area/security/interrogation) @@ -31918,6 +31919,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -31990,15 +31992,15 @@ }, /area/security/hos) "bun" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/machinery/light, /obj/machinery/alarm{ dir = 1; pixel_y = -24 }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "vault" @@ -32450,13 +32452,13 @@ /turf/simulated/floor/plasteel, /area/security/prisonershuttle) "bvm" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/security/prisonershuttle) "bvn" = ( @@ -32475,6 +32477,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -32492,6 +32497,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -32506,6 +32514,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -32523,6 +32534,9 @@ dir = 1; pixel_y = -24 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -32564,6 +32578,9 @@ dir = 8 }, /obj/effect/spawner/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/security/interrogation) "bvx" = ( @@ -32577,6 +32594,10 @@ id = 1; pixel_x = 25 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -33231,7 +33252,6 @@ }, /area/security/nuke_storage) "bwy" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -33244,6 +33264,7 @@ icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "red" }, @@ -33273,6 +33294,7 @@ name = "Security Blast Door"; opacity = 0 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -33393,9 +33415,6 @@ }, /area/turret_protected/ai) "bwL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 1; @@ -33674,9 +33693,7 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/computer/security{ - network = list("SS13","Mining Outpost") - }, +/obj/machinery/computer/security, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkred" @@ -33886,7 +33903,6 @@ }, /area/security/prisonershuttle) "bxK" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -33904,6 +33920,7 @@ opacity = 0 }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, @@ -33953,6 +33970,9 @@ icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -34627,7 +34647,10 @@ /turf/space, /area/space) "bzg" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -34678,7 +34701,6 @@ /turf/simulated/floor/plating, /area/security/brig) "bzm" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -34856,9 +34878,6 @@ }, /area/engine/gravitygenerator) "bzF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; @@ -35486,6 +35505,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -36673,26 +36693,31 @@ /turf/simulated/floor/plating, /area/security/brig) "bCL" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - name = "HoS Junction"; - sortType = 18 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "darkblue" }, -/area/hallway/primary/starboard) +/area/bridge) "bCM" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +/obj/machinery/camera{ + c_tag = "Security Hallway South"; + dir = 8; + network = list("SS13","Security") }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" }, -/area/hallway/primary/starboard) +/area/security/brig) "bCN" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable, @@ -37201,16 +37226,15 @@ }, /area/hallway/primary/port) "bDD" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Psych Foyer" }, -/obj/machinery/light/small{ - dir = 1 +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitebluecorner" }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/psych) "bDE" = ( /obj/item/twohanded/required/kirbyplants, /obj/machinery/status_display{ @@ -37582,6 +37606,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -37590,6 +37618,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -37613,6 +37644,9 @@ name = "Bridge Blast Doors"; opacity = 0 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -37644,10 +37678,10 @@ }, /area/hallway/primary/central) "bEr" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -37667,10 +37701,10 @@ icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "redcorner" + dir = 8; + icon_state = "red" }, -/area/hallway/primary/starboard) +/area/security/brig) "bEx" = ( /turf/simulated/wall/r_wall, /area/security/warden) @@ -37766,13 +37800,12 @@ }, /area/engine/gravitygenerator) "bEH" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/item/twohanded/required/kirbyplants, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitebluecorner" }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/psych) "bEI" = ( /turf/simulated/floor/plasteel{ dir = 8; @@ -39110,9 +39143,6 @@ }, /area/storage/primary) "bHf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -39126,6 +39156,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "bHg" = ( @@ -39313,6 +39346,7 @@ req_access_txt = "20" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -39479,25 +39513,34 @@ /obj/structure/table/wood, /obj/item/taperecorder, /obj/item/restraints/handcuffs, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/security/detectives_office) "bHN" = ( /obj/structure/filingcabinet/security, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/security/detectives_office) "bHO" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -39549,11 +39592,12 @@ /area/hallway/primary/starboard) "bHU" = ( /obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" }, -/area/hallway/primary/starboard) +/area/security/brig) "bHV" = ( /obj/effect/decal/warning_stripes/east, /obj/structure/cable{ @@ -39636,7 +39680,6 @@ }, /area/security/brig) "bHZ" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -39649,6 +39692,11 @@ icon_state = "2-8"; tag = "" }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + name = "Security Junction"; + sortType = 8 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -40154,8 +40202,10 @@ pixel_x = 8; pixel_y = 26 }, -/obj/structure/disposalpipe/trunk, /obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -40169,6 +40219,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -40316,12 +40370,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, /area/security/detectives_office) "bJz" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -40784,21 +40838,6 @@ icon_state = "yellow" }, /area/engine/break_room) -"bKt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" - }, -/area/hallway/primary/central) "bKu" = ( /obj/structure/rack, /obj/item/circuitboard/teleporter_hub{ @@ -40817,14 +40856,18 @@ }, /area/storage/tech) "bKv" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" +/obj/machinery/status_display{ + pixel_x = 32 }, -/area/crew_quarters/sleep) +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "redcorner" + }, +/area/hallway/primary/starboard) "bKw" = ( /obj/structure/sign/electricshock, /turf/simulated/wall, @@ -40880,9 +40923,6 @@ /turf/simulated/floor/plasteel, /area/engine/break_room) "bKD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, @@ -41064,10 +41104,6 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -41085,10 +41121,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -41171,16 +41203,16 @@ }, /area/storage/tools) "bLk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/storage/tools) "bLl" = ( @@ -41235,7 +41267,6 @@ }, /area/security/detectives_office) "bLt" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "carpet" }, @@ -41275,18 +41306,17 @@ }, /area/security/brig) "bLy" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/alarm{ dir = 4; pixel_x = -24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" }, /area/hallway/primary/starboard) "bLz" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 4 }, @@ -41323,9 +41353,7 @@ }, /area/security/brig) "bLD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" @@ -41375,7 +41403,6 @@ }, /area/security/processing) "bLK" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -41562,12 +41589,12 @@ }, /area/hallway/primary/fore) "bMc" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Primary Security Hallway North"; dir = 4; pixel_y = -22 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -41810,11 +41837,15 @@ }, /area/storage/tech) "bMD" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 5 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/obj/item/pen/multi, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/psych) "bME" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -42091,7 +42122,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -42177,7 +42207,6 @@ }, /area/storage/tools) "bNk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -42189,6 +42218,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -42243,6 +42273,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -42256,7 +42287,6 @@ }, /area/security/detectives_office) "bNt" = ( -/obj/structure/disposalpipe/segment, /obj/structure/chair/office/dark{ dir = 8 }, @@ -42323,9 +42353,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "bND" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/chair{ dir = 1 }, @@ -42336,15 +42363,13 @@ /area/security/processing) "bNE" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 1; + icon_state = "pipe-c" }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/turf/simulated/floor/plasteel{ + icon_state = "cult" }, -/turf/simulated/floor/plasteel, -/area/security/processing) +/area/magistrateoffice) "bNF" = ( /obj/machinery/computer/secure_data, /turf/simulated/floor/plasteel{ @@ -42361,11 +42386,6 @@ }, /area/security/processing) "bNH" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - name = "Brig Equipment Storage"; - sortType = 8 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -42380,9 +42400,6 @@ }, /area/security/brig) "bNI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/spawner/window/reinforced, /obj/structure/cable{ d2 = 2; @@ -42994,7 +43011,6 @@ /obj/structure/chair/comfy/brown, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -43072,9 +43088,9 @@ }, /area/storage/tools) "bPf" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/storage/tools) "bPg" = ( @@ -43156,6 +43172,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -43169,7 +43186,6 @@ }, /area/security/detectives_office) "bPp" = ( -/obj/structure/disposalpipe/segment, /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, /turf/simulated/floor/plasteel{ @@ -43188,9 +43204,7 @@ }, /area/security/detectives_office) "bPr" = ( -/obj/machinery/computer/security{ - network = list("SS13","Mining Outpost") - }, +/obj/machinery/computer/security, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -43246,6 +43260,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/security/processing) "bPw" = ( @@ -43259,6 +43276,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/security/processing) "bPx" = ( @@ -43267,12 +43287,13 @@ d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/plasteel, -/area/security/processing) -"bPy" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/security/processing) +"bPy" = ( +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -43284,16 +43305,16 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" }, /area/security/brig) "bPA" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/light{ dir = 4 }, @@ -43752,6 +43773,9 @@ icon_state = "1-8" }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -43844,11 +43868,11 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/kitchen) "bQz" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -44035,7 +44059,6 @@ /obj/item/stamp/captain, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQR" = ( @@ -44092,13 +44115,13 @@ /turf/simulated/floor/plating, /area/storage/tools) "bQX" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass{ name = "Auxiliary Tool Storage"; req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/storage/tools) "bRa" = ( @@ -44126,6 +44149,7 @@ req_access_txt = "4" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -44146,29 +44170,24 @@ /turf/simulated/floor/plating, /area/security/detectives_office) "bRc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/window/reinforced, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/simulated/floor/plating, -/area/security/detectives_office) +/turf/simulated/floor/plasteel, +/area/maintenance/starboard2) "bRd" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" }, /area/hallway/primary/starboard) "bRe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/east, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -44176,12 +44195,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/security/brig) -"bRf" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/security/brig) +"bRf" = ( /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -44190,12 +44209,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/security/brig) -"bRg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/security/brig) +"bRg" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -44216,24 +44235,23 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/security/brig) -"bRh" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/security/brig) +"bRh" = ( /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" }, /area/security/brig) "bRi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -44246,6 +44264,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -44258,6 +44279,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" @@ -45044,7 +45069,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bSR" = ( @@ -45109,11 +45133,11 @@ }, /area/hallway/primary/starboard) "bSY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/junction{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "cautioncorner" @@ -45151,9 +45175,6 @@ /turf/simulated/floor/plasteel, /area/storage/tools) "bTf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -45162,26 +45183,34 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" }, /area/hallway/primary/starboard) "bTg" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "redcorner" +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" }, -/area/hallway/primary/starboard) +/turf/simulated/floor/plating, +/area/maintenance/starboard2) "bTh" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" @@ -46220,7 +46249,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bUY" = ( @@ -46428,7 +46456,6 @@ }, /area/hallway/primary/starboard) "bVm" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -46608,11 +46635,11 @@ }, /area/hallway/primary/port) "bVD" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -47237,7 +47264,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -47290,9 +47316,6 @@ }, /area/hallway/primary/starboard) "bXf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -47301,6 +47324,9 @@ pixel_y = -24 }, /obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -47325,38 +47351,37 @@ /turf/simulated/floor/plasteel, /area/lawoffice) "bXh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, /area/hallway/primary/starboard) "bXi" = ( +/obj/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/light, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, /area/hallway/primary/starboard) "bXj" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, /obj/machinery/power/apc{ name = "south bump"; pixel_y = -24 }, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -47370,9 +47395,6 @@ }, /area/hallway/primary/starboard) "bXl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -47381,6 +47403,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "redcorner" }, @@ -47395,7 +47420,7 @@ /turf/simulated/floor/plating, /area/turret_protected/aisat) "bXn" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 4 }, /turf/simulated/floor/plasteel{ @@ -47442,7 +47467,7 @@ }, /area/hallway/primary/port) "bXB" = ( -/obj/structure/disposalpipe/junction{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ @@ -47463,12 +47488,12 @@ }, /area/hallway/primary/starboard) "bXD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Primary Security Hallway" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -47848,7 +47873,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -47971,6 +47995,7 @@ name = "Internal Affairs Office"; req_access_txt = "38" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -47989,21 +48014,23 @@ req_access_txt = "74" }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/magistrateoffice) "bYQ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/window/reinforced, -/obj/machinery/door/poddoor/shutters{ - density = 0; - dir = 2; - icon_state = "open"; - id_tag = "magistrate"; - name = "Magistrate Privacy Shutters"; - opacity = 0 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/turf/simulated/floor/plating, -/area/magistrateoffice) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) "bYR" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor/shutters{ @@ -48688,7 +48715,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cao" = ( @@ -48783,13 +48809,13 @@ }, /area/crew_quarters/courtroom) "caz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Primary Security Hallway East"; dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "redcorner" }, @@ -48869,6 +48895,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -48878,6 +48908,10 @@ department = "Magistrate's Office" }, /obj/structure/table/wood, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -48893,14 +48927,13 @@ }, /area/lawoffice) "caM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/machinery/computer/prisoner{ req_access = null; req_access_txt = "2" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, @@ -49259,6 +49292,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -49672,10 +49708,6 @@ /obj/effect/landmark/start{ name = "Captain" }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "ccj" = ( @@ -49688,9 +49720,6 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -49711,10 +49740,6 @@ /obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -49955,6 +49980,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -50529,7 +50555,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -50682,10 +50707,6 @@ }, /area/lawoffice) "cep" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -50694,6 +50715,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -50890,8 +50914,11 @@ /turf/simulated/floor/bluegrid, /area/tcommsat/chamber) "ceQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + name = "Chemistry Junction"; + sortType = 11 }, /turf/simulated/floor/plasteel{ dir = 6; @@ -51391,7 +51418,6 @@ req_access_txt = "20" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/crew_quarters/captain/bedroom) "cfR" = ( @@ -51487,7 +51513,6 @@ }, /area/lawoffice) "cgd" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -51496,6 +51521,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -51545,10 +51571,6 @@ /turf/simulated/floor/carpet, /area/magistrateoffice) "cgj" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -51564,6 +51586,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, @@ -51855,7 +51881,10 @@ }, /area/toxins/xenobiology) "cha" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -52048,9 +52077,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plating, /area/teleporter) "chy" = ( @@ -52067,10 +52093,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /turf/simulated/floor/plating, /area/teleporter) "chz" = ( @@ -52108,7 +52130,6 @@ }, /area/crew_quarters/courtroom) "chG" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -52189,7 +52210,6 @@ }, /area/lawoffice) "chO" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -52198,6 +52218,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -52783,7 +52804,6 @@ req_access_txt = "17" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/teleporter) "ciV" = ( @@ -52941,7 +52961,6 @@ }, /area/crew_quarters/courtroom) "cjk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -52954,6 +52973,7 @@ req_access_txt = "38" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/starboard2) "cjl" = ( @@ -53267,7 +53287,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/teleporter) "cka" = ( @@ -53340,7 +53359,6 @@ }, /area/library) "cki" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4; initialize_directions = 11 @@ -53349,6 +53367,7 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -53515,20 +53534,12 @@ }, /obj/structure/table, /obj/item/hand_tele, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "ckC" = ( /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "ckD" = ( @@ -53540,10 +53551,6 @@ req_access_txt = "17" }, /obj/effect/decal/warning_stripes/east, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "ckE" = ( @@ -53555,9 +53562,6 @@ /area/security/range) "ckF" = ( /obj/machinery/teleport/hub, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plating, /area/teleporter) "ckG" = ( @@ -53566,9 +53570,6 @@ id_tag = "teleaccessshutter"; name = "Teleporter Access Shutters" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel, /area/teleporter) "ckH" = ( @@ -53576,36 +53577,27 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" + icon_state = "white" }, -/area/hallway/primary/central) +/area/medical/research) "ckI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) +"ckJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/primary/central) -"ckJ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/junction{ dir = 1; - icon_state = "pipe-j2" + icon_state = "whiteblue" }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) +/area/medical/medbay) "ckK" = ( /obj/structure/chair{ dir = 4 @@ -53672,10 +53664,6 @@ }, /area/crew_quarters/courtroom) "ckR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -53689,20 +53677,15 @@ /area/maintenance/starboard2) "ckS" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 8; + icon_state = "pipe-c" }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whiteblue" }, -/turf/simulated/floor/plasteel, -/area/maintenance/starboard2) +/area/medical/medbay) "ckT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53712,9 +53695,6 @@ /turf/simulated/floor/plating, /area/maintenance/starboard2) "ckU" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53732,12 +53712,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/starboard2) "ckV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53753,12 +53734,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard2) -"ckW" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/starboard2) +"ckW" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53771,12 +53752,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard2) -"ckX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/starboard2) +"ckX" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53792,12 +53773,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard2) -"ckY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/starboard2) +"ckY" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -53811,13 +53792,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "ckZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -53836,6 +53816,10 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/starboard2) "cla" = ( @@ -54088,7 +54072,6 @@ }, /area/maintenance/port) "clA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, @@ -54376,10 +54359,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "cma" = ( @@ -54395,10 +54374,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, /turf/simulated/floor/plasteel, /area/teleporter) "cmb" = ( @@ -54419,10 +54394,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, /turf/simulated/floor/plasteel, /area/teleporter) "cmc" = ( @@ -54433,10 +54404,6 @@ tag = "" }, /obj/effect/decal/warning_stripes/east, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "cmd" = ( @@ -54514,15 +54481,10 @@ }, /area/crew_quarters/courtroom) "cmn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" }, -/turf/simulated/floor/plating, -/area/maintenance/starboard2) +/area/hallway/primary/aft) "cmo" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance{ @@ -54541,17 +54503,18 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "cmt" = ( -/obj/structure/closet/wardrobe/grey, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/psych) "cmv" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/starboard) "cmx" = ( @@ -55134,9 +55097,6 @@ }, /area/crew_quarters/courtroom) "cnO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -55148,7 +55108,6 @@ /turf/simulated/wall, /area/crew_quarters/locker) "cnR" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -55158,6 +55117,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "cnS" = ( @@ -55580,17 +55540,15 @@ }, /area/crew_quarters/courtroom) "coQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "dark" + dir = 8; + icon_state = "neutralfull" }, -/area/crew_quarters/locker) +/area/crew_quarters/fitness) "coR" = ( /obj/structure/closet/secure_closet/personal, /turf/simulated/floor/plasteel{ @@ -55626,11 +55584,11 @@ }, /area/maintenance/starboard2) "coW" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -56481,7 +56439,6 @@ }, /area/crew_quarters/courtroom) "cqv" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -56565,7 +56522,6 @@ }, /area/maintenance/starboard) "cqD" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -56577,6 +56533,7 @@ initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/starboard2) "cqE" = ( @@ -57245,7 +57202,6 @@ }, /area/hallway/primary/central) "crV" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -57289,6 +57245,10 @@ }, /area/crew_quarters/locker) "csa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -57316,6 +57276,9 @@ /area/maintenance/starboard2) "csc" = ( /obj/machinery/door/airlock/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "csd" = ( @@ -57604,10 +57567,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel, /area/teleporter) "csM" = ( @@ -57753,34 +57712,39 @@ /turf/simulated/floor/plasteel, /area/bridge/meeting_room) "ctb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment{ - dir = 1; + dir = 8; icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" + icon_state = "white" }, -/area/hallway/primary/central) +/area/medical/chemistry) "ctc" = ( /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "ctd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" + icon_state = "whitebluefull" }, -/area/hallway/primary/central) +/area/medical/medbay) "ctf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ @@ -57803,24 +57767,29 @@ }, /area/hallway/primary/central) "ctj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "neutralcorner" + icon_state = "white" }, -/area/hallway/primary/central) +/area/medical/medbay) "ctk" = ( /obj/machinery/vending/cola, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/bridge/meeting_room) "ctl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -57886,10 +57855,6 @@ }, /area/medical/medbay) "cts" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/universal, /turf/simulated/floor/plasteel{ dir = 8; @@ -57911,13 +57876,13 @@ }, /area/crew_quarters/courtroom) "ctv" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "ctw" = ( @@ -58379,6 +58344,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -58521,7 +58487,6 @@ }, /area/crew_quarters/locker) "cuC" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4; initialize_directions = 11 @@ -58541,10 +58506,6 @@ }, /area/crew_quarters/locker) "cuF" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -58556,12 +58517,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/starboard2) "cuG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -58575,12 +58537,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard2) -"cuH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/starboard2) +"cuH" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -58593,12 +58555,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/maintenance/starboard2) -"cuI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/maintenance/starboard2) +"cuI" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -58612,6 +58574,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "cuJ" = ( @@ -58627,9 +58592,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/locker) "cuK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -58642,16 +58604,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" }, /area/crew_quarters/fitness) "cuL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -58664,6 +58625,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -58912,10 +58877,6 @@ }, /area/medical/research) "cvm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1; initialize_directions = 11 @@ -58923,6 +58884,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -59234,16 +59198,12 @@ }, /area/medical/chemistry) "cvV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass{ name = "Cabin" }, /turf/simulated/floor/plasteel, /area/crew_quarters/locker) "cvW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/light, /turf/simulated/floor/plasteel{ dir = 8; @@ -59251,9 +59211,6 @@ }, /area/hallway/primary/central) "cvX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/alarm{ dir = 1; pixel_y = -24 @@ -59269,9 +59226,6 @@ /turf/simulated/floor/plasteel, /area/gateway) "cvZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -59284,9 +59238,6 @@ }, /area/crew_quarters/locker) "cwa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/airlock/public/glass, /turf/simulated/floor/plasteel{ dir = 1; @@ -59294,18 +59245,26 @@ }, /area/crew_quarters/locker) "cwc" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "white" }, -/area/crew_quarters/locker) +/area/medical/medbay) "cwd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/landmark{ name = "lightsout" }, @@ -59314,15 +59273,6 @@ icon_state = "neutralfull" }, /area/crew_quarters/locker) -"cwe" = ( -/obj/structure/disposalpipe/junction, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/crew_quarters/locker) "cwf" = ( /obj/structure/closet/wardrobe/grey, /obj/machinery/ai_status_display{ @@ -59358,6 +59308,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -59375,6 +59328,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -59778,9 +59734,6 @@ }, /area/assembly/showroom) "cxd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ @@ -59940,7 +59893,6 @@ /turf/simulated/floor/plasteel, /area/medical/research) "cxv" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -59955,7 +59907,6 @@ }, /area/crew_quarters/locker) "cxx" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -59970,6 +59921,7 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -60025,7 +59977,6 @@ }, /area/crew_quarters/fitness) "cxD" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8; initialize_directions = 11 @@ -60528,10 +60479,10 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/locker/locker_toilet) "cyG" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -60680,7 +60631,6 @@ }, /area/crew_quarters/locker) "cyR" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -60818,21 +60768,6 @@ icon_state = "neutralcorner" }, /area/crew_quarters/fitness) -"czc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/crew_quarters/fitness) "czd" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable{ @@ -61884,9 +61819,6 @@ "cBh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -62230,10 +62162,6 @@ }, /area/crew_quarters/locker) "cBT" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -62824,7 +62752,6 @@ }, /area/crew_quarters/locker) "cDp" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -63513,9 +63440,15 @@ }, /area/hallway/primary/central) "cFd" = ( -/obj/item/rack_parts, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "cFe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -63592,18 +63525,21 @@ }, /area/crew_quarters/sleep) "cFo" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/crew_quarters/sleep) +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) "cFp" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, @@ -63707,7 +63643,6 @@ }, /area/crew_quarters/fitness) "cFy" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -63722,6 +63657,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -64588,12 +64524,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/simulated/floor/wood, -/area/maintenance/starboard) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "cGI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64612,25 +64550,14 @@ }, /obj/machinery/door/airlock/maintenance, /turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/psych) "cGJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplecorner" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/research) "cGK" = ( /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ @@ -64648,10 +64575,6 @@ }, /area/hallway/primary/central) "cGM" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -64664,6 +64587,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/starboard) "cGN" = ( @@ -64721,7 +64648,6 @@ }, /area/crew_quarters/sleep) "cGS" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -65027,22 +64953,6 @@ icon_state = "purplecorner" }, /area/hallway/primary/central) -"cHF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" - }, -/area/hallway/primary/central) "cHG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -65050,11 +64960,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - name = "Research Junction"; - sortType = 20 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "purplecorner" @@ -65072,9 +64977,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "purplecorner" @@ -65087,10 +64989,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "purplecorner" @@ -65112,10 +65010,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -65128,9 +65022,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -65156,10 +65047,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/sortjunction{ +/obj/structure/disposalpipe/segment{ dir = 4; - name = "CMO's Junction"; - sortType = 20 + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" @@ -65254,19 +65144,7 @@ icon_state = "neutral" }, /area/crew_quarters/sleep) -"cIe" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/crew_quarters/sleep) "cIg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, @@ -65276,9 +65154,6 @@ }, /area/crew_quarters/sleep) "cIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/light, /obj/machinery/firealarm{ dir = 1; @@ -65290,9 +65165,6 @@ }, /area/crew_quarters/sleep) "cIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable, /obj/machinery/power/apc{ name = "south bump"; @@ -65308,53 +65180,38 @@ }, /area/crew_quarters/sleep) "cIj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, /area/crew_quarters/sleep) "cIk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, /area/crew_quarters/sleep) "cIl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/light, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, /area/crew_quarters/sleep) "cIm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/airlock/glass{ name = "Cabin" }, /turf/simulated/floor/plasteel, /area/crew_quarters/sleep) "cIn" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "neutralcorner" + icon_state = "whitepurplecorner" }, -/area/crew_quarters/fitness) +/area/medical/research) "cIo" = ( -/obj/structure/disposalpipe/junction{ - dir = 1; - icon_state = "pipe-j2" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -65363,6 +65220,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -65396,7 +65254,6 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/fitness) "cIs" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -65410,6 +65267,7 @@ /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -65594,16 +65452,21 @@ /turf/simulated/floor/plating, /area/medical/research) "cIX" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/window/reinforced, -/turf/simulated/floor/plating, -/area/medical/research) -"cIY" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/south, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) +"cIY" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplecorner" + }, +/area/medical/research) "cIZ" = ( /obj/machinery/status_display, /turf/simulated/wall, @@ -65628,9 +65491,6 @@ /turf/simulated/wall, /area/medical/research) "cJc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/airlock/public/glass, /turf/simulated/floor/plasteel{ dir = 8; @@ -65682,9 +65542,9 @@ /turf/simulated/wall, /area/medical/medbay) "cJj" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/south, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/medbay) "cJk" = ( @@ -65766,9 +65626,9 @@ }, /area/medical/medbay2) "cJv" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -65963,7 +65823,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/electrical) "cJY" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, @@ -66145,7 +66004,6 @@ }, /area/medical/research) "cKx" = ( -/obj/structure/disposalpipe/segment, /obj/structure/chair, /turf/simulated/floor/plasteel{ dir = 1; @@ -66153,12 +66011,12 @@ }, /area/medical/research) "cKy" = ( +/obj/item/twohanded/required/kirbyplants, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "whitepurplecorner" + icon_state = "dark" }, -/area/medical/research) +/area/medical/cmo) "cKz" = ( /obj/structure/chair, /obj/effect/landmark/start{ @@ -66211,10 +66069,9 @@ "cKE" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "whitepurplecorner" + icon_state = "white" }, -/area/medical/research) +/area/medical/genetics) "cKF" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -66244,12 +66101,6 @@ /obj/structure/sign/science, /turf/simulated/wall, /area/medical/research) -"cKL" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "bluecorner" - }, -/area/hallway/primary/aft) "cKM" = ( /obj/structure/table, /obj/item/storage/box/bodybags, @@ -66353,20 +66204,28 @@ "cKY" = ( /turf/simulated/wall, /area/medical/medbay) -"cKZ" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical, -/turf/simulated/floor/plating, -/area/maintenance/starboard) "cLa" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, +/obj/machinery/door/poddoor/shutters{ + density = 0; + dir = 2; + icon_state = "open"; + id_tag = "psychoffice"; + name = "Privacy Shutters"; + opacity = 0 + }, +/obj/effect/spawner/window/reinforced, +/obj/machinery/door/firedoor, /turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/psych) "cLb" = ( -/obj/structure/table_frame, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/obj/machinery/door/airlock/medical{ + id_tag = "psychfoyer"; + name = "Psych Office"; + req_access_txt = "64" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/wood, +/area/medical/psych) "cLd" = ( /obj/structure/cable{ d2 = 4; @@ -66417,24 +66276,21 @@ }, /area/medical/medbay2) "cLg" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, /area/medical/medbay2) "cLh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -66445,13 +66301,12 @@ name = "Medbay Maintenance"; req_access_txt = "5" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/medical/medbay2) "cLi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -66464,6 +66319,10 @@ icon_state = "1-4" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cLk" = ( @@ -66501,9 +66360,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cLm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -66517,6 +66373,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "cLn" = ( @@ -66890,11 +66749,11 @@ "cMe" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "white" + dir = 1; + icon_state = "whitepurplecorner" }, /area/medical/research) "cMf" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, @@ -66906,9 +66765,23 @@ }, /area/medical/research) "cMg" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-y" }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -66918,28 +66791,31 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/medical/research) +/turf/simulated/floor/plating, +/area/medical/morgue) "cMj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, -/obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/research) "cMk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, -/turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/medical/research) +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel, +/area/maintenance/apmaint) "cMl" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4; @@ -67273,10 +67149,6 @@ /turf/simulated/floor/plating, /area/toxins/xenobiology) "cNl" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/structure/window/reinforced{ dir = 8 }, @@ -67285,6 +67157,10 @@ pixel_y = 32 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -67372,12 +67248,12 @@ }, /area/toxins/xenobiology) "cNr" = ( -/obj/structure/disposalpipe/segment, /obj/effect/spawner/window/reinforced, /obj/structure/cable{ d2 = 8; icon_state = "0-8" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/toxins/xenobiology) "cNs" = ( @@ -67516,25 +67392,13 @@ }, /area/medical/research) "cNE" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "whitepurple" + dir = 1; + icon_state = "neutral" }, -/area/medical/research) +/area/maintenance/apmaint) "cNF" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -67572,19 +67436,16 @@ }, /area/medical/research) "cNI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "whitepurple" + icon_state = "redyellowfull" }, -/area/medical/research) +/area/maintenance/apmaint) "cNJ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, @@ -67630,7 +67491,6 @@ /turf/simulated/floor/plasteel, /area/medical/research) "cNN" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -67651,7 +67511,6 @@ }, /area/hallway/primary/aft) "cNP" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -67703,6 +67562,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "whiteblue" @@ -67715,12 +67578,14 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/medbay) "cNV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -67728,6 +67593,11 @@ dir = 1; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -67792,25 +67662,35 @@ /turf/space, /area/space/nearstation) "cOa" = ( -/obj/structure/chair/comfy/lime{ - dir = 4 - }, /obj/machinery/door_control{ id = "psychoffice"; name = "Privacy Shutters Control"; - pixel_x = -25 + pixel_x = -25; + pixel_y = 5 }, -/turf/simulated/floor/carpet, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Psychiatrist" + }, +/obj/machinery/door_control{ + id = "psychfoyer"; + layer = 3.3; + name = "Psych Foyer Doors"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = -6 + }, +/turf/simulated/floor/wood, /area/medical/psych) "cOb" = ( -/obj/machinery/light{ - dir = 1 +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 5 }, -/obj/item/radio/intercom{ - dir = 1; - pixel_y = 25 - }, -/turf/simulated/floor/carpet, +/obj/item/pen/multi, +/turf/simulated/floor/wood, /area/medical/psych) "cOc" = ( /obj/machinery/firealarm{ @@ -67821,8 +67701,7 @@ pixel_x = 28; pixel_y = 30 }, -/obj/structure/bed/psych, -/turf/simulated/floor/carpet, +/turf/simulated/floor/wood, /area/medical/psych) "cOd" = ( /obj/structure/table, @@ -68412,7 +68291,6 @@ }, /area/medical/research) "cPo" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -68420,7 +68298,6 @@ }, /area/medical/research) "cPq" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, @@ -68436,14 +68313,14 @@ }, /area/medical/research) "cPs" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "whitepurple" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/medical/research) +/turf/simulated/floor/plasteel{ + icon_state = "redyellowfull" + }, +/area/maintenance/apmaint) "cPt" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -68482,20 +68359,7 @@ icon_state = "neutralfull" }, /area/hallway/primary/aft) -"cPz" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - name = "Chemistry Junction"; - sortType = 13 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bluecorner" - }, -/area/hallway/primary/aft) "cPA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, @@ -68504,18 +68368,13 @@ /turf/simulated/wall/r_wall, /area/maintenance/starboardsolar) "cPD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "whiteblue" }, /area/medical/medbay) "cPE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -68525,13 +68384,13 @@ /area/medical/medbay) "cPF" = ( /obj/structure/disposalpipe/segment{ - dir = 2; + dir = 8; icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "whiteblue" + icon_state = "redyellowfull" }, -/area/medical/medbay) +/area/maintenance/apmaint) "cPH" = ( /obj/effect/landmark{ name = "lightsout" @@ -68541,13 +68400,13 @@ }, /area/medical/medbay) "cPI" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68584,12 +68443,12 @@ }, /area/medical/medbay) "cPM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68604,17 +68463,17 @@ name = "Privacy Shutters"; opacity = 0 }, +/obj/machinery/door/firedoor, /turf/simulated/floor/plating, /area/medical/psych) "cPQ" = ( -/turf/simulated/floor/carpet, +/turf/simulated/floor/wood, /area/medical/psych) "cPR" = ( -/obj/item/twohanded/required/kirbyplants, /obj/structure/sign/poster/random{ pixel_x = 32 }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/wood, /area/medical/psych) "cPS" = ( /obj/effect/spawner/window/reinforced, @@ -68717,9 +68576,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cQb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ id_tag = "medbayfoyer"; @@ -68729,6 +68585,9 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whiteblue" }, @@ -69031,14 +68890,14 @@ }, /area/toxins/xenobiology) "cQI" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -69237,12 +69096,11 @@ }, /area/medical/research) "cRc" = ( -/obj/effect/spawner/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/medical/research) +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel, +/area/hallway/primary/aft) "cRd" = ( /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ @@ -69252,12 +69110,10 @@ /area/medical/research) "cRe" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "white" + icon_state = "redyellowfull" }, -/area/medical/research) +/area/maintenance/apmaint) "cRf" = ( /obj/structure/cable{ d1 = 2; @@ -69278,24 +69134,21 @@ }, /area/medical/research) "cRh" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 - }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, /area/hallway/primary/aft) "cRi" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 8; + icon_state = "pipe-c" }, -/obj/effect/spawner/window/reinforced, -/turf/simulated/floor/plating, -/area/medical/medbay) +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/maintenance/apmaint) "cRj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ dir = 8; @@ -69311,10 +69164,7 @@ }, /area/medical/medbay) "cRl" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -69368,13 +69218,15 @@ dir = 10; initialize_directions = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/wood, /area/medical/psych) "cRr" = ( -/obj/structure/closet/secure_closet/psychiatrist, -/obj/item/clipboard{ - pixel_x = -5 +/obj/item/radio/intercom{ + dir = 1; + pixel_x = 28 }, +/obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/wood, /area/medical/psych) "cRt" = ( @@ -69471,7 +69323,6 @@ }, /area/crew_quarters/fitness) "cRB" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -69485,6 +69336,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -69829,9 +69681,9 @@ }, /area/medical/research) "cSn" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -69860,7 +69712,6 @@ }, /area/toxins/xenobiology) "cSr" = ( -/obj/structure/disposalpipe/segment, /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, @@ -69936,8 +69787,8 @@ }, /area/medical/medbay) "cSB" = ( -/obj/structure/disposalpipe/segment, /obj/item/twohanded/required/kirbyplants, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitebluecorner" @@ -69993,9 +69844,9 @@ }, /area/medical/medbay) "cSH" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -70013,7 +69864,6 @@ /turf/simulated/floor/wood, /area/medical/psych) "cSJ" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, @@ -70026,6 +69876,10 @@ /obj/machinery/ai_status_display{ pixel_x = 32 }, +/obj/structure/closet/secure_closet/psychiatrist, +/obj/item/clipboard{ + pixel_x = -5 + }, /turf/simulated/floor/wood, /area/medical/psych) "cSL" = ( @@ -70300,9 +70154,6 @@ }, /area/toxins/xenobiology) "cTq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/spawner/window/reinforced, /obj/structure/cable{ d1 = 1; @@ -70311,6 +70162,9 @@ tag = "" }, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/toxins/xenobiology) "cTr" = ( @@ -70461,7 +70315,6 @@ }, /area/toxins/xenobiology) "cTB" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Research Division Access"; @@ -70470,10 +70323,10 @@ /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "cTC" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Research Division Access"; @@ -70627,15 +70480,15 @@ /turf/simulated/wall, /area/toxins/lab) "cTS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 2; - id_tag = "researchdesk1"; - name = "Research Desk Shutters" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/turf/simulated/floor/plating, -/area/toxins/lab) +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/aft) "cTT" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -70653,7 +70506,6 @@ }, /area/medical/research) "cTV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 8 }, @@ -70666,7 +70518,6 @@ }, /area/hallway/primary/aft) "cTW" = ( -/obj/structure/disposalpipe/segment, /obj/structure/extinguisher_cabinet{ pixel_x = 28 }, @@ -70711,13 +70562,13 @@ /turf/simulated/floor/plasteel, /area/medical/medbay) "cUb" = ( -/obj/structure/disposalpipe/segment, /obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ dir = 2; id_tag = "chemdesk1"; name = "Chemistry Desk Shutters" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/medical/medbay) "cUc" = ( @@ -70782,14 +70633,9 @@ network = list("Medical","SS13","Security") }, /obj/structure/cable, -/turf/simulated/floor/wood, -/area/medical/psych) -"cUh" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start{ - name = "Psychiatrist" - }, -/turf/simulated/floor/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/simulated/floor/carpet, /area/medical/psych) "cUi" = ( /obj/machinery/light{ @@ -70799,7 +70645,7 @@ dir = 8; pixel_x = 24 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/carpet, /area/medical/psych) "cUj" = ( /obj/machinery/light{ @@ -70866,11 +70712,11 @@ }, /area/medical/medbay3) "cUq" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -70901,10 +70747,6 @@ }, /area/medical/medbay3) "cUu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -70931,26 +70773,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutral" - }, -/area/maintenance/starboard) +/turf/simulated/floor/plasteel, +/area/hallway/primary/aft) "cUw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -70967,9 +70792,6 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cUx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -70986,9 +70808,6 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cUy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71007,9 +70826,6 @@ }, /area/maintenance/starboard) "cUA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71022,12 +70838,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) -"cUB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plating, +/area/maintenance/starboard) +"cUB" = ( /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71043,9 +70859,6 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cUC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71065,9 +70878,6 @@ }, /area/maintenance/starboard) "cUD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71084,9 +70894,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cUE" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -71105,10 +70912,6 @@ }, /area/crew_quarters/fitness) "cUF" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -71116,6 +70919,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -71281,15 +71085,15 @@ }, /area/toxins/xenobiology) "cUV" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -71311,10 +71115,10 @@ }, /area/toxins/xenobiology) "cUY" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/northwest, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "cUZ" = ( @@ -71333,10 +71137,12 @@ }, /area/toxins/xenobiology) "cVc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/northeast, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-y" + }, /turf/simulated/floor/plasteel, -/area/medical/research) +/area/hallway/primary/aft) "cVd" = ( /obj/structure/closet/firecloset, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -71345,11 +71151,9 @@ }, /area/medical/research) "cVe" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal, /obj/effect/decal/warning_stripes/northeast, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -71457,17 +71261,13 @@ /turf/simulated/wall, /area/toxins/lab) "cVs" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "cVt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -71536,7 +71336,6 @@ /turf/simulated/floor/plating, /area/toxins/lab) "cVA" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "purplecorner" @@ -71599,12 +71398,19 @@ /obj/effect/landmark/start{ name = "Chemist" }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/medical/chemistry) "cVI" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/chem_dispenser, /obj/effect/decal/warning_stripes/east, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, /turf/simulated/floor/plasteel, /area/medical/chemistry) "cVJ" = ( @@ -71676,18 +71482,11 @@ }, /area/medical/medbay) "cVQ" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_y = 5 - }, -/obj/item/pen/multi, -/turf/simulated/floor/wood, +/turf/simulated/floor/carpet, /area/medical/psych) "cVR" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/obj/item/storage/briefcase, -/turf/simulated/floor/wood, +/obj/structure/bed/psych, +/turf/simulated/floor/carpet, /area/medical/psych) "cVS" = ( /obj/structure/cable{ @@ -71758,17 +71557,16 @@ }, /area/assembly/robotics) "cWb" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/effect/decal/warning_stripes/north, +/obj/machinery/light{ + dir = 1; + on = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/hallway/secondary/exit) "cWc" = ( /turf/simulated/wall/rust, /area/medical/medbay3) @@ -71776,11 +71574,11 @@ /turf/simulated/wall, /area/medical/medbay3) "cWe" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -72031,12 +71829,12 @@ }, /area/toxins/xenobiology) "cWD" = ( -/obj/structure/disposalpipe/segment, /obj/effect/spawner/window/reinforced, /obj/structure/cable{ d2 = 4; icon_state = "0-4" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/toxins/xenobiology) "cWE" = ( @@ -72112,10 +71910,12 @@ }, /area/toxins/xenobiology) "cWH" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/east, +/obj/effect/decal/warning_stripes/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, -/area/medical/research) +/area/hallway/secondary/exit) "cWI" = ( /turf/simulated/floor/plasteel{ dir = 8; @@ -72180,6 +71980,7 @@ /obj/item/stock_parts/matter_bin, /obj/item/stock_parts/micro_laser, /obj/effect/decal/warning_stripes/east, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -72305,14 +72106,13 @@ }, /area/medical/research) "cXc" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/southwest, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "cXd" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Central Hallway South 1"; dir = 8 @@ -72344,14 +72144,15 @@ /area/medical/chemistry) "cXh" = ( /obj/effect/decal/warning_stripes/south, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/chemistry) "cXi" = ( +/obj/effect/decal/warning_stripes/southeast, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel, /area/medical/chemistry) "cXj" = ( @@ -72542,8 +72343,8 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cXF" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redbluefull" }, @@ -72714,10 +72515,6 @@ }, /area/maintenance/port) "cYh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/closet/wardrobe/yellow, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -72739,9 +72536,11 @@ /area/medical/research) "cYk" = ( /obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plasteel, -/area/medical/research) +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/secondary/exit) "cYl" = ( /obj/structure/closet/l3closet/scientist, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -72762,6 +72561,7 @@ /obj/item/stock_parts/manipulator, /obj/item/stock_parts/manipulator, /obj/effect/decal/warning_stripes/east, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -72858,7 +72658,6 @@ }, /area/medical/research) "cYB" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Research Division Access"; @@ -72867,10 +72666,10 @@ /obj/effect/decal/warning_stripes/north, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "cYC" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "orangecorner" }, @@ -72902,6 +72701,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -72973,9 +72773,9 @@ }, /area/medical/morgue) "cYO" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -73097,7 +72897,6 @@ }, /area/maintenance/starboard) "cZd" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -73222,7 +73021,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/electrical) "cZr" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Research Division Access"; @@ -73248,6 +73046,7 @@ /obj/item/stack/sheet/glass, /obj/item/stack/sheet/glass, /obj/effect/decal/warning_stripes/southeast, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurple" @@ -73291,9 +73090,6 @@ /turf/simulated/wall, /area/medical/research) "cZy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/west, /obj/effect/decal/warning_stripes/east, @@ -73416,6 +73212,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -73452,6 +73249,7 @@ "cZM" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" @@ -73483,7 +73281,6 @@ }, /area/medical/medbay3) "cZR" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, @@ -73507,7 +73304,6 @@ }, /area/medical/medbay3) "cZT" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -73539,9 +73335,9 @@ }, /area/medical/medbay3) "cZV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -73807,6 +73603,9 @@ dir = 1; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -73870,9 +73669,9 @@ /turf/simulated/wall/rust, /area/toxins/xenobiology) "daE" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -73908,11 +73707,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/lab) "daI" = ( +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -73968,9 +73771,6 @@ }, /area/hallway/primary/aft) "daO" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 - }, /obj/structure/sign/chemistry{ pixel_x = 32; pixel_y = 32 @@ -73980,9 +73780,6 @@ }, /area/hallway/primary/aft) "daP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/paper_bin, /turf/simulated/floor/plasteel{ @@ -73990,17 +73787,18 @@ }, /area/hallway/primary/aft) "daQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" }, -/obj/effect/spawner/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ dir = 8; - id_tag = "chemdesk2"; - name = "Chemistry Desk Shutters" + icon_state = "neutralfull" }, -/turf/simulated/floor/plating, -/area/medical/chemistry) +/area/hallway/secondary/exit) "daR" = ( /obj/item/crowbar, /obj/effect/decal/cleanable/dirt, @@ -74100,9 +73898,9 @@ }, /area/medical/cmo) "dbb" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -74117,9 +73915,6 @@ }, /area/maintenance/starboardsolar) "dbd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/chem_dispenser, /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, @@ -74142,6 +73937,7 @@ }, /area/medical/medbay) "dbj" = ( +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whitepurple" }, @@ -74187,7 +73983,6 @@ /turf/simulated/floor/plating, /area/maintenance/apmaint) "dbq" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -74298,6 +74093,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/apmaint) "dbD" = ( @@ -74326,7 +74122,6 @@ }, /area/maintenance/gambling_den) "dbF" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ id_tag = null; @@ -74334,6 +74129,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -74371,6 +74167,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dbJ" = ( @@ -74422,24 +74219,19 @@ }, /area/medical/research) "dbR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "white" + dir = 8; + icon_state = "neutralfull" }, -/area/medical/research) +/area/hallway/secondary/exit) "dbS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/item/radio/beacon, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, @@ -74467,41 +74259,37 @@ }, /area/toxins/lab) "dbV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/item/twohanded/required/kirbyplants, +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/medical/research) -"dbW" = ( -/obj/structure/disposalpipe/segment{ dir = 8; - icon_state = "pipe-c" + icon_state = "neutralfull" }, +/area/hallway/secondary/exit) +"dbW" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + name = "Research Junction"; + sortType = 12 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/research) "dbX" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -74513,6 +74301,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurple" @@ -74538,6 +74329,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -74596,11 +74391,11 @@ }, /area/hallway/primary/aft) "dcg" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal, /obj/effect/decal/warning_stripes/northeast, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/medical/chemistry) "dch" = ( @@ -74707,7 +74502,6 @@ }, /area/medical/medbay) "dcr" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -74725,6 +74519,9 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -74747,6 +74544,9 @@ dir = 4 }, /obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "white" @@ -74772,6 +74572,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -74794,6 +74597,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -74809,15 +74615,14 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/medbay) "dcy" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-y" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -74826,14 +74631,15 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-y" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/medbay) "dcz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -74858,9 +74664,6 @@ }, /area/maintenance/apmaint) "dcB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -74877,10 +74680,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "dcC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -74907,7 +74706,6 @@ }, /area/maintenance/starboard) "dcD" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/airlock/medical/glass{ id_tag = ""; @@ -74915,6 +74713,7 @@ req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/medbay3) "dcE" = ( @@ -75071,7 +74870,6 @@ }, /area/maintenance/gambling_den) "dcV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -75187,9 +74985,6 @@ "ddk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -75218,11 +75013,11 @@ /turf/simulated/floor/plasteel, /area/hallway/primary/central) "ddn" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/hallway/primary/central) "ddo" = ( @@ -75310,12 +75105,16 @@ }, /area/maintenance/apmaint) "ddw" = ( -/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "whitepurplecorner" + icon_state = "neutralfull" }, -/area/medical/research) +/area/hallway/secondary/exit) "ddx" = ( /obj/structure/cable{ d1 = 1; @@ -75339,7 +75138,6 @@ }, /area/library/abandoned) "ddA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ @@ -75489,6 +75287,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75625,7 +75426,6 @@ }, /area/maintenance/apmaint) "ddX" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -75634,6 +75434,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -75684,9 +75485,6 @@ }, /area/medical/medbay) "dec" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -76333,7 +76131,6 @@ }, /area/assembly/chargebay) "dft" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -76423,22 +76220,19 @@ }, /area/medical/medbay) "dfF" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ id_tag = null; name = "Patient Room"; req_access_txt = "5" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cmo" }, /area/medical/medbay) "dfG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -76740,7 +76534,6 @@ /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "dgq" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -76803,7 +76596,6 @@ }, /area/medical/research) "dgw" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/firealarm{ dir = 4; @@ -76823,7 +76615,6 @@ }, /area/medical/medbay) "dgy" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -76834,6 +76625,7 @@ /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -76861,7 +76653,6 @@ }, /area/medical/medbay) "dgC" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/light{ dir = 8 }, @@ -76968,6 +76759,8 @@ }, /area/medical/genetics_cloning) "dgM" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitebluecorner" @@ -77012,7 +76805,6 @@ /turf/simulated/floor/plating, /area/maintenance/apmaint) "dgQ" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -77021,6 +76813,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77444,10 +77237,6 @@ }, /area/toxins/explab) "dhL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -77460,14 +77249,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/explab) "dhM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -77480,6 +77270,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77507,21 +77300,18 @@ }, /area/crew_quarters/hor) "dhQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/explab) "dhR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -77537,6 +77327,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77564,9 +77357,6 @@ }, /area/toxins/xenobiology) "dhT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/hologram/holopad, /obj/structure/chair/office/light, /obj/effect/landmark/start{ @@ -77579,14 +77369,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/explab) "dhU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/item/clipboard, /obj/item/folder/white, @@ -77598,14 +77388,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/explab) "dhV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -77613,14 +77403,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, /area/toxins/explab) "dhW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -77628,6 +77418,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77645,9 +77438,6 @@ }, /area/medical/research) "dhY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -77655,12 +77445,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/medical/research) -"dhZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/medical/research) +"dhZ" = ( /obj/effect/landmark{ name = "lightsout" }, @@ -77673,35 +77463,34 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/medical/research) "dia" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "dib" = ( +/obj/effect/decal/warning_stripes/east, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/medical/research) "dic" = ( +/obj/effect/decal/warning_stripes/west, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "did" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -77710,6 +77499,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "die" = ( @@ -77759,26 +77551,25 @@ }, /area/medical/research) "dii" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - name = "Robotics Junction"; - sortType = 13 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/research) "dij" = ( /obj/structure/disposalpipe/segment{ - dir = 2; + dir = 4; icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" + icon_state = "dark" }, -/area/medical/research) +/area/chapel/office) "dik" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -77884,7 +77675,6 @@ }, /area/assembly/chargebay) "diu" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Central Hallway South 2"; dir = 4 @@ -77979,6 +77769,9 @@ /area/maintenance/apmaint) "diE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77989,6 +77782,9 @@ d2 = 4; icon_state = "1-4" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -78014,13 +77810,15 @@ name = "Medbay Cloning"; req_access_txt = "5" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurple" }, /area/medical/genetics_cloning) "diI" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -78035,6 +77833,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78046,6 +77848,9 @@ icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -78527,9 +78332,6 @@ /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "djG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78542,15 +78344,15 @@ icon_state = "1-4"; tag = "90Curve" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" }, /area/crew_quarters/hor) "djH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78569,15 +78371,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurple" }, /area/crew_quarters/hor) "djI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78590,16 +78392,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" }, /area/crew_quarters/hor) "djJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78607,12 +78408,13 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/toxins/misc_lab) "djK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78630,14 +78432,14 @@ req_access = null; req_access_txt = "30" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/crew_quarters/hor) "djL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -78650,16 +78452,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" }, /area/medical/research) "djM" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -78674,6 +78475,15 @@ dir = 4; initialize_directions = 11 }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + name = "RD Junction 1"; + sortType = 13 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78779,6 +78589,10 @@ dir = 1; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78788,6 +78602,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78799,6 +78616,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluecorner" }, @@ -78819,13 +78639,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitebluecorner" }, /area/medical/medbay) "dkg" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -78837,6 +78659,12 @@ initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + name = "Genetics Junction"; + sortType = 23 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78861,6 +78689,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whiteblue" }, @@ -78982,12 +78813,12 @@ }, /area/medical/research) "dkx" = ( +/obj/machinery/light, +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal, -/obj/machinery/light, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -79074,9 +78905,6 @@ /turf/simulated/floor/plating, /area/toxins/mixing) "dkL" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -79090,6 +78918,11 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + name = "RD Junction 2"; + sortType = 13 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -79115,9 +78948,6 @@ /turf/simulated/floor/engine, /area/toxins/misc_lab) "dkQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -79131,6 +78961,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -79175,9 +79008,6 @@ }, /area/crew_quarters/hor) "dkU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -79201,6 +79031,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -79229,12 +79062,12 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/research) "dkX" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -79306,7 +79139,6 @@ }, /area/medical/medbay) "dle" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/alarm{ dir = 8; pixel_x = 24 @@ -79401,6 +79233,7 @@ "dlq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -79481,7 +79314,6 @@ /turf/simulated/wall, /area/medical/surgery) "dlA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, @@ -79489,6 +79321,7 @@ dir = 10; initialize_directions = 10 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "redbluefull" }, @@ -79520,9 +79353,9 @@ }, /area/hallway/secondary/exit) "dlE" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitebluecorner" @@ -79631,7 +79464,6 @@ }, /area/toxins/mixing) "dlV" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/power/apc{ dir = 8; @@ -79643,6 +79475,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -79655,6 +79488,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -79751,7 +79585,6 @@ /turf/simulated/floor/greengrid, /area/assembly/chargebay) "dmh" = ( -/obj/structure/disposalpipe/segment, /obj/item/radio/intercom{ dir = 4; pixel_x = 28 @@ -79886,9 +79719,9 @@ }, /area/medical/surgeryobs) "dmA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -80158,10 +79991,6 @@ }, /area/toxins/mixing) "dnk" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -80169,6 +79998,10 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurple" @@ -80307,7 +80140,6 @@ }, /area/assembly/chargebay) "dnC" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) @@ -80315,12 +80147,6 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) -"dnE" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" - }, -/area/hallway/primary/aft) "dnF" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -80403,6 +80229,7 @@ name = "Genetics"; req_access_txt = "9" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -80592,7 +80419,6 @@ }, /area/medical/surgeryobs) "doi" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4; initialize_directions = 11 @@ -80605,6 +80431,7 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -80929,7 +80756,6 @@ }, /area/assembly/chargebay) "doS" = ( -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -80980,7 +80806,6 @@ /turf/simulated/floor/greengrid, /area/assembly/chargebay) "doY" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -80995,11 +80820,6 @@ }, /area/hallway/primary/aft) "dpa" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - name = "Genetics Junction"; - sortType = 13 - }, /turf/simulated/floor/plasteel{ icon_state = "purplecorner" }, @@ -81026,9 +80846,6 @@ }, /area/assembly/chargebay) "dpd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, @@ -81038,9 +80855,6 @@ }, /area/medical/genetics) "dpe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -81114,6 +80928,7 @@ "dpm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -81134,7 +80949,6 @@ /turf/simulated/floor/grass, /area/medical/genetics) "dpr" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -81155,6 +80969,12 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + name = "CMO's Junction"; + sortType = 10 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -81172,6 +80992,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluecorner" }, @@ -81192,6 +81015,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -81290,6 +81117,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -81359,7 +81189,6 @@ }, /area/medical/surgeryobs) "dpI" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -81367,6 +81196,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -81724,17 +81554,11 @@ }, /area/medical/cmo) "dqw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/medical/genetics) "dqx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, @@ -81744,9 +81568,6 @@ }, /area/medical/genetics) "dqz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -81755,9 +81576,6 @@ }, /area/medical/genetics) "dqA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Geneticist" @@ -81768,15 +81586,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/genetics) "dqB" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, @@ -81802,7 +81617,6 @@ }, /area/medical/medbay) "dqF" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -81811,6 +81625,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -82227,9 +82042,6 @@ }, /area/assembly/chargebay) "drH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/medical/genetics) @@ -82262,7 +82074,6 @@ }, /area/hallway/primary/aft) "drL" = ( -/obj/structure/disposalpipe/segment, /obj/structure/sign/science{ pixel_x = -32; pixel_y = 32 @@ -82273,7 +82084,6 @@ }, /area/hallway/primary/aft) "drM" = ( -/obj/structure/disposalpipe/segment, /obj/structure/sign/science{ pixel_x = 32; pixel_y = 32 @@ -82293,6 +82103,7 @@ /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -82369,13 +82180,6 @@ icon_state = "white" }, /area/medical/genetics) -"drY" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "whitepurple" - }, -/area/medical/genetics) "drZ" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -82416,6 +82220,7 @@ name = "kitty basket" }, /mob/living/simple_animal/pet/cat/Runtime, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -82570,7 +82375,6 @@ }, /area/maintenance/port) "dsu" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -82696,7 +82500,6 @@ }, /area/assembly/robotics) "dsI" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -82839,9 +82642,6 @@ }, /area/medical/genetics) "dsU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical{ name = "Genetics Office"; @@ -82872,18 +82672,21 @@ /obj/structure/mirror{ pixel_y = -30 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/genetics) "dsY" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/machinery/newscaster{ pixel_y = -32 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whiteblue" @@ -82912,10 +82715,6 @@ }, /area/medical/medbay) "dtc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -82924,19 +82723,11 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whiteblue" }, /area/medical/medbay) -"dtd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants, -/turf/simulated/floor/plasteel{ - icon_state = "whitebluecorner" - }, -/area/medical/medbay) "dte" = ( /obj/item/twohanded/required/kirbyplants, /obj/machinery/alarm{ @@ -82946,11 +82737,11 @@ /turf/simulated/floor/plasteel, /area/gateway) "dtf" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/medical/genetics) "dtg" = ( @@ -83083,7 +82874,6 @@ /turf/simulated/wall/r_wall, /area/medical/research) "dtq" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 1; @@ -83092,6 +82882,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkblue" @@ -83197,26 +82988,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/hallway/secondary/construction) -"dtC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/medical/medbay) "dtD" = ( /obj/structure/cable{ d1 = 4; @@ -83447,12 +83218,6 @@ icon_state = "whitepurplecorner" }, /area/crew_quarters/hor) -"duc" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" - }, -/area/medical/research) "due" = ( /obj/structure/cable{ d1 = 1; @@ -83547,10 +83312,6 @@ /turf/simulated/wall, /area/medical/morgue) "dul" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -83558,6 +83319,10 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -83579,6 +83344,7 @@ req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/morgue) "dur" = ( @@ -83921,6 +83687,7 @@ req_access_txt = "29" }, /obj/effect/decal/warning_stripes/south, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/fpmaint2) "dva" = ( @@ -83990,16 +83757,15 @@ }, /area/medical/research) "dvj" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, @@ -84162,6 +83928,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/medical/morgue) "dvE" = ( @@ -84283,10 +84050,10 @@ /turf/simulated/floor/plating, /area/medical/research) "dvQ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "darkblue" @@ -84564,7 +84331,6 @@ }, /area/hallway/primary/aft) "dwu" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Central Hallway South 3"; dir = 8 @@ -84638,6 +84404,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/medical/morgue) "dwF" = ( @@ -85131,6 +84898,7 @@ icon_state = "2-8"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -85141,22 +84909,19 @@ /turf/simulated/floor/plasteel, /area/assembly/robotics) "dxA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, /obj/effect/landmark/start{ name = "Medical Doctor" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cmo" }, /area/medical/medbay) "dxB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ name = "Robotics Lab"; @@ -85168,15 +84933,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/assembly/robotics) "dxC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -85184,6 +84948,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + name = "Robotics Junction"; + sortType = 14 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -85202,6 +84971,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/assembly/robotics) "dxE" = ( @@ -85216,8 +84989,9 @@ }, /area/medical/research) "dxF" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -85242,9 +85016,8 @@ }, /area/medical/morgue) "dxH" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +/obj/structure/disposalpipe/junction{ + dir = 4 }, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -85268,6 +85041,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -85286,6 +85062,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -85309,6 +85088,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -85327,6 +85109,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -85355,6 +85140,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/medical/morgue) "dxR" = ( @@ -85374,6 +85162,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/medical/morgue) "dxS" = ( @@ -85390,6 +85181,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/medical/morgue) "dxT" = ( @@ -85414,6 +85208,10 @@ dir = 4; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -85486,12 +85284,12 @@ }, /area/medical/medbay) "dya" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical{ name = "Operating Theatre Storage"; req_access_txt = "45" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -85812,17 +85610,18 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/research) "dyM" = ( -/obj/structure/disposalpipe/segment, /obj/structure/rack, /obj/item/storage/firstaid, /obj/item/storage/firstaid, /obj/item/paicard, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -85838,6 +85637,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/assembly/robotics) "dyO" = ( @@ -85875,11 +85675,11 @@ /turf/simulated/floor/plasteel, /area/assembly/robotics) "dyU" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/firealarm{ dir = 8; pixel_x = -24 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -85944,9 +85744,6 @@ /turf/simulated/floor/plasteel, /area/medical/morgue) "dzi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -85961,6 +85758,9 @@ icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "dzj" = ( @@ -86002,8 +85802,8 @@ }, /area/medical/cmo) "dzm" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -86443,6 +86243,7 @@ icon_state = "1-4"; tag = "90Curve" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -86462,10 +86263,6 @@ }, /area/medical/research) "dzV" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, /obj/structure/cable{ d2 = 4; icon_state = "0-4" @@ -86476,6 +86273,10 @@ pixel_x = -24 }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -86494,6 +86295,7 @@ tag = "" }, /obj/effect/decal/warning_stripes/southwest, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/assembly/robotics) "dzX" = ( @@ -86634,6 +86436,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -86694,24 +86499,21 @@ }, /area/medical/medbay) "dAu" = ( -/obj/structure/disposalpipe/junction{ - dir = 1; - icon_state = "pipe-y" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-y" + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, /area/medical/surgery2) "dAv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Medbay Surgery East Storage"; dir = 1 @@ -86719,16 +86521,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, /area/medical/surgery2) "dAw" = ( +/obj/machinery/iv_drip, /obj/structure/disposalpipe/segment{ dir = 8; icon_state = "pipe-c" }, -/obj/machinery/iv_drip, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -87095,7 +86900,6 @@ }, /area/toxins/server) "dBh" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -87110,10 +86914,10 @@ /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/medical/research) "dBj" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -87124,6 +86928,7 @@ icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -87182,11 +86987,11 @@ }, /area/crew_quarters/theatre) "dBt" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -87239,7 +87044,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dBD" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -87330,7 +87134,6 @@ }, /area/hallway/primary/aft) "dBQ" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -87343,6 +87146,7 @@ icon_state = "1-8"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -87357,9 +87161,6 @@ }, /area/hallway/primary/aft) "dBS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ id_tag = null; @@ -87367,6 +87168,9 @@ opacity = 1; req_access_txt = "6" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -87810,6 +87614,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/apmaint) "dCW" = ( @@ -87875,7 +87680,6 @@ /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dDb" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -87907,13 +87711,13 @@ }, /area/hallway/primary/aft) "dDd" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -88418,7 +88222,6 @@ /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dEm" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/door/airlock/public/glass, @@ -88432,6 +88235,7 @@ tag = "" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -88879,6 +88683,7 @@ name = "blobstart" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dFu" = ( @@ -89105,9 +88910,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dGa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/spawner/window/reinforced, /obj/structure/cable{ d2 = 4; @@ -89139,6 +88941,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dGh" = ( @@ -89163,10 +88966,10 @@ }, /area/hallway/primary/aft) "dGm" = ( +/obj/machinery/vending/snack, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/vending/snack, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dGn" = ( @@ -89470,7 +89273,6 @@ }, /area/assembly/robotics) "dGU" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -89988,6 +89790,7 @@ dir = 4; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dHN" = ( @@ -90021,11 +89824,10 @@ }, /area/assembly/robotics) "dHS" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/vending/cigarette, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dHT" = ( @@ -90048,6 +89850,10 @@ /obj/machinery/light{ dir = 4 }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dHX" = ( @@ -90160,7 +89966,6 @@ /turf/simulated/floor/engine, /area/toxins/misc_lab) "dIi" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Research Central Hall"; dir = 8; @@ -90336,6 +90141,10 @@ "dIC" = ( /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/closet/wardrobe/toxins_white, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "neutral" @@ -90361,6 +90170,7 @@ /obj/machinery/door/airlock/maintenance, /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dIH" = ( @@ -90713,6 +90523,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/warning_stripes/northwest, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dJC" = ( @@ -90720,6 +90534,11 @@ pixel_y = 32 }, /obj/effect/decal/warning_stripes/north, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + name = "Chapel Junction"; + sortType = 17 + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dJD" = ( @@ -91200,14 +91019,14 @@ }, /area/chapel/main) "dKO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "Chapel"; opacity = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -91227,7 +91046,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dKV" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -91251,6 +91069,7 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -91554,13 +91373,13 @@ }, /area/chapel/main) "dLx" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -91574,9 +91393,6 @@ }, /area/chapel/main) "dLz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -91585,32 +91401,36 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/hallway/secondary/exit) -"dLA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/simulated/floor/plasteel, +/area/hallway/secondary/exit) +"dLA" = ( /obj/effect/decal/warning_stripes/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dLD" = ( /obj/machinery/door/airlock/public/glass, -/obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/south, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dLE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -91697,7 +91517,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dLP" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/structure/cable{ d1 = 1; @@ -91713,6 +91532,7 @@ /obj/machinery/holosign/surgery{ id = "surgery2" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -91882,9 +91702,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dMr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -91895,10 +91712,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dMs" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, @@ -91936,10 +91749,6 @@ }, /area/medical/virology) "dMx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -91957,15 +91766,16 @@ icon_state = "2-4"; tag = "" }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitegreen" }, /area/medical/virology) "dMy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -91978,14 +91788,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/virology) "dMz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -92009,6 +91819,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitegreen" @@ -92032,9 +91845,6 @@ }, /area/medical/virology) "dMB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -92063,14 +91873,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/medical/virology) "dMC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -92083,16 +91893,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitegreencorner" }, /area/medical/virology) "dMD" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -92112,6 +91921,10 @@ dir = 4; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -92239,8 +92052,8 @@ }, /area/chapel/main) "dMW" = ( -/obj/structure/disposalpipe/segment, /obj/structure/chair/wood, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "chapel" @@ -92322,13 +92135,13 @@ }, /area/medical/virology) "dNk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitegreen" @@ -92522,8 +92335,8 @@ }, /area/chapel/main) "dNM" = ( -/obj/structure/disposalpipe/segment, /obj/structure/chair/wood, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "chapel" @@ -92652,7 +92465,6 @@ }, /area/medical/virology) "dOe" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -92667,6 +92479,7 @@ dir = 8; initialize_directions = 11 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -92964,7 +92777,6 @@ }, /area/medical/virology) "dOH" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -92973,6 +92785,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -93169,7 +92982,6 @@ }, /area/medical/virology) "dPk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -93187,6 +92999,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whitegreen" }, @@ -93207,7 +93020,6 @@ }, /area/medical/virology) "dPn" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -93215,6 +93027,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "whiteblue" }, @@ -93502,10 +93315,10 @@ /turf/simulated/wall/r_wall/rust, /area/medical/virology) "dPT" = ( -/obj/structure/disposalpipe/segment, /obj/effect/spawner/window/reinforced, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/hidden/universal, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/medical/virology) "dPU" = ( @@ -93589,6 +93402,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -93722,7 +93538,6 @@ }, /area/assembly/robotics) "dQr" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/power/apc{ dir = 4; name = "east bump"; @@ -93732,6 +93547,7 @@ d2 = 2; icon_state = "0-2" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -93788,9 +93604,6 @@ }, /area/medical/virology) "dQw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -93804,6 +93617,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitegreen" @@ -94201,10 +94017,6 @@ }, /area/medical/virology) "dRh" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -94212,6 +94024,10 @@ tag = "" }, /obj/effect/decal/warning_stripes/northeast, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitegreencorner" @@ -94361,10 +94177,10 @@ }, /area/medical/surgery2) "dRz" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94487,12 +94303,12 @@ /turf/simulated/wall, /area/chapel/main) "dRP" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/centcom{ name = "Chapel Office"; opacity = 1; req_access_txt = "27" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94632,6 +94448,9 @@ on = 1 }, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94640,12 +94459,9 @@ /obj/machinery/alarm{ pixel_y = 24 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/chapel/office) -"dSl" = ( -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94819,6 +94635,7 @@ dir = 1; pixel_x = -28 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94836,13 +94653,6 @@ icon_state = "grimy" }, /area/chapel/office) -"dSM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/office/dark, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/chapel/office) "dSN" = ( /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ @@ -94879,7 +94689,10 @@ /area/maintenance/apmaint) "dST" = ( /obj/effect/decal/warning_stripes/north, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dSU" = ( @@ -94894,7 +94707,6 @@ }, /area/hallway/secondary/exit) "dSV" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/alarm{ dir = 4; pixel_x = -24 @@ -94928,13 +94740,6 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/exit) -"dSZ" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/secondary/exit) "dTa" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/structure/flora/ausbushes/brflowers, @@ -94947,9 +94752,6 @@ /turf/simulated/floor/grass, /area/hallway/secondary/exit) "dTe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ name = "Experimentor"; @@ -94961,6 +94763,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -94997,7 +94802,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dTi" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/power/apc{ dir = 8; name = "west bump"; @@ -95103,10 +94907,6 @@ }, /area/chapel/office) "dTr" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal, /obj/machinery/light/small{ dir = 1 }, @@ -95114,22 +94914,24 @@ pixel_x = -26; pixel_y = -4 }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/chapel/office) "dTs" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 8; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/chapel/office) "dTt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "grimy" @@ -95146,9 +94948,6 @@ }, /area/medical/virology) "dTv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -95166,15 +94965,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitegreen" }, /area/medical/virology) "dTw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/wood, /obj/item/flashlight/lamp, /turf/simulated/floor/carpet, @@ -95280,7 +95079,6 @@ }, /area/hallway/secondary/exit) "dTJ" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -95292,22 +95090,6 @@ icon_state = "red" }, /area/hallway/secondary/exit) -"dTK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/structure/disposalpipe/sortjunction{ - name = "Chapel Junction"; - sortType = 17 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/secondary/exit) "dTV" = ( /obj/machinery/power/solar{ name = "Aft Starboard Solar Panel" @@ -95403,10 +95185,6 @@ /turf/simulated/floor/carpet, /area/chapel/office) "dUg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/structure/table/wood, /obj/item/folder, /obj/item/pen, @@ -95434,7 +95212,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dUk" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -95762,22 +95539,6 @@ /obj/effect/decal/warning_stripes/southwest, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) -"dUU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/secondary/exit) "dUY" = ( /obj/machinery/light, /obj/machinery/alarm{ @@ -95818,21 +95579,6 @@ temperature = 80 }, /area/toxins/server) -"dVe" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/secondary/exit) "dVj" = ( /obj/structure/cable{ d1 = 4; @@ -95910,11 +95656,6 @@ icon_state = "dark" }, /area/medical/cmo) -"dVw" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/simulated/floor/plasteel, -/area/hallway/primary/aft) "dVx" = ( /obj/structure/table/wood, /obj/item/ashtray/plastic, @@ -96036,14 +95777,14 @@ /turf/simulated/floor/plating, /area/engine/engineering) "dWj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ name = "Research Division"; req_access_txt = "47" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -96111,12 +95852,12 @@ /turf/simulated/floor/plasteel, /area/toxins/mixing) "dWp" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal, /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -96158,8 +95899,6 @@ }, /area/toxins/xenobiology) "dWs" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal, /obj/structure/window/reinforced{ dir = 4 }, @@ -96168,6 +95907,8 @@ pixel_y = -32 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -96322,17 +96063,16 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/primary/aft) "dWM" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, /obj/machinery/vending/coffee, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dWN" = ( @@ -96342,22 +96082,12 @@ icon_state = "dark" }, /area/medical/cmo) -"dWO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "dWP" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -96449,21 +96179,21 @@ /turf/simulated/floor/plating/airless, /area/medical/virology) "dWY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, /turf/simulated/floor/plating/airless, /area/medical/virology) "dWZ" = ( +/obj/effect/decal/warning_stripes/north, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" }, -/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plating/airless, /area/medical/virology) "dXa" = ( @@ -96510,11 +96240,11 @@ /turf/simulated/floor/plating/airless, /area/medical/virology) "dXe" = ( +/obj/effect/decal/warning_stripes/south, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/structure/disposaloutlet, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plating/airless, /area/medical/virology) "dXf" = ( @@ -96564,7 +96294,6 @@ }, /area/medical/virology) "dXj" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass, /turf/simulated/floor/plasteel, @@ -96592,7 +96321,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dXm" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/security/glass{ name = "Holding Area"; req_access_txt = "63" @@ -96702,13 +96430,13 @@ }, /area/medical/research) "dXw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -96993,10 +96721,6 @@ }, /area/medical/genetics) "dYi" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -97029,19 +96753,7 @@ icon_state = "whitepurplecorner" }, /area/medical/genetics) -"dYk" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/medical/genetics) "dYl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -97578,9 +97290,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "purplecorner" @@ -97681,6 +97390,14 @@ icon_state = "barber" }, /area/security/permabrig) +"eOL" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) "ePS" = ( /obj/structure/lattice, /turf/simulated/wall/r_wall, @@ -97707,9 +97424,6 @@ }, /area/crew_quarters/theatre) "eSe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/airlock/medical{ name = "Operating Theatre Storage"; req_access_txt = "45" @@ -97720,12 +97434,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, /area/medical/surgery2) "eSX" = ( /obj/item/twohanded/required/kirbyplants, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -97819,6 +97540,14 @@ /obj/item/seeds/chili, /turf/simulated/floor/plasteel, /area/security/permabrig) +"ffm" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/psych) "fhF" = ( /turf/space, /area/shuttle/gamma/station) @@ -98052,16 +97781,16 @@ /turf/simulated/floor/plating, /area/security/brig) "fVZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -98101,6 +97830,9 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -98149,9 +97881,6 @@ }, /area/security/processing) "gxd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/chair{ dir = 1 }, @@ -98222,7 +97951,6 @@ /turf/simulated/floor/plating, /area/hallway/secondary/exit) "gGu" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -98231,6 +97959,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/starboard2) "gGJ" = ( @@ -98446,8 +98175,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/simulated/floor/plating, -/area/maintenance/starboard) +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/psych) "hzb" = ( /obj/machinery/light{ dir = 4 @@ -98488,6 +98219,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + name = "HoS Junction"; + sortType = 7 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -98553,9 +98290,6 @@ /turf/simulated/wall, /area/magistrateoffice) "hTW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Medbay Surgery East Storage"; dir = 1 @@ -98564,16 +98298,13 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, /area/medical/surgery1) -"hZF" = ( -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "redcorner" - }, -/area/hallway/primary/starboard) "ibc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -98616,15 +98347,15 @@ /turf/simulated/floor/plasteel, /area/security/securearmoury) "ifj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -98688,9 +98419,6 @@ }, /area/maintenance/starboard) "iDa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door_control{ id = "magistrate"; name = "Privacy Shutters Control"; @@ -98698,6 +98426,9 @@ }, /obj/structure/table/wood, /obj/machinery/computer/secure_data/laptop, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, @@ -98722,6 +98453,18 @@ icon_state = "whiteblue" }, /area/medical/surgery2) +"iIY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -4 + }, +/turf/simulated/floor/wood, +/area/medical/psych) "iKj" = ( /obj/machinery/light_switch{ pixel_x = -23; @@ -98798,6 +98541,12 @@ /obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/security/securearmoury) +"iWE" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "iXX" = ( /obj/structure/cable{ d1 = 1; @@ -98857,6 +98606,9 @@ icon_state = "2-8" }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -98868,9 +98620,9 @@ }, /area/engine/break_room) "jkU" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -98885,6 +98637,26 @@ icon_state = "redcorner" }, /area/security/permasolitary) +"jsi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/psych) "jsV" = ( /obj/structure/cable{ d1 = 4; @@ -98925,14 +98697,14 @@ }, /area/security/warden) "jCU" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /obj/structure/filingcabinet, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, @@ -98963,6 +98735,34 @@ }, /turf/simulated/floor/plasteel, /area/security/seceqstorage) +"jKp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/medical/psych) +"jLB" = ( +/obj/effect/spawner/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/medical/research) "jQY" = ( /turf/simulated/wall/r_wall, /area/security/seceqstorage) @@ -98977,7 +98777,6 @@ }, /area/hallway/primary/central) "jUH" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -99014,7 +98813,6 @@ /turf/simulated/floor/plating, /area/security/seceqstorage) "khY" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -99023,6 +98821,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "kii" = ( @@ -99053,6 +98852,13 @@ }, /turf/simulated/floor/plasteel, /area/security/permabrig) +"kjL" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/medbay) "kkM" = ( /obj/vehicle/secway, /obj/item/key/security, @@ -99061,6 +98867,12 @@ icon_state = "vault" }, /area/security/securearmoury) +"klh" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "klk" = ( /obj/machinery/firealarm{ dir = 1; @@ -99120,29 +98932,18 @@ }, /area/security/detectives_office) "kyq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" }, /area/security/prisonershuttle) -"kzg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/window/reinforced, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/turf/simulated/floor/plating, -/area/security/warden) "kCi" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -99202,9 +99003,9 @@ }, /area/security/securearmoury) "kVM" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -99276,31 +99077,6 @@ icon_state = "red" }, /area/security/seceqstorage) -"loP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/security/brig) "lso" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -99327,9 +99103,6 @@ }, /area/crew_quarters/courtroom) "ltY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -99343,6 +99116,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "luc" = ( @@ -99604,6 +99380,16 @@ icon_state = "redcorner" }, /area/security/permabrig) +"mnG" = ( +/obj/item/twohanded/required/kirbyplants, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplecorner" + }, +/area/medical/research) "moa" = ( /obj/structure/window/reinforced{ dir = 8 @@ -99652,7 +99438,6 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "mtR" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -99723,6 +99508,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" @@ -99734,28 +99522,17 @@ }, /turf/simulated/floor/plasteel, /area/security/permasolitary) -"mHf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "red" - }, -/area/security/brig) "mHP" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - name = "Security Junction"; - sortType = 13 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "redcorner" @@ -99838,6 +99615,15 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/entry) +"mZY" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/genetics_cloning) "nbE" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/ambrosia, @@ -99914,12 +99700,6 @@ icon_state = "barber" }, /area/security/permabrig) -"nkh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/security/processing) "nli" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/cleanliness{ @@ -99934,9 +99714,7 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/computer/security{ - network = list("SS13","Mining Outpost") - }, +/obj/machinery/computer/security, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, @@ -100066,7 +99844,6 @@ }, /area/security/permasolitary) "nQq" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atm{ pixel_x = 32 }, @@ -100178,10 +99955,6 @@ /turf/simulated/floor/plating, /area/security/detectives_office) "osS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -100194,6 +99967,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -100302,9 +100079,6 @@ }, /area/hallway/primary/central) "pgF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ id_tag = "BrigWest"; @@ -100325,6 +100099,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/security/brig) "phv" = ( @@ -100375,6 +100152,15 @@ /obj/item/clothing/head/fedora, /turf/simulated/floor/plating, /area/security/detectives_office) +"pDD" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "pGr" = ( /obj/structure/cable{ d1 = 1; @@ -100446,6 +100232,10 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -100742,6 +100532,7 @@ dir = 8; network = list("SS13","Security") }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -100758,17 +100549,6 @@ icon_state = "darkblue" }, /area/medical/surgery2) -"rjr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "rkB" = ( /obj/structure/cable{ d1 = 2; @@ -100844,6 +100624,13 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/security/brig) +"rHU" = ( +/obj/structure/chair, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "rNi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -100967,6 +100754,11 @@ }, /turf/simulated/floor/plasteel, /area/security/permabrig) +"sak" = ( +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/turf/simulated/floor/wood, +/area/medical/psych) "scA" = ( /obj/machinery/firealarm{ dir = 8; @@ -101009,13 +100801,20 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/entry) -"soN" = ( +"sjV" = ( /obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple" + }, +/area/medical/research) +"soN" = ( /obj/machinery/computer/operating, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkblue" @@ -101083,13 +100882,15 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" }, /area/security/processing) "sEN" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -101160,6 +100961,14 @@ icon_state = "redcorner" }, /area/security/brig) +"sYw" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/medical/medbay) "sYQ" = ( /obj/structure/cable{ d1 = 4; @@ -101180,10 +100989,8 @@ }, /area/maintenance/starboard) "tah" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, /obj/machinery/disposal, +/obj/structure/disposalpipe/trunk, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -101328,6 +101135,9 @@ req_access_txt = "3" }, /obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/security/warden) "tHf" = ( @@ -101338,7 +101148,6 @@ /turf/simulated/floor/plating, /area/crew_quarters/theatre) "tJH" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -101362,6 +101171,16 @@ icon_state = "neutralfull" }, /area/security/brig) +"tNq" = ( +/obj/item/radio/intercom{ + dir = 1; + pixel_x = 28 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/medical/psych) "tNO" = ( /obj/structure/cable{ d1 = 2; @@ -101413,12 +101232,14 @@ }, /area/security/brig) "tRM" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -101528,9 +101349,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -101644,6 +101462,23 @@ icon_state = "vault" }, /area/security/securearmoury) +"uKI" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/security/medbay) "uQK" = ( /obj/machinery/bodyscanner, /turf/simulated/floor/plasteel{ @@ -101651,17 +101486,6 @@ icon_state = "whiteblue" }, /area/medical/surgery2) -"uSJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/window/reinforced, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/turf/simulated/floor/plating, -/area/security/main) "uUu" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, @@ -101771,6 +101595,9 @@ network = list("Interrogation"); pixel_y = -30 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -102216,6 +102043,18 @@ /obj/structure/barricade/wooden, /turf/simulated/floor/plasteel, /area/security/detectives_office) +"xme" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/medical/research) "xom" = ( /obj/effect/decal/warning_stripes/north, /obj/machinery/navbeacon{ @@ -102230,6 +102069,12 @@ }, /turf/simulated/floor/plasteel, /area/security/securearmoury) +"xpu" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) "xqH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -102292,15 +102137,15 @@ }, /area/security/warden) "xHj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -102351,9 +102196,6 @@ }, /area/hallway/primary/starboard) "xQW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -102369,6 +102211,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/starboard) "xUI" = ( @@ -102409,6 +102254,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -136316,8 +136164,8 @@ dau dau cYs dau -dbR -ddw +dbP +cPn dBD dgq did @@ -136830,7 +136678,7 @@ cKF cYo cYu daB -dbV +dbP cPn dff dff @@ -137344,7 +137192,7 @@ cWN cIW cYv cKF -dbV +dbP cPn dfg dgt @@ -137601,7 +137449,7 @@ cWO cIW cYz cKF -dbV +dbP cPn dfh dhN @@ -137858,7 +137706,7 @@ cWP cIW cYA cKF -dbV +dbP cPn dfi dhO @@ -138107,7 +137955,7 @@ cZt cIW cIW cIW -cRc +jLB cZt cZt cZt @@ -138115,7 +137963,7 @@ cZt cZt cZt dtS -dbV +dbP cPn dfj dhP @@ -138158,7 +138006,7 @@ dQl dQY dXI dJx -dSi +dij dSJ dTs dml @@ -138364,7 +138212,7 @@ cKw cMd cND cPn -aKA +mnG cSm cZt cTU @@ -138372,7 +138220,7 @@ cVq cXb cZt cKF -dbV +dbP cPn dfk dig @@ -138394,10 +138242,10 @@ dwi dwi cKr dCQ -dEP -dFr -dFr -dGc +cNI +cRe +cRe +cRi dJy dHE dID @@ -138615,10 +138463,10 @@ cDO csK cEL bqu -cHE -cIX +bIG +cIW cKx -cMe +cMm cMf cPo aKC @@ -138630,10 +138478,10 @@ cXc cYB daE dbW -cPn -cPn -dih -cPn +cGJ +cGJ +cIn +cIY djL dkV cPn @@ -138651,7 +138499,7 @@ dXv cRd cZt dCR -dFr +cPs dEP dOO dGc @@ -138872,13 +138720,13 @@ cEb csK cGY bqu -cHF -cIY -cKy +cHE +cIX cMe -cNE -cPr -cMm +xpu +xme +sjV +eOL cPn cKI cUZ @@ -138888,7 +138736,7 @@ cKI daF cvm ddA -cRe +daA cxD dii djM @@ -138900,15 +138748,15 @@ drN dyL dyL dyL -dkW +cMg cZH dxx -cNx +cMj dzT dbj dBh -dik -dFr +cNE +cPF dOO dFr dID @@ -138929,8 +138777,8 @@ dMm dPL dRz dRP -dSl -dSM +dTs +dSL dUg dUR dYT @@ -139130,33 +138978,33 @@ cEP cIT bqu cHG -cIY -cKy -cMg +cJa +dau +cMm cNF cPq -cMe -ddw +ckH +cPn cTC -cVc -cWH -cYk +dje +dfR +djD cZr -cKE +cKF dbX cSt dfm dgv -dij -duc +cSt +cSt dkX -duc -duc +cSt +cSt dIi dsu -duc -duc -duc +cSt +cSt +cSt dvj dgv cSt @@ -139386,13 +139234,13 @@ cEr cEQ cIT bqu -bIG +cHG cIW cKz -cMi +cMm cNG cPr -cMm +ckH cRd cZx cVd @@ -139643,13 +139491,13 @@ cEr cER cIT bqu -bIG +cHG cIW cKA -cMi +cMm cNG cPr -cMm +ckH cSp cTQ cVr @@ -139903,10 +139751,10 @@ qZt exL cIZ cKB -cMj +muI cNH cPr -cMm +ckH cWL cTR cVe @@ -139934,7 +139782,7 @@ dzW dEn dEn duZ -dEy +cMk dCV dbC dbI @@ -140157,15 +140005,15 @@ cEN csK cES bqu -bIG +cHG cIW cKC -cMk -cNI -cPs -cMe +cMm +cNG +cPr +ckH cSr -cTS +cTT cVt daJ daJ @@ -140201,8 +140049,8 @@ dfu dfu dIH dJC -dKo -dKo +cYk +cYk dLE dXJ dKo @@ -140414,13 +140262,13 @@ cCK csK cET bqu -bIG +cHG cIW cKD cMm cNG cPr -cMm +ckH cRg cTR cVu @@ -140457,13 +140305,13 @@ dGh dGP dHN dHU -dQI -dKo -dKo -dLE -dXJ -dNa -dNa +cWb +cYk +cYk +daQ +dbR +dbV +ddw dNa dKo dKo @@ -140671,13 +140519,13 @@ csK csK cEU bqu -bKt -cIY -cKE -cMe +cHG +cJa +cKF +cMm cNJ cPt -cMe +ckI cSs cTT cVv @@ -140714,10 +140562,10 @@ dGl dGS dHT dII -dJD +cWH dKo dKo -dLE +dLG dXJ dNb dNN @@ -140928,7 +140776,7 @@ cCL cEe cEL bqu -bIG +cHG cJa cKF cMm @@ -140971,10 +140819,10 @@ dGl dGS dHT dIJ -dJD +cWH dKo dKo -dLE +dLG dXJ dNc dNO @@ -141185,7 +141033,7 @@ cCM cEf cEL bqu -bIG +cHG cIW cKG cMm @@ -141229,10 +141077,10 @@ dGS dHQ dLD dST -dSZ -dSZ -dTK -dUU +dKo +dKo +dLG +dXJ dNb dNP dOw @@ -141442,7 +141290,7 @@ cyk gyY cEV cGz -bIG +cHG cIW cKH cMn @@ -141489,7 +141337,7 @@ dXC dKp dKp dLF -dVe +dXJ dOu dNQ dOx @@ -141736,7 +141584,7 @@ dql dBH dCX dfu -dVw +dHT dcV dGU dWL @@ -141746,7 +141594,7 @@ dQI dKo dKo dLG -dVe +dXJ dNb bGr dOw @@ -141978,7 +141826,7 @@ diu dnC doS dnC -dnD +dHT doY dft drL @@ -141993,7 +141841,7 @@ doY doY dDb dXj -dnD +dHT dcV dGU dGU @@ -142140,24 +141988,24 @@ asB aBj azv aAG -aZe -aZe -aZe +aXX +aXX +aXX aGI -aIg +aXZ aGI -aZe -aZe +aXX +aXX aKu -aZe -aZe -aZe -aZe -aZe +aXX +aXX +aXX +aXX +aXX aTj aWm -aZe -aZe +aXX +aXX aXX aXX bgw @@ -142254,7 +142102,7 @@ dEZ dcj dWK dcS -dHT +cUv dXn dXn dXn @@ -142472,12 +142320,12 @@ cFa cGB cHK dEm -cKL -cKL -cNP -cPz cRh -diw +cRh +cNP +cRh +cRh +cmn cTW cYC cXd @@ -142487,16 +142335,16 @@ daO cYC cYC dgw -diw -diw +cmn +cmn dle cJY dmh -dnE +dpa dpa dsI drM -dnE +dpa nQq cTW dwu @@ -142506,12 +142354,12 @@ dQr dBj dBQ dDd -dXj +cRc dnD dGo dGo -dcV -dnD +cTS +cVc dXm dSV dTi @@ -142733,7 +142581,7 @@ cJk cJg cNQ cPA -cRi +cJg cJk cTX cVD @@ -142984,12 +142832,12 @@ cBo eNm cFa bqu -cHN +cHK cJg cKM cMo cNR -cPL +cSA cRj cSx cTX @@ -142997,7 +142845,7 @@ cVE cXf cYD cXe -daQ +cVD dcl cVD dgD @@ -143241,13 +143089,13 @@ cCS cEf cFa bqu -cHN +cHK cJg cKN cMq cNS -cRk -cRk +cMq +cMq cSy cTY cVF @@ -143271,7 +143119,7 @@ dsO duk cYN dww -dww +cMi dwz dAd dwB @@ -143498,7 +143346,7 @@ cCT cEe cFa bqu -cHN +cHK cJh cKO dea @@ -143755,7 +143603,7 @@ csV csV cEY bqu -cHN +cHK cJh cKO dea @@ -143768,7 +143616,7 @@ cVH cXh cYF dlW -cXg +ctb cXg ddN dgD @@ -143779,7 +143627,7 @@ dfv dfv dYc dYi -dYk +drX drX dsQ duk @@ -144012,12 +143860,12 @@ cCV csV cFa bqu -cHN +cHK cJg cKP dea cbr -cPF +dea cha cSB cUb @@ -144269,13 +144117,13 @@ cCW csV cEZ bqu -cHN +cHK cJg cKQ dea -cNS +bYQ cMq -cUn +ckJ cSA cTZ cZF @@ -144492,7 +144340,7 @@ bwf aos bCy bEl -bFP +bCL bHz bJl bLa @@ -144532,7 +144380,7 @@ cKR cMr cbr cPH -cUn +ckJ cSD cTY cVK @@ -144783,13 +144631,13 @@ dte csV cFa bqu -cHN +cHK cJg cKS dea -cNS +bYQ cMq -cUn +ckJ cSE cTX cXe @@ -145005,7 +144853,7 @@ abj bwf bAG bCl -byU +aZe bFQ bWX bJn @@ -145040,13 +144888,13 @@ cDa csV cFa bqu -cHN +cHK cJg cKT dea cbr dea -cUn +ckJ cRm cJg cVM @@ -145262,7 +145110,7 @@ aaa bwf bAt bCl -byU +aZe bFx bWX bJo @@ -145303,7 +145151,7 @@ cKU cMs cNV cPI -cUn +ckJ cSF cUc cVN @@ -145519,7 +145367,7 @@ aaa bwf aot bCA -bEk +bkf asz bHx bJp @@ -145560,7 +145408,7 @@ cKV dea cbH ceQ -cUn +ckS cSF cUd cUn @@ -145572,14 +145420,14 @@ dco cSA dfz dgM -diC +mZY dkb dlq dnM dpm dpm dqA -drX +cKE dsX duk dvz @@ -145776,7 +145624,7 @@ aaa bwf bAs bCB -bAs +boT bAs bHx bJq @@ -145836,7 +145684,7 @@ dta dnQ dpn dqB -drY +dpn dsY duk duk @@ -146033,7 +145881,7 @@ btH bwf bAr bCl -byU +aZe bFR bHx bJr @@ -146547,7 +146395,7 @@ bwm bza bEo bCC -bEo +bqv bEo bHA bwm @@ -146565,7 +146413,7 @@ bwm bwm bwm ciV -ckH +bwm bwm bwm coE @@ -146804,7 +146652,7 @@ btK bva bva bCD -bva +bsg bFM bHB bva @@ -146822,7 +146670,7 @@ bva bva bva bva -ckI +bva bva bva bSi @@ -147061,7 +146909,7 @@ bxz bzb bEq bCE -bEq +bub bHm bHC bEq @@ -147079,15 +146927,15 @@ pfp cfS cnw cnC -ckJ +bSF cme bSF jUC cqp crT -ctb +bEq cuo -rjr +bSF bSF cyA bSF @@ -147110,7 +146958,7 @@ cKV cKV cKV cKV -don +ctd cSF dil cSF @@ -147122,7 +146970,7 @@ cSF dps cSF dsc -dtd +cRm duk dvE dwF @@ -147351,11 +147199,11 @@ cxn cxn cxn cxn -bng +rHU cGF -bng -bng -bng +iWE +pDD +cYP cYP cYP cPO @@ -147599,9 +147447,9 @@ cvu coI cqq bYH -ctd +cEL cuu -bqv +bIX cxn cyB cAc @@ -147612,8 +147460,8 @@ cFd hos cmt bMD -cKZ -cYP +cLa +iIY cOa cPQ cRp @@ -147634,7 +147482,7 @@ dFE dmt dnU dpu -dqH +cKy dsd dul dur @@ -147856,9 +147704,9 @@ cax cax cax bYK -ctd +cEL cuu -bqv +bIX cxn cyC cAd @@ -147866,16 +147714,16 @@ cBF cAc cxn bDD -buF -boG -boG +jsi +cmt +ffm cLa -cYP +sak cOb cPQ cRq cSJ -cUh +cVQ cVQ cYP cYR @@ -148115,7 +147963,7 @@ chC lEt ctf cus -bsg +bhX cxn cyD bBk @@ -148123,11 +147971,11 @@ cAc cyD cxn bEH -cGJ -boG -boG +jKp +tNq +klh cLb -cYP +cPQ cOc cPR cRr @@ -148370,20 +148218,20 @@ cay cax cqr bYK -ctj +cFa cuu -bqv +bIX cxn cxn cAe cxn cxn cxn -bng +cYP cGI -cJp -dfK -bng +cYP +cYP +cYP cYP cYP cYP @@ -148395,7 +148243,7 @@ cYP cJg cJg daZ -dcn +ctj ddU cKY diG @@ -148627,9 +148475,9 @@ ccq coK cqr bYH -ctj +cFa cuu -bqv +bIX cxn cyF bBu @@ -148637,7 +148485,7 @@ cEj cEj cEn cxn -cGJ +buF boG cJo bRw @@ -148649,10 +148497,10 @@ cKO cUj cKO cKO -cKO +sYw cZM -cKO -dqW +kjL +cwc cSA cJg dgS @@ -148909,7 +148757,7 @@ dbi dbi cZN dbi -dco +cFo dfE cKY cJg @@ -149143,7 +148991,7 @@ cqr bYH cnO cti -dWO +bSz cxn cyH cAh @@ -149166,7 +149014,7 @@ cKV cKV dci cMq -don +ctd cSA dgx cSA @@ -149398,9 +149246,9 @@ cnK coM cqt bYH -ctj +cFa cuu -ckH +bwm cxn czU bBu @@ -149655,9 +149503,9 @@ cnL coN cqt bYH -ctj +cFa cuu -ckH +bwm cxn czU bBu @@ -149912,7 +149760,7 @@ cnM coO cqt bYH -ctj +cFa cuu cvW cxn @@ -150169,9 +150017,9 @@ cnM coM cqt bYH -ctj +cFa cuu -ckH +bwm cxn cyJ cAf @@ -150426,7 +150274,7 @@ cnN coP cqu bYH -ctj +cFa cuv cvX cxn @@ -150923,8 +150771,8 @@ bJz bLt bNt bPp -bRc -bTg +bFU +rOn bVm bXj bYM @@ -150935,9 +150783,9 @@ cga chL bYM ckR -cmn +coX chG -coQ +cDn cqv crV ctl @@ -151191,7 +151039,7 @@ cen cgb chM bYM -ckS +bHH cmo cnP coR @@ -151456,7 +151304,7 @@ cqw crW ctn byo -cwc +crW crW cyM crW @@ -151713,7 +151561,7 @@ cqw crX cto cuy -cwc +crW cxr cyN crX @@ -151993,7 +151841,7 @@ cYZ cZW cUr cKV -dtC +dqW cSF cJg dhe @@ -152227,7 +152075,7 @@ cqy crY ctq cuA -cwc +crW cxt cyP crW @@ -152456,8 +152304,8 @@ bxJ vnm bno eSX -hZF -bEw +bFX +bFX bEr bFX bMc @@ -152470,7 +152318,7 @@ bTj bVg bXn bYP -bXW +bNE ccD cer cgf @@ -152713,8 +152561,8 @@ bvm bwy bxK bzg -bzg -bCL +bJF +bJF bJF bJF bHT @@ -152726,7 +152574,7 @@ meB bTk bVp bXB -bYQ +bYR caM ccE ces @@ -152741,7 +152589,7 @@ cqA crZ cts cuC -cwe +cxv cxv cyR cxv @@ -152971,16 +152819,16 @@ bwz bxL bHS bAN -bCM -bHU -bHU -bHU -bHU +bAN +bAN +bAN +bAN +bAN bLz -bHU +bAN mtR mHP -bLz +bKv bVq bXp bYR @@ -153005,9 +152853,9 @@ cAm cYh cDp cvV -cFo +cFv cGS -cIe +cIk aFx cLn cbm @@ -153016,8 +152864,8 @@ cQd cRz cjF cUu -cWb -cWb +dyd +dyd cZd cZT dbq @@ -153272,7 +153120,7 @@ aFx aFx aFx cSX -cUv +dDE cXI dlz dlz @@ -153472,7 +153320,7 @@ bcU bex bhc blp -blp +uKI bka blT bno @@ -153509,7 +153357,7 @@ brS bgs coU cJn -ctc +bRc cqI brS cqI @@ -153529,7 +153377,7 @@ cOp aKh aFx cSY -cUv +dDE cXI cZb cZY @@ -153766,7 +153614,7 @@ gGu cnR gGu cqD -gGu +bTg khY cuF cqI @@ -153778,7 +153626,7 @@ aFv cEt bEY cGV -bKv +cIc cEu cAq cAq @@ -154246,7 +154094,7 @@ bhg biu bkd blV -bnp +boR boR bqQ bsI @@ -154507,18 +154355,18 @@ blW boS bqR bHZ -bub -loP +blW +bnq tJH -bub +blW bzm -bHZ -bub -bub -bub +aKA +blW +blW +blW jUH -bub -bub +blW +blW bNH sEN bRi @@ -154549,7 +154397,7 @@ cAq aFx bEY cGV -bKv +cIc aFx cLp cMN @@ -154557,7 +154405,7 @@ cOr cQg aFx cTa -cUv +dDE dlz cZh dac @@ -154761,21 +154609,21 @@ biw bHW blX blX -bkf -bqS blX +bqS +aIg reH hHM bwA -bxQ +bLD bnr bAT -bxQ -bxQ -bxQ -bNm -bxQ -bxQ +bLD +bLD +bLD +bCM +bLD +bHU bLD mEG bRj @@ -154814,7 +154662,7 @@ cLp cQi aFx cSY -cUv +dDE dlz cZi daR @@ -155018,7 +154866,7 @@ bhh bwE blY bhh -uSJ +bhi bqT bsL buc @@ -155071,7 +154919,7 @@ cLp cQh aFx cTb -cUA +dDD dlz cZj daS @@ -155275,7 +155123,7 @@ bix bmO blZ bnt -boT +blZ bqU bsL bkj @@ -155328,7 +155176,7 @@ aFx aFx aFx cjn -cUv +dDE dlz dlz dbr @@ -155547,7 +155395,7 @@ bGj bLB bJM bLF -bNE +bLF bPv bRl obL @@ -155585,7 +155433,7 @@ cyY cyY aFx cTc -cUA +dDD cqC cMH cMH @@ -155804,7 +155652,7 @@ bGk bLB bGp bLG -nkh +bLG bPw hTr gwZ @@ -156061,7 +155909,7 @@ bGl bLB bJN bLG -nkh +bLG bPx bRl bNG @@ -156605,7 +156453,7 @@ jHa ctx cFx cGX -cIn +cJz cJz cLs cMQ @@ -156830,8 +156678,8 @@ bBa bBa bBa bBa -bBa -bBa +bEw +bPy bPy bPz bRo @@ -156853,25 +156701,25 @@ abj csj ctx cuL -czc +cIo cxx -czc -czc -czc -czc -czc +cIo +cIo +cIo +cIo +cIo cFy cIs cIo -czc -czc -czc -czc -czc +cIo +cIo +cIo +cIo +cIo cRB -czc +cIo cUF -cuM +coQ cJz csj abj @@ -157086,7 +156934,7 @@ blX blX blX blX -mHf +blX tRM bLK bPA @@ -157343,7 +157191,7 @@ bBc bJL bEx bEx -kzg +bEA tFO bIe bEx diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm index f14c68812b4..11f658476d3 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm @@ -3395,16 +3395,12 @@ /area/ruin/space/ancientstation/rnd) "hU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/particle_accelerator/control_box{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/machinery/particle_accelerator/control_box, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "hV" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/particle_emitter/right{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/particle_emitter/right, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "hW" = ( @@ -4029,9 +4025,7 @@ /area/ruin/space/ancientstation/thetacorridor) "jm" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/particle_emitter/center{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/particle_emitter/center, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "jn" = ( @@ -4747,23 +4741,17 @@ /area/ruin/space/ancientstation/thetacorridor) "kT" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/particle_emitter/left{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/particle_emitter/left, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "kU" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/fuel_chamber{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/fuel_chamber, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "kV" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/end_cap{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/end_cap, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "kW" = ( @@ -4785,9 +4773,7 @@ /area/ruin/space/ancientstation/rnd) "kY" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/particle_accelerator/power_box{ - icon = 'icons/obj/machines/particle_accelerator3.dmi' - }, +/obj/structure/particle_accelerator/power_box, /turf/simulated/floor/plating, /area/ruin/space/ancientstation/thetacorridor) "kZ" = ( diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index fc67f448526..f399915e3e7 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -114,3 +114,12 @@ #define PIPE_COLOR_GREEN "#00ff00" #define PIPE_COLOR_YELLOW "#ffcc00" #define PIPE_COLOR_PURPLE "#5c1ec0" + +///Main colors for UI themes +#define COLOR_THEME_MIDNIGHT "#6086A0" +#define COLOR_THEME_PLASMAFIRE "#FFB200" +#define COLOR_THEME_RETRO "#24CA00" +#define COLOR_THEME_SLIMECORE "#4FB259" +#define COLOR_THEME_OPERATIVE "#B8221F" +#define COLOR_THEME_GLASS "#75A4C4" +#define COLOR_THEME_CLOCKWORK "#CFBA47" diff --git a/code/__DEFINES/footstep.dm b/code/__DEFINES/footstep.dm index 469549b8827..bda71aa4443 100644 --- a/code/__DEFINES/footstep.dm +++ b/code/__DEFINES/footstep.dm @@ -7,12 +7,14 @@ #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" #define FOOTSTEP_MEAT "meat" +#define FOOTSTEP_GLASS "glass" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" #define FOOTSTEP_HARD_BAREFOOT "hardbarefoot" #define FOOTSTEP_HARD_CLAW "hardclaw" #define FOOTSTEP_CARPET_BAREFOOT "carpetbarefoot" +#define FOOTSTEP_GLASS_BAREFOOT "glassbarefoot" //misc footstep sounds #define FOOTSTEP_GENERIC_HEAVY "heavy" @@ -83,7 +85,11 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( - 'sound/effects/meatslap.ogg'), 100, 0) + 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_GLASS = list(list( + 'sound/effects/footstep/glass1.ogg', + 'sound/effects/footstep/glass2.ogg', + 'sound/effects/footstep/glass3.ogg'), 100, 1), )) //bare footsteps lists GLOBAL_LIST_INIT(barefootstep, list( @@ -127,6 +133,10 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_GLASS_BAREFOOT = list(list( + 'sound/effects/footstep/glassbarefoot1.ogg', + 'sound/effects/footstep/glassbarefoot2.ogg', + 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), )) //claw footsteps lists @@ -171,6 +181,10 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_GLASS = list(list( + 'sound/effects/footstep/glassbarefoot1.ogg', + 'sound/effects/footstep/glassbarefoot2.ogg', + 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), )) //heavy footsteps list diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index f64022136ef..55701ed9166 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -74,7 +74,6 @@ //Species traits. #define NO_BLOOD "no_blood" -#define NOTRANSSTING "no_trans_sting" #define IS_WHITELISTED "whitelisted" #define LIPS "lips" #define EXOTIC_COLOR "exotic_blood_color" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 4950beb7e74..bff5100982a 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -26,11 +26,13 @@ #define DISPOSAL_PIPE_LAYER 2.3 #define GAS_PIPE_HIDDEN_LAYER 2.35 #define WIRE_LAYER 2.4 +#define TRANSPARENT_TURF_LAYER 2.41 #define WIRE_TERMINAL_LAYER 2.45 #define GAS_SCRUBBER_LAYER 2.46 #define GAS_PIPE_VISIBLE_LAYER 2.47 #define GAS_FILTER_LAYER 2.48 #define GAS_PUMP_LAYER 2.49 +#define HOLOPAD_LAYER 2.491 #define CONVEYOR_LAYER 2.495 #define LOW_OBJ_LAYER 2.5 #define LOW_SIGIL_LAYER 2.52 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 395a1ee3b28..6e85ef5ba14 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -56,10 +56,11 @@ #define PREFTOGGLE_2_REVERB_DISABLE 512 #define PREFTOGGLE_2_FORCE_WHITE_RUNECHAT 1024 #define PREFTOGGLE_2_SIMPLE_STAT_PANEL 2048 +#define PREFTOGGLE_2_SEE_ITEM_OUTLINES 4096 -#define TOGGLES_2_TOTAL 4095 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. +#define TOGGLES_2_TOTAL 8191 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. -#define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT|PREFTOGGLE_2_DEATHMESSAGE|PREFTOGGLE_2_EMOTE_BUBBLE) +#define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT|PREFTOGGLE_2_DEATHMESSAGE|PREFTOGGLE_2_EMOTE_BUBBLE|PREFTOGGLE_2_SEE_ITEM_OUTLINES) // Sanity checks #if TOGGLES_TOTAL > 16777215 diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm index 5534c19cdd1..b92fb82f9af 100644 --- a/code/__HELPERS/traits.dm +++ b/code/__HELPERS/traits.dm @@ -164,6 +164,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_BLOODCRAWL_EAT "bloodcrawl_eat" #define TRAIT_DWARF "dwarf" #define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent +#define TRAIT_MESON_VISION "meson_vision" +#define TRAIT_FLASH_PROTECTION "flash_protection" +#define TRAIT_NIGHT_VISION "night_vision" #define TRAIT_COMIC_SANS "comic_sans" #define TRAIT_NOFINGERPRINTS "no_fingerprints" diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 0e73437dd93..d418f30c78d 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -22,12 +22,12 @@ #define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE)))) //Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 513 -#define MIN_COMPILER_BUILD 1514 +#define MIN_COMPILER_VERSION 514 +#define MIN_COMPILER_BUILD 1554 #if DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. -#error You need version 513.1514 or higher +#error You need version 514.1554 or higher #endif // Macros that must exist before world.dm diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index 1119ac364cc..2c49057e636 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -5,7 +5,6 @@ GLOBAL_VAR_INIT(deafblock, 0) GLOBAL_VAR_INIT(hulkblock, 0) GLOBAL_VAR_INIT(teleblock, 0) GLOBAL_VAR_INIT(fireblock, 0) -GLOBAL_VAR_INIT(xrayblock, 0) GLOBAL_VAR_INIT(clumsyblock, 0) GLOBAL_VAR_INIT(fakeblock, 0) GLOBAL_VAR_INIT(coughblock, 0) @@ -30,6 +29,9 @@ GLOBAL_VAR_INIT(hallucinationblock, 0) GLOBAL_VAR_INIT(noprintsblock, 0) GLOBAL_VAR_INIT(shockimmunityblock, 0) GLOBAL_VAR_INIT(smallsizeblock, 0) +GLOBAL_VAR_INIT(mesonblock, 0) +GLOBAL_VAR_INIT(noflashblock, 0) +GLOBAL_VAR_INIT(nightvisionblock, 0) /////////////////////////////// // Goon Stuff diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 39551da14b6..90840095938 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -46,6 +46,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DWARF" = TRAIT_DWARF, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, "TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE, + "TRAIT_MESON_VISION" = TRAIT_MESON_VISION, + "TRAIT_FLASH_PROTECTION" = TRAIT_FLASH_PROTECTION, + "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, "TRAIT_COMIC_SANS" = TRAIT_COMIC_SANS, "TRAIT_NOFINGERPRINTS" = TRAIT_NOFINGERPRINTS, diff --git a/code/controllers/subsystem/metrics.dm b/code/controllers/subsystem/metrics.dm index 7ebaadfae77..95055f99216 100644 --- a/code/controllers/subsystem/metrics.dm +++ b/code/controllers/subsystem/metrics.dm @@ -23,7 +23,7 @@ SUBSYSTEM_DEF(metrics) var/list/out = list() out["@timestamp"] = time_stamp() // This is required by ElasticSearch, complete with this name. DO NOT REMOVE THIS. out["cpu"] = world.cpu - // out["maptick"] = world.map_cpu // TODO: 514 + out["maptick"] = world.map_cpu out["elapsed_processed"] = world.time out["elapsed_real"] = (REALTIMEOFDAY - world_init_time) out["client_count"] = length(GLOB.clients) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index f4b8e84204f..2ea582aab62 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -49,6 +49,10 @@ var/mat_path = possible_mats[id] materials[id] = new mat_path() +/datum/component/material_container/Destroy(force, silent) + QDEL_LIST_ASSOC_VAL(materials) + return ..() + /datum/component/material_container/proc/OnExamine(datum/source, mob/user, list/examine_list) if(show_on_examine) for(var/I in materials) diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index e8d3abb7335..301ed685d46 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -44,12 +44,13 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event title = "Security Announcement" announcement_type = "Security Announcement" -/datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language) +/datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language, new_sound2 = null) if(!message) return var/message_title = new_title ? new_title : title var/message_sound = new_sound ? sound(new_sound) : sound + var/message_sound2 = new_sound2 ? sound(new_sound2) : sound if(!msg_sanitized) message = trim_strip_html_properly(message, allow_lines = 1) @@ -74,6 +75,7 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event NewsCast(message, message_title) Sound(message_sound, combined_receivers[1] + combined_receivers[2]) + Sound(message_sound2, combined_receivers[1] + combined_receivers[2]) Log(message, message_title) /datum/announcement/proc/Get_Receivers(datum/language/message_language) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index b3ae451aa35..c9d650271e2 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -346,7 +346,7 @@ var/obj/machinery/firealarm/F = alarm F.update_fire_light(fire) for(var/obj/machinery/light/L in src) - L.update() + L.update(TRUE, TRUE, FALSE) /** * unset the fire alarm visual affects in an area @@ -360,7 +360,7 @@ var/obj/machinery/firealarm/F = alarm F.update_fire_light(fire) for(var/obj/machinery/light/L in src) - L.update() + L.update(TRUE, TRUE, FALSE) /area/proc/updateicon() var/weather_icon diff --git a/code/game/dna/mutations/disabilities.dm b/code/game/dna/mutations/disabilities.dm index bcb11eb1631..a03c686140a 100644 --- a/code/game/dna/mutations/disabilities.dm +++ b/code/game/dna/mutations/disabilities.dm @@ -140,12 +140,16 @@ /datum/mutation/disability/colourblindness/activate(mob/M) ..() M.update_client_colour() //Handle the activation of the colourblindness on the mob. - M.update_icons() //Apply eyeshine as needed. + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_misc_effects() /datum/mutation/disability/colourblindness/deactivate(mob/M) ..() M.update_client_colour() //Handle the deactivation of the colourblindness on the mob. - M.update_icons() //Remove eyeshine as needed. + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_misc_effects() /datum/mutation/disability/deaf name = "Deafness" diff --git a/code/game/dna/mutations/powers.dm b/code/game/dna/mutations/powers.dm index 3d2f991acb6..20c37357c50 100644 --- a/code/game/dna/mutations/powers.dm +++ b/code/game/dna/mutations/powers.dm @@ -158,28 +158,6 @@ M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH //temporary fix until the problem can be solved. to_chat(M, "You suddenly feel very weak.") -/datum/mutation/xray - name = "X-Ray Vision" - activation_messages = list("The walls suddenly disappear.") - deactivation_messages = list("The walls around you re-appear.") - instability = GENE_INSTABILITY_MAJOR - traits_to_add = list(TRAIT_XRAY_VISION) - activation_prob = 15 - -/datum/mutation/xray/New() - ..() - block = GLOB.xrayblock - -/datum/mutation/xray/activate(mob/living/M) - ..() - M.update_sight() - M.update_icons() //Apply eyeshine as needed. - -/datum/mutation/xray/deactivate(mob/living/M) - ..() - M.update_sight() - M.update_icons() //Remove eyeshine as needed. - /datum/mutation/tk name = "Telekenesis" activation_messages = list("You feel smarter.") @@ -1181,3 +1159,58 @@ else H.remoteview_target = null H.reset_perspective() + +/datum/mutation/meson_vision + name = "Meson Vision" + activation_messages = list("More information seems to reach your eyes...") + deactivation_messages = list("The amount of information reaching your eyes fades...") + instability = GENE_INSTABILITY_MINOR + traits_to_add = list(TRAIT_MESON_VISION) + +/datum/mutation/meson_vision/New() + ..() + block = GLOB.mesonblock + +/datum/mutation/meson_vision/activate(mob/living/M) + ..() + M.update_sight() + +/datum/mutation/meson_vision/deactivate(mob/living/M) + ..() + M.update_sight() + +/datum/mutation/night_vision + name = "Night Vision" + activation_messages = list("Were the lights always that bright?") + deactivation_messages = list("The ambient light level returns to normal...") + instability = GENE_INSTABILITY_MODERATE + traits_to_add = list(TRAIT_NIGHT_VISION) + +/datum/mutation/night_vision/New() + ..() + block = GLOB.nightvisionblock + +/datum/mutation/night_vision/activate(mob/living/M) + ..() + M.update_sight() + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_misc_effects() + +/datum/mutation/night_vision/deactivate(mob/living/M) + ..() + M.update_sight() + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_misc_effects() + +/datum/mutation/flash_protection + name = "Flash Protection" + activation_messages = list("You stop noticing the glare from lights...") + deactivation_messages = list("Lights begin glaring again...") + instability = GENE_INSTABILITY_MINOR + traits_to_add = list(TRAIT_FLASH_PROTECTION) + +/datum/mutation/flash_protection/New() + ..() + block = GLOB.noflashblock diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index e5da77c8196..02022121209 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -66,10 +66,10 @@ return if(src.client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot send IC messages (muted).") return - if(src.client.handle_spam_prevention(message,MUTE_IC)) + if(src.client.handle_spam_prevention(message, MUTE_IC)) return if(stat) diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 14d93439510..09702c97d3c 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -66,60 +66,6 @@ add_attack_logs(user, target, "Unsuccessful sting (changeling)") return 1 -/datum/action/changeling/sting/transformation - name = "Transformation Sting" - desc = "We silently sting a human, injecting a retrovirus that forces them to transform. Costs 50 chemicals." - helptext = "The victim will transform much like a changeling would. The effects will be obvious to the victim, and the process will damage our genomes." - button_icon_state = "sting_transform" - sting_icon = "sting_transform" - chemical_cost = 50 - dna_cost = 3 - genetic_damage = 100 - var/datum/dna/selected_dna = null - -/datum/action/changeling/sting/transformation/Trigger() - var/mob/user = usr - var/datum/changeling/changeling = user.mind.changeling - if(changeling.chosen_sting) - unset_sting(user) - return - selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") - if(!selected_dna) - return - if((NOTRANSSTING in selected_dna.species.species_traits) || selected_dna.species.is_small) - to_chat(user, "The selected DNA is incompatible with our sting.") - return - ..() - -/datum/action/changeling/sting/transformation/can_sting(mob/user, mob/target) - if(!..()) - return - if(HAS_TRAIT(target, TRAIT_HUSK) || !ishuman(target) || (NOTRANSSTING in target.dna.species.species_traits)) - to_chat(user, "Our sting appears ineffective against its DNA.") - return FALSE - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(HAS_TRAIT(H, TRAIT_GENELESS)) - to_chat(user, "This won't work on a creature without DNA.") - return FALSE - return TRUE - -/datum/action/changeling/sting/transformation/sting_action(mob/user, mob/target) - add_attack_logs(user, target, "Transformation sting (changeling) (new identity is [selected_dna.real_name])") - if(issmall(target)) - to_chat(user, "Our genes cry out as we sting [target.name]!") - - if(iscarbon(target) && (target.status_flags & CANWEAKEN)) - var/mob/living/carbon/C = target - C.do_jitter_animation(500) - - target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!") - - spawn(10) - transform_dna(target,selected_dna)//target is always human so no problem here - SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]")) - return TRUE - /datum/action/changeling/sting/extract_dna name = "Extract DNA Sting" desc = "We stealthily sting a target and extract their DNA. Costs 25 chemicals." diff --git a/code/game/gamemodes/cult/cult_datums.dm b/code/game/gamemodes/cult/cult_datums.dm index 67e9a78d879..fbbee18a94b 100644 --- a/code/game/gamemodes/cult/cult_datums.dm +++ b/code/game/gamemodes/cult/cult_datums.dm @@ -73,6 +73,9 @@ var/airlock_unruned_icon_file = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' var/airlock_unruned_overlays_file = 'icons/obj/doors/airlocks/cult/unruned/cult-overlays.dmi' + /// Are cultist mirror shields active yet? + var/mirror_shields_active = FALSE + /datum/cult_info/fire name = "Cult of Kha'Rin" diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 9b890787d7f..4f6771739f2 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -444,6 +444,11 @@ * The illusion has a 60% chance to be hostile and attack non-cultists, and a 40% chance to just run away from the user. */ /obj/item/shield/mirror/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + // Incase they get one by some magic + if(!SSticker.cultdat.mirror_shields_active) + to_chat(owner, "This shield is powerless! You must perform the required sacrifice to empower it!") + return + if(iscultist(owner) && !owner.holy_check()) // Cultist holding the shield // Hit by a projectile diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 8eae3876082..21c894ea4f6 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -86,8 +86,10 @@ to_chat(user, "The magic in [src] is weak, it will be ready to use again in [get_ETA()].") return - var/choice = show_radial_menu(user, src, choosable_items, require_near = TRUE) - var/picked_type = choosable_items[choice] + + var/list/pickable_items = get_choosable_items() + var/choice = show_radial_menu(user, src, pickable_items, require_near = TRUE) + var/picked_type = pickable_items[choice] if(!QDELETED(src) && picked_type && Adjacent(user) && !user.incapacitated() && cooldowntime <= world.time) cooldowntime = world.time + creation_delay var/obj/O = new picked_type @@ -95,6 +97,14 @@ O.forceMove(get_turf(src)) to_chat(user, replacetext("[creation_message]", "%ITEM%", "[O.name]")) +/** + * Returns the items the cult can craft from this forge. + * + * Override on children for logic regarding game state. + */ +/obj/structure/cult/functional/proc/get_choosable_items() + return choosable_items.Copy() // Copied incase its modified on children + /** * Returns the cooldown time in minutes and seconds */ @@ -159,8 +169,15 @@ selection_prompt = "You study the schematics etched on the forge..." selection_title = "Forge" creation_message = "You work the forge as dark knowledge guides your hands, creating a %ITEM%!" - choosable_items = list("Shielded Robe" = /obj/item/clothing/suit/hooded/cultrobes/cult_shield, "Flagellant's Robe" = /obj/item/clothing/suit/hooded/cultrobes/flagellant_robe, - "Mirror Shield" = /obj/item/shield/mirror) + choosable_items = list("Shielded Robe" = /obj/item/clothing/suit/hooded/cultrobes/cult_shield, "Flagellant's Robe" = /obj/item/clothing/suit/hooded/cultrobes/flagellant_robe) + +/obj/structure/cult/functional/forge/get_choosable_items() + . = ..() + if(SSticker.cultdat.mirror_shields_active) + // Both lines here are needed. If you do it without, youll get issues. + . += "Mirror Shield" + .["Mirror Shield"] = /obj/item/shield/mirror + /obj/structure/cult/functional/forge/Initialize(mapload) . = ..() diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 1f03e634a8c..4a9234ac49f 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -384,6 +384,9 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/M in invokers) if(sacrifice_fulfilled) to_chat(M, "\"Yes! This is the one I desire! You have done well.\"") + if(!SSticker.cultdat.mirror_shields_active) // Only show once + to_chat(M, "You are now able to construct mirror shields inside the daemon forge.") + SSticker.cultdat.mirror_shields_active = TRUE else if(ishuman(offering) && offering.mind.offstation_role && offering.mind.special_role != SPECIAL_ROLE_ERT) //If you try it on a ghost role, you get nothing to_chat(M, "\"This soul is of no use to either of us.\"") diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index e299f0c97c2..4f0552cbefa 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -248,7 +248,7 @@ /datum/action/innate/ai/nuke_station/proc/set_us_up_the_bomb() to_chat(owner_AI, "Nuclear device armed.") - GLOB.event_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", new_sound = 'sound/AI/aimalf.ogg') + GLOB.event_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') set_security_level("delta") owner_AI.nuking = TRUE var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(owner_AI) @@ -280,7 +280,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') + GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/eshuttle_dock.ogg') return ..() /obj/machinery/doomsday_device/proc/start() @@ -300,7 +300,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') + GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/eshuttle_dock.ogg') qdel(src) if(!timing) STOP_PROCESSING(SSfastprocess, src) diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index b2f07c7e4e6..c39babad9f6 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -4,10 +4,10 @@ /mob/living/captive_brain/say(message) if(client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot speak in IC (muted).") return - if(client.handle_spam_prevention(message,MUTE_IC)) + if(client.handle_spam_prevention(message, MUTE_IC)) return if(istype(loc,/mob/living/simple_animal/borer)) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 93e385df6a9..39b883fed33 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -220,7 +220,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.command_announcement.Announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg') + GLOB.command_announcement.Announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/eshuttle_dock.ogg') return ..() if(finished != 0) return TRUE diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index d749f8ef553..7315b52b062 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -40,7 +40,6 @@ GLOB.hulkblock = getAssignedBlock("HULK", numsToAssign, DNA_HARD_BOUNDS, good=1) GLOB.teleblock = getAssignedBlock("TELE", numsToAssign, DNA_HARD_BOUNDS, good=1) GLOB.fireblock = getAssignedBlock("FIRE", numsToAssign, DNA_HARDER_BOUNDS, good=1) - GLOB.xrayblock = getAssignedBlock("XRAY", numsToAssign, DNA_HARDER_BOUNDS, good=1) GLOB.clumsyblock = getAssignedBlock("CLUMSY", numsToAssign) GLOB.fakeblock = getAssignedBlock("FAKE", numsToAssign) GLOB.coughblock = getAssignedBlock("COUGH", numsToAssign) @@ -49,6 +48,10 @@ GLOB.twitchblock = getAssignedBlock("TWITCH", numsToAssign) GLOB.nervousblock = getAssignedBlock("NERVOUS", numsToAssign) GLOB.wingdingsblock = getAssignedBlock("WINGDINGS", numsToAssign) + GLOB.mesonblock = getAssignedBlock("MESONS", numsToAssign, good=1) + GLOB.noflashblock = getAssignedBlock("NOFLASH", numsToAssign, DNA_HARDER_BOUNDS, good=1) + GLOB.nightvisionblock = getAssignedBlock("NIGHTVISION", numsToAssign, DNA_HARDER_BOUNDS, good=1) + // Bay muts GLOB.breathlessblock = getAssignedBlock("BREATHLESS", numsToAssign, DNA_HARD_BOUNDS, good=1) @@ -62,7 +65,6 @@ GLOB.noprintsblock = getAssignedBlock("NOPRINTS", numsToAssign, DNA_HARD_BOUNDS, good=1) GLOB.shockimmunityblock = getAssignedBlock("SHOCKIMMUNITY", numsToAssign, good=1) GLOB.smallsizeblock = getAssignedBlock("SMALLSIZE", numsToAssign, DNA_HARD_BOUNDS, good=1) - // // Goon muts ///////////////////////////////////////////// diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm index 77e775939fc..9814eb3ff2e 100644 --- a/code/game/gamemodes/steal_items.dm +++ b/code/game/gamemodes/steal_items.dm @@ -74,8 +74,8 @@ return 0 /datum/theft_objective/defib - name = "a compact defibrillator" - typepath = /obj/item/defibrillator/compact + name = "the chief medical officer's advanced compact defibrillator" + typepath = /obj/item/defibrillator/compact/advanced protected_jobs = list("Chief Medical Officer", "Paramedic") location_override = "the Chief Medical Officer's Office" diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 41612fb870b..4705c041775 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -4,7 +4,8 @@ name = "Bluespace Gigabeacon" desc = "A device that draws power from bluespace and creates a permanent tracking beacon." level = 1 // underfloor - layer = 2.5 + layer = WIRE_LAYER + plane = FLOOR_PLANE anchored = 1 use_power = IDLE_POWER_USE idle_power_usage = 0 @@ -26,7 +27,8 @@ Beacon.syndicate = syndicate Beacon.area_bypass = area_bypass Beacon.cc_beacon = cc_beacon - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) /obj/machinery/bluespace_beacon/proc/destroy_beacon() QDEL_NULL(Beacon) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index e8d5cfcf437..79785006452 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -100,6 +100,7 @@ GLOBAL_LIST_INIT(cloner_biomass_items, list(\ /obj/machinery/clonepod/Destroy() if(connected) connected.pods -= src + connected = null if(clonemind) UnregisterSignal(clonemind.current, COMSIG_LIVING_REVIVE) UnregisterSignal(clonemind, COMSIG_MIND_TRANSER_TO) diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index a7345522b25..d5d469ccdd1 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -34,6 +34,24 @@ light_color = LIGHT_COLOR_DARKGREEN +/obj/machinery/computer/message_monitor/Initialize() + ..() + return INITIALIZE_HINT_LATELOAD // Give the message server time to initialize + +/obj/machinery/computer/message_monitor/LateInitialize() + //If the monitor isn't linked to a server, and there's a server available, default it to the first one in the list. + if(!linkedServer && length(GLOB.message_servers)) + linkedServer = GLOB.message_servers[1] + RegisterSignal(linkedServer, COMSIG_PARENT_QDELETING, .proc/unlink_server) + +/obj/machinery/computer/message_monitor/proc/unlink_server() + SIGNAL_HANDLER + linkedServer = null + +/obj/machinery/computer/message_monitor/Destroy() + customrecepient = null + linkedServer = null + return ..() /obj/machinery/computer/message_monitor/screwdriver_act(mob/user, obj/item/I) if(emag) //Stops people from just unscrewing the monitor and putting it back to get the console working again. @@ -71,14 +89,6 @@ ..() -/obj/machinery/computer/message_monitor/Initialize() - ..() - //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. - if(!linkedServer) - if(GLOB.message_servers && GLOB.message_servers.len > 0) - linkedServer = GLOB.message_servers[1] - return - /obj/machinery/computer/message_monitor/attack_hand(mob/user as mob) if(..()) return @@ -490,18 +500,18 @@ /obj/item/paper/monitorkey - //..() name = "Monitor Decryption Key" var/obj/machinery/message_server/server = null -/obj/item/paper/monitorkey/New() +/obj/item/paper/monitorkey/Initialize(mapload) ..() - spawn(10) - if(GLOB.message_servers) - for(var/obj/machinery/message_server/server in GLOB.message_servers) - if(!isnull(server)) - if(!isnull(server.decryptkey)) - info = "

Daily Key Reset

\n\t
The new message monitor key is '[server.decryptkey]'.
Please keep this a secret and away from the clown.
If necessary, change the password to a more secure one." - info_links = info - overlays += "paper_words" - break + return INITIALIZE_HINT_LATELOAD + +/obj/item/paper/monitorkey/LateInitialize() + for(var/obj/machinery/message_server/server in GLOB.message_servers) + if(!isnull(server)) + if(!isnull(server.decryptkey)) + info = "

Daily Key Reset

\n\t
The new message monitor key is '[server.decryptkey]'.
Please keep this a secret and away from the clown.
If necessary, change the password to a more secure one." + info_links = info + overlays += "paper_words" + break diff --git a/code/game/machinery/defib_mount.dm b/code/game/machinery/defib_mount.dm index 5aac39d12dd..fe333ebf4ef 100644 --- a/code/game/machinery/defib_mount.dm +++ b/code/game/machinery/defib_mount.dm @@ -34,8 +34,8 @@ if(building) set_pixel_offsets_from_dir(30, -30, 30, -30) -/obj/machinery/defibrillator_mount/loaded/New() //loaded subtype for mapping use - ..() +/obj/machinery/defibrillator_mount/loaded/Initialize(mapload) //loaded subtype for mapping use + . = ..() defib = new/obj/item/defibrillator/loaded(src) update_icon() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index c4d5c4984b9..da287020804 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -43,7 +43,7 @@ GLOBAL_LIST_EMPTY(holopads) use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 - layer = TURF_LAYER+0.1 //Preventing mice and drones from sneaking under them. + layer = HOLOPAD_LAYER //Preventing mice and drones from sneaking under them. plane = FLOOR_PLANE max_integrity = 300 armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index ae3520af45b..8096f0655f0 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -77,6 +77,7 @@ /obj/machinery/light_switch/attack_hand(mob/user) on = !on + playsound(src, 'sound/machines/lightswitch.ogg', 10, TRUE) updateicon() if(light_connect) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 7bd89ac6dae..1a5a5ced2ec 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -11,7 +11,7 @@ name = "Electromagnetic Generator" desc = "A device that uses station power to create points of magnetic energy." level = 1 // underfloor - layer = 2.5 + layer = WIRE_LAYER+0.001 anchored = 1 use_power = IDLE_POWER_USE idle_power_usage = 50 @@ -32,7 +32,8 @@ /obj/machinery/magnetic_module/New() ..() var/turf/T = loc - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) center = T spawn(10) // must wait for map loading to finish diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index 48d87d0f330..f43e0033e23 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -8,7 +8,8 @@ name = "navigation beacon" desc = "A radio beacon used for bot navigation." level = 1 // underfloor - layer = 2.5 + layer = WIRE_LAYER + plane = FLOOR_PLANE anchored = 1 max_integrity = 500 armor = list(melee = 70, bullet = 70, laser = 70, energy = 70, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) @@ -26,7 +27,8 @@ set_codes() var/turf/T = loc - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) if(!codes || !codes.len) log_runtime(EXCEPTION("Empty codes datum at ([x],[y],[z])"), src, list("codes_txt: '[codes_txt]'")) if("patrol" in codes) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index ac61c2cccc9..98eaf1ceb2e 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -337,12 +337,18 @@ fixdir() var/pipe_dir = get_pipe_dir() + var/turf/T = get_turf(loc) for(var/obj/machinery/atmospherics/M in src.loc) if((M.initialize_directions & pipe_dir) && M.check_connect_types_construction(M,src)) // matches at least one direction on either type of pipe to_chat(user, "There is already a pipe of the same type at this location.") return 1 + if(pipe_type in list(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT, PIPE_HE_STRAIGHT, PIPE_HE_BENT, PIPE_SUPPLY_MANIFOLD, PIPE_SCRUBBERS_MANIFOLD, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_UVENT, PIPE_SUPPLY_CAP, PIPE_SCRUBBERS_CAP, PIPE_PASV_VENT, PIPE_DP_VENT, PIPE_PASSIVE_GATE)) + if(T.transparent_floor) //stops jank with transparent floors and pipes + to_chat(user, "You can only fix simple pipes and devices over glass floors!") + return 1 + switch(pipe_type) //What kind of heartless person thought of doing this? if(PIPE_SIMPLE_STRAIGHT, PIPE_SIMPLE_BENT) var/obj/machinery/atmospherics/pipe/simple/P = new( src.loc ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 2d014e9e6c2..1a6edd1dd45 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -117,6 +117,12 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect var/in_inventory = FALSE //is this item equipped into an inventory slot or hand of a mob? var/tip_timer = 0 + // item hover FX + /// Is this item inside a storage object? + var/in_storage = FALSE + /// Holder var for the item outline filter, null when no outline filter on the item. + var/outline_filter + /obj/item/New() ..() for(var/path in actions_types) @@ -131,6 +137,11 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect if(!move_resist) determine_move_resist() +/obj/item/Initialize(mapload) + . = ..() + if(istype(loc, /obj/item/storage)) //marks all items in storage as being such + in_storage = TRUE + /obj/item/proc/determine_move_resist() switch(w_class) if(WEIGHT_CLASS_TINY) @@ -406,6 +417,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect if((flags & NODROP) && !(initial(flags) & NODROP)) //Remove NODROP is dropped flags &= ~NODROP in_inventory = FALSE + remove_outline() SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) if(!silent) playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) @@ -418,10 +430,12 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect // called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /obj/item/proc/on_exit_storage(obj/item/storage/S as obj) + in_storage = FALSE return // called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. /obj/item/proc/on_enter_storage(obj/item/storage/S as obj) + in_storage = TRUE return /** @@ -691,14 +705,24 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect openToolTip(user, src, params, title = name, content = "[desc]", theme = "") /obj/item/MouseEntered(location, control, params) - if(in_inventory) + if(in_inventory || in_storage) var/timedelay = 8 - var/user = usr + var/mob/user = usr tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE) + if(QDELETED(src)) + return + var/mob/living/L = user + if(!(user.client.prefs.toggles2 & PREFTOGGLE_2_SEE_ITEM_OUTLINES)) + return + if(istype(L) && L.incapacitated(ignore_lying = TRUE)) + apply_outline(L, COLOR_RED_GRAY) //if they're dead or handcuffed, let's show the outline as red to indicate that they can't interact with that right now + else + apply_outline(L) //if the player's alive and well we send the command with no color set, so it uses the theme's color /obj/item/MouseExited() deltimer(tip_timer) //delete any in-progress timer if the mouse is moved off the item before it finishes closeToolTip(usr) + remove_outline() /obj/item/MouseDrop_T(obj/item/I, mob/user) if(!user || user.incapacitated(ignore_lying = TRUE) || src == I) @@ -707,6 +731,41 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect if(loc && I.loc == loc && istype(loc, /obj/item/storage) && loc.Adjacent(user)) // Are we trying to swap two items in the storage? var/obj/item/storage/S = loc S.swap_items(src, I, user) + remove_outline() //get rid of the hover effect in case the mouse exit isn't called if someone drags and drops an item and somthing goes wrong + +/obj/item/proc/apply_outline(mob/user, outline_color = null) + if(!(in_inventory || in_storage) || QDELETED(src) || isobserver(user)) //cancel if the item isn't in an inventory, is being deleted, or if the person hovering is a ghost (so that people spectating you don't randomly make your items glow) + return + var/theme = lowertext(user.client.prefs.UI_style) + if(!outline_color) //if we weren't provided with a color, take the theme's color + switch(theme) //yeah it kinda has to be this way + if("midnight") + outline_color = COLOR_THEME_MIDNIGHT + if("plasmafire") + outline_color = COLOR_THEME_PLASMAFIRE + if("retro") + outline_color = COLOR_THEME_RETRO //just as garish as the rest of this theme + if("slimecore") + outline_color = COLOR_THEME_SLIMECORE + if("operative") + outline_color = COLOR_THEME_OPERATIVE + if("clockwork") + outline_color = COLOR_THEME_CLOCKWORK //if you want free gbp go fix the fact that clockwork's tooltip css is glass' + if("glass") + outline_color = COLOR_THEME_GLASS + else //this should never happen, hopefully + outline_color = COLOR_WHITE + if(color) + outline_color = COLOR_WHITE //if the item is recolored then the outline will be too, let's make the outline white so it becomes the same color instead of some ugly mix of the theme and the tint + if(outline_filter) + filters -= outline_filter + outline_filter = filter(type = "outline", size = 1, color = outline_color) + filters += outline_filter + +/obj/item/proc/remove_outline() + if(outline_filter) + filters -= outline_filter + outline_filter = null // Returns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped /obj/item/proc/get_part_rating() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 85e650412f6..de7b769957e 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -195,23 +195,16 @@ if(target.status != LIGHT_EMPTY) AddShards(1, U) target.status = LIGHT_EMPTY - target.update() - var/obj/item/light/L2 = new target.light_type() - - target.status = L2.status - target.switchcount = L2.switchcount + var/obj/item/light/replacement = target.light_type + target.status = LIGHT_OK + target.switchcount = 0 target.rigged = emagged - target.brightness_range = L2.brightness_range - target.brightness_power = L2.brightness_power - target.brightness_color = L2.brightness_color + target.brightness_range = initial(replacement.brightness_range) + target.brightness_power = initial(replacement.brightness_power) + target.brightness_color = initial(replacement.brightness_color) target.on = target.has_power() - target.update() - qdel(L2) - - if(target.on && target.rigged) - target.explode() - return + target.update(TRUE, TRUE, FALSE) else to_chat(U, "[src]'s refill light blinks red.") diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index ce8c6ca7191..ced5a810bf4 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -13,7 +13,7 @@ var/list/insultmsg = list("FUCK EVERYONE!", "I'M A TATER!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!") /obj/item/megaphone/attack_self(mob/living/user as mob) - if(user.client && (user.client.prefs.muted & MUTE_IC)) + if(check_mute(user.ckey, MUTE_IC)) to_chat(src, "You cannot speak in IC (muted).") return if(!ishuman(user)) diff --git a/code/game/objects/items/devices/painter/pipe_painter.dm b/code/game/objects/items/devices/painter/pipe_painter.dm index 4ad7b16b293..17c383809aa 100644 --- a/code/game/objects/items/devices/painter/pipe_painter.dm +++ b/code/game/objects/items/devices/painter/pipe_painter.dm @@ -27,8 +27,8 @@ return var/turf/T = get_turf(P) - if(P.level < 2 && T.level == 1 && T.intact) - to_chat(user, "You must remove the plating first.") + if(P.level < 2 && T.level == 1 && T.intact && !T.transparent_floor) + to_chat(user, "You must remove the flooring first.") return P.change_color(GLOB.pipe_colors[paint_setting]) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index e76207ae85c..4cf977dc91c 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -3,6 +3,7 @@ /obj/item/defibrillator name = "defibrillator" desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients." + icon = 'icons/obj/defib.dmi' icon_state = "defibunit" item_state = "defibunit" slot_flags = SLOT_BACK @@ -17,27 +18,27 @@ ) var/paddles_on_defib = TRUE //if the paddles are on the defib (TRUE) - var/safety = TRUE //if you can zap people with the defibs on harm mode var/powered = FALSE //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise var/obj/item/twohanded/shockpaddles/paddles var/obj/item/stock_parts/cell/high/cell = null + var/safety = TRUE //if you can zap people with the defibs on harm mode var/combat = FALSE //can we revive through space suits? + var/heart_attack = FALSE //can it give instant heart attacks when zapped on harm intent with combat? + var/base_icon_state = "defibpaddles" + var/obj/item/twohanded/shockpaddles/paddle_type = /obj/item/twohanded/shockpaddles /obj/item/defibrillator/get_cell() return cell -/obj/item/defibrillator/New() //starts without a cell for rnd - ..() - paddles = make_paddles() +/obj/item/defibrillator/Initialize(mapload) //starts without a cell for rnd + . = ..() + paddles = new paddle_type(src) update_icon() - return -/obj/item/defibrillator/loaded/New() //starts with hicap - ..() - paddles = make_paddles() +/obj/item/defibrillator/loaded/Initialize(mapload) //starts with hicap + . = ..() cell = new(src) update_icon() - return /obj/item/defibrillator/update_icon() update_power() @@ -158,9 +159,6 @@ var/datum/action/A = X A.UpdateButtonIcon() -/obj/item/defibrillator/proc/make_paddles() - return new /obj/item/twohanded/shockpaddles(src) - /obj/item/defibrillator/equipped(mob/user, slot) ..() if(slot != slot_back) @@ -214,38 +212,68 @@ /obj/item/defibrillator/compact name = "compact defibrillator" - desc = "A belt-equipped defibrillator that can be rapidly deployed." + desc = "A belt-mounted defibrillator that can be rapidly deployed." icon_state = "defibcompact" item_state = "defibcompact" + sprite_sheets = null //Because Vox had the belt defibrillator sprites in back.dm w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT origin_tech = "biotech=5" +/obj/item/defibrillator/compact/loaded/Initialize(mapload) + . = ..() + cell = new(src) + update_icon() + /obj/item/defibrillator/compact/item_action_slot_check(slot, mob/user) if(slot == slot_belt) return TRUE -/obj/item/defibrillator/compact/loaded/New() - ..() - paddles = make_paddles() - cell = new(src) - update_icon() - return - /obj/item/defibrillator/compact/combat name = "combat defibrillator" - desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits." + desc = "A belt-mounted blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits." + icon_state = "defibcombat" + item_state = "defibcombat" + paddle_type = /obj/item/twohanded/shockpaddles/syndicate combat = TRUE safety = FALSE -/obj/item/defibrillator/compact/combat/loaded/New() - ..() - paddles = make_paddles() +/obj/item/defibrillator/compact/combat/loaded/Initialize(mapload) + . = ..() cell = new(src) update_icon() - return -/obj/item/defibrillator/compact/combat/attackby(obj/item/W, mob/user, params) +/obj/item/defibrillator/compact/advanced + name = "advanced compact defibrillator" + desc = "A belt-mounted state-of-the-art defibrillator that can be rapidly deployed in all environments. Uses an experimental self-charging cell, meaning that it will (probably) never stop working. Can be used to defibrillate through space suits. It is impossible to damage." + icon_state = "defibnt" + item_state = "defibnt" + paddle_type = /obj/item/twohanded/shockpaddles/advanced + combat = TRUE + safety = TRUE + heart_attack = TRUE + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //Objective item, better not have it destroyed. + + var/next_emp_message //to prevent spam from the emagging message on the advanced defibrillator + +/obj/item/defibrillator/compact/advanced/attackby(obj/item/W, mob/user, params) + if(W == paddles) + paddles.unwield() + toggle_paddles() + update_icon() + +/obj/item/defibrillator/compact/advanced/loaded/Initialize(mapload) + . = ..() + cell = new /obj/item/stock_parts/cell/bluespace/charging(src) + update_icon() + +/obj/item/defibrillator/compact/advanced/emp_act(severity) + if(world.time > next_emp_message) + atom_say("Warning: Electromagnetic pulse detected. Integrated shielding prevented all potential hardware damage.") + playsound(src, 'sound/machines/defib_saftyon.ogg', 50) + next_emp_message = world.time + 5 SECONDS + +/obj/item/defibrillator/compact/advanced/attackby(obj/item/W, mob/user, params) if(W == paddles) paddles.unwield() toggle_paddles() @@ -257,6 +285,7 @@ /obj/item/twohanded/shockpaddles name = "defibrillator paddles" desc = "A pair of plastic-gripped paddles with flat metal surfaces that are used to deliver powerful electric shocks." + icon = 'icons/obj/defib.dmi' icon_state = "defibpaddles" item_state = "defibpaddles" force = 0 @@ -268,6 +297,7 @@ var/revivecost = 1000 var/cooldown = FALSE var/busy = FALSE + var/base_icon_state = "defibpaddles" var/obj/item/defibrillator/defib /obj/item/twohanded/shockpaddles/New(mainunit) @@ -280,10 +310,10 @@ return /obj/item/twohanded/shockpaddles/update_icon() - icon_state = "defibpaddles[wielded]" - item_state = "defibpaddles[wielded]" + icon_state = "[base_icon_state][wielded]" + item_state = "[base_icon_state][wielded]" if(cooldown) - icon_state = "defibpaddles[wielded]_cooldown" + icon_state = "[base_icon_state][wielded]_cooldown" /obj/item/twohanded/shockpaddles/suicide_act(mob/user) user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide.") @@ -336,7 +366,7 @@ to_chat(user, "[defib] is recharging.") return if(!ishuman(M)) - to_chat(user, "The instructions on [defib] don't mention how to revive that...") + to_chat(user, "The instructions on [defib] don't mention how to defibrillate that...") return else if(user.a_intent == INTENT_HARM && !defib.safety) @@ -347,7 +377,7 @@ H.Weaken(5) playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) H.emote("gasp") - if(!H.undergoing_cardiac_arrest() && (prob(10) || defib.combat)) // Your heart explodes. + if(!H.undergoing_cardiac_arrest() && (prob(10) || (defib.combat && !defib.heart_attack) || prob(10) && (defib.combat && defib.heart_attack))) // Your heart explodes. H.set_heartattack(TRUE) SEND_SIGNAL(H, COMSIG_LIVING_MINOR_SHOCK, 100) add_attack_logs(user, M, "Stunned with [src]") @@ -470,7 +500,8 @@ /obj/item/borg_defib name = "defibrillator paddles" - desc = "A pair of mounted paddles with flat metal surfaces that are used to deliver powerful electric shocks." + desc = "A pair of paddles with flat metal surfaces that are used to deliver powerful electric shocks." + icon = 'icons/obj/defib.dmi' icon_state = "defibpaddles0" item_state = "defibpaddles0" force = 0 @@ -590,3 +621,17 @@ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) busy = FALSE update_icon() + +/obj/item/twohanded/shockpaddles/syndicate + name = "combat defibrillator paddles" + desc = "A pair of high-tech paddles with flat plasteel surfaces to revive deceased operatives (unless they exploded). They possess both the ability to penetrate armor and to deliver powerful or disabling shocks offensively." + icon_state = "syndiepaddles0" + item_state = "syndiepaddles0" + base_icon_state = "syndiepaddles" + +/obj/item/twohanded/shockpaddles/advanced + name = "advanced defibrillator paddles" + desc = "A pair of high-tech paddles with flat plasteel surfaces that are used to deliver powerful electric shocks. They possess the ability to penetrate armor to deliver shock." + icon_state = "ntpaddles0" + item_state = "ntpaddles0" + base_icon_state = "ntpaddles" diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 46d347e0db7..02b53d2ff56 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -170,28 +170,6 @@ block = GLOB.hulkblock ..() -/obj/item/dnainjector/xraymut - name = "DNA-Injector (Xray)" - desc = "Finally you can see what the Captain does." - datatype = DNA2_BUF_SE - value = 0xFFF - forcedmutation = TRUE - -/obj/item/dnainjector/xraymut/Initialize() - block = GLOB.xrayblock - ..() - -/obj/item/dnainjector/antixray - name = "DNA-Injector (Anti-Xray)" - desc = "It will make you see harder." - datatype = DNA2_BUF_SE - value = 0x001 - forcedmutation = TRUE - -/obj/item/dnainjector/antixray/Initialize() - block = GLOB.xrayblock - ..() - /obj/item/dnainjector/firemut name = "DNA-Injector (Fire)" desc = "Gives you fire." diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 9fb4684f3ff..972ab8ed7bd 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -716,7 +716,6 @@ new /obj/item/stack/cable_coil(src) new /obj/item/restraints/handcuffs(src) - new /obj/item/dnainjector/xraymut(src) new /obj/item/dnainjector/firemut(src) new /obj/item/dnainjector/telemut(src) new /obj/item/dnainjector/hulkmut(src) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index b796740a60b..7330819e7d0 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -90,7 +90,7 @@ /obj/blob_act(obj/structure/blob/B) if(isturf(loc)) var/turf/T = loc - if(T.intact && level == 1) //the blob doesn't destroy thing below the floor + if((T.intact && level == 1) || T.transparent_floor) //the blob doesn't destroy thing below the floor return take_damage(400, BRUTE, "melee", 0, get_dir(src, B)) @@ -199,7 +199,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e /obj/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) if(isturf(loc)) var/turf/T = loc - if(T.intact && level == 1) //fire can't damage things hidden below the floor. + if((T.intact && level == 1) || T.transparent_floor) //fire can't damage things hidden below the floor. return ..() if(exposed_temperature && !(resistance_flags & FIRE_PROOF)) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a56c63937e3..555124cbb47 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -182,7 +182,7 @@ new /obj/item/clothing/shoes/brown (src) new /obj/item/radio/headset/heads/cmo(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) - new /obj/item/defibrillator/compact/loaded(src) + new /obj/item/defibrillator/compact/advanced/loaded(src) new /obj/item/handheld_defibrillator(src) new /obj/item/storage/belt/medical(src) new /obj/item/flash(src) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 4266d6ef254..c373a28936c 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -368,7 +368,8 @@ GLOBAL_LIST_EMPTY(safes) /obj/structure/safe/floor/Initialize() . = ..() var/turf/T = loc - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) /obj/structure/safe/floor/hide(intact) invisibility = intact ? INVISIBILITY_MAXIMUM : 0 diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 24fcba648f2..8f8e94362b7 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -27,6 +27,7 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama var/list/broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") var/list/burnt_states = list("floorscorched1", "floorscorched2") var/list/prying_tool_list = list(TOOL_CROWBAR) //What tool/s can we use to pry up the tile? + var/keep_dir = TRUE //When false, resets dir to default on changeturf() var/footstep = FOOTSTEP_FLOOR var/barefootstep = FOOTSTEP_HARD_BAREFOOT @@ -124,11 +125,18 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama var/turf/simulated/floor/W = ..() + var/obj/machinery/atmospherics/R + if(keep_icon) W.icon_regular_floor = old_icon W.icon_plating = old_plating + if(W.keep_dir) W.dir = old_dir - + if(W.transparent_floor) + for(R in W) + R.update_icon() + for(R in W) + R.update_underlays() W.update_icon() return W diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index d0805cf5099..ad26fa8919e 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -70,6 +70,35 @@ to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") return TRUE + else if(is_glass_sheet(C)) + if(broken || burnt) + to_chat(user, "Repair the plating first!") + return TRUE + var/obj/item/stack/sheet/R = C + if(R.get_amount() < 2) + to_chat(user, "You need two sheets to build a [C.name] floor!") + return TRUE + to_chat(user, "You begin swapping the plating for [C]...") + if(do_after(user, 3 SECONDS * C.toolspeed, target = src)) + if(R.get_amount() >= 2 && !transparent_floor) + if(istype(C, /obj/item/stack/sheet/plasmaglass)) //So, what type of glass floor do we want today? + ChangeTurf(/turf/simulated/floor/transparent/glass/plasma) + else if(istype(C, /obj/item/stack/sheet/plasmarglass)) + ChangeTurf(/turf/simulated/floor/transparent/glass/reinforced/plasma) + else if(istype(C, /obj/item/stack/sheet/glass)) + ChangeTurf(/turf/simulated/floor/transparent/glass) + else if(istype(C, /obj/item/stack/sheet/rglass)) + ChangeTurf(/turf/simulated/floor/transparent/glass/reinforced) + else if(istype(C, /obj/item/stack/sheet/titaniumglass)) + ChangeTurf(/turf/simulated/floor/transparent/glass/titanium) + else if(istype(C, /obj/item/stack/sheet/plastitaniumglass)) + ChangeTurf(/turf/simulated/floor/transparent/glass/titanium/plasma) + playsound(src, C.usesound, 80, TRUE) + R.use(2) + to_chat(user, "You swap the plating for [C].") + new /obj/item/stack/sheet/metal(src, 2) + return TRUE + /turf/simulated/floor/plating/screwdriver_act(mob/user, obj/item/I) . = TRUE if(!I.tool_use_check(user, 0)) diff --git a/code/game/turfs/simulated/floor/transparent.dm b/code/game/turfs/simulated/floor/transparent.dm new file mode 100644 index 00000000000..81030c4d294 --- /dev/null +++ b/code/game/turfs/simulated/floor/transparent.dm @@ -0,0 +1,112 @@ +/turf/simulated/floor/transparent/glass + name = "glass floor" + desc = "Don't jump on it... Or do, I'm not your mom." + icon = 'icons/turf/floors/glass.dmi' + icon_state = "unsmooth" + baseturf = /turf/space + smooth = SMOOTH_TRUE + canSmoothWith = list(/turf/simulated/floor/transparent/glass, /turf/simulated/floor/transparent/glass/reinforced, /turf/simulated/floor/transparent/glass/plasma, /turf/simulated/floor/transparent/glass/reinforced/plasma) + footstep = FOOTSTEP_GLASS + barefootstep = FOOTSTEP_GLASS_BAREFOOT + clawfootstep = FOOTSTEP_GLASS_BAREFOOT + heavyfootstep = FOOTSTEP_GLASS_BAREFOOT + light_power = 0.25 + light_range = 2 + layer = TRANSPARENT_TURF_LAYER + keep_dir = FALSE + intact = FALSE + transparent_floor = TRUE + heat_capacity = 800 + +/turf/simulated/floor/transparent/glass/Initialize(mapload) + . = ..() + var/image/I = image('icons/turf/space.dmi', src, SPACE_ICON_STATE) + I.plane = PLANE_SPACE + underlays += I + dir = SOUTH //dirs that are not 2/south cause smoothing jank + icon_state = "" //Prevents default icon appearing behind the glass + +/turf/simulated/floor/transparent/glass/welder_act(mob/user, obj/item/I) + if(!broken && !burnt) + return + if(!I.tool_use_check(user, 0)) + return + if(I.use_tool(src, user, volume = I.tool_volume)) + to_chat(user, "You fix some cracks in the glass.") + overlays -= current_overlay + current_overlay = null + burnt = FALSE + broken = FALSE + update_icon() + +/turf/simulated/floor/transparent/glass/crowbar_act(mob/user, obj/item/I) + if(!I || !user) + return + var/obj/item/stack/R = user.get_inactive_hand() + if(istype(R, /obj/item/stack/sheet/metal)) + if(R.get_amount() < 2) //not enough metal in the stack + to_chat(user, "You also need to hold two sheets of metal to dismantle [src]!") + return + else + to_chat(user, "You begin replacing [src]...") + playsound(src, I.usesound, 80, TRUE) + if(do_after(user, 3 SECONDS * I.toolspeed, target = src)) + if(R.get_amount() < 2 || !transparent_floor) + return + else //not holding metal at all + to_chat(user, "You also need to hold two sheets of metal to dismantle \the [src]!") + return + switch(type) //What material is returned? Depends on the turf + if(/turf/simulated/floor/transparent/glass/reinforced) + new /obj/item/stack/sheet/rglass(src, 2) + if(/turf/simulated/floor/transparent/glass) + new /obj/item/stack/sheet/glass(src, 2) + if(/turf/simulated/floor/transparent/glass/plasma) + new /obj/item/stack/sheet/plasmaglass(src, 2) + if(/turf/simulated/floor/transparent/glass/reinforced/plasma) + new /obj/item/stack/sheet/plasmarglass(src, 2) + if(/turf/simulated/floor/transparent/glass/titanium) + new /obj/item/stack/sheet/titaniumglass(src, 2) + if(/turf/simulated/floor/transparent/glass/titanium/plasma) + new /obj/item/stack/sheet/plastitaniumglass(src, 2) + R.use(2) + playsound(src, 'sound/items/deconstruct.ogg', 80, TRUE) + ChangeTurf(/turf/simulated/floor/plating) + + +/turf/simulated/floor/transparent/glass/reinforced + name = "reinforced glass floor" + desc = "Jump on it, it can cope. Promise..." + icon = 'icons/turf/floors/reinf_glass.dmi' + thermal_conductivity = 0.035 + heat_capacity = 1600 + +/turf/simulated/floor/transparent/glass/reinforced/acid_act(acidpwr, acid_volume) + acidpwr = min(acidpwr, 50) + . = ..() + +/turf/simulated/floor/transparent/glass/plasma + name = "plasma glass floor" + desc = "Wait, was space always that color?" + icon = 'icons/turf/floors/plasmaglass.dmi' + thermal_conductivity = 0.030 + heat_capacity = 32000 + +/turf/simulated/floor/transparent/glass/reinforced/plasma + name = "reinforced plasma glass floor" + desc = "For when you REALLY don't want your floor choice to suffocate everyone." + icon = 'icons/turf/floors/reinf_plasmaglass.dmi' + thermal_conductivity = 0.025 + heat_capacity = 325000 + +/turf/simulated/floor/transparent/glass/titanium + name = "titanium glass floor" + desc = "Stylish AND strong!" + icon = 'icons/turf/floors/titaniumglass.dmi' + canSmoothWith = list(/turf/simulated/floor/transparent/glass/titanium, /turf/simulated/floor/transparent/glass/titanium/plasma) + thermal_conductivity = 0.025 + heat_capacity = 1600 + +/turf/simulated/floor/transparent/glass/titanium/plasma + name = "plastitanium glass floor" + icon = 'icons/turf/floors/plastitaniumglass.dmi' diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 938e2f8a851..8c64a8456bf 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -6,6 +6,7 @@ var/intact = TRUE var/turf/baseturf = /turf/space var/slowdown = 0 //negative for faster, positive for slower + var/transparent_floor = FALSE //used to check if pipes should be visible under the turf or not ///Properties for open tiles (/floor) /// All the gas vars, on the turf, are meant to be utilized for initializing a gas datum and setting its first gas values; the turf vars are never further modified at runtime; it is never directly used for calculations by the atmospherics system. diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 458f06e9c19..162e1ebd26e 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -25,7 +25,7 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00") if(!GLOB.dooc_enabled && (mob.stat == DEAD)) to_chat(usr, "OOC for dead mobs has been turned off.") return - if(prefs.muted & MUTE_OOC) + if(check_mute(ckey, MUTE_OOC)) to_chat(src, "You cannot use OOC (muted).") return @@ -181,7 +181,7 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00") if(!GLOB.dooc_enabled && (mob.stat == DEAD)) to_chat(usr, "LOOC for dead mobs has been turned off.") return - if(prefs.muted & MUTE_OOC) + if(check_mute(ckey, MUTE_OOC)) to_chat(src, "You cannot use LOOC (muted).") return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 61575a09231..5b0ea16350c 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -122,7 +122,6 @@ GLOBAL_VAR_INIT(nologevent, 0) if(M.ckey) body += "Kick | " - body += "Warn | " body += "Ban | " body += "Jobban | " body += "Appearance Ban | " @@ -141,14 +140,13 @@ GLOBAL_VAR_INIT(nologevent, 0) body += "\ Send back to Lobby | " body += "\ Erase Flavor Text | " body += "\ Use Random Name | " - var/muted = M.client.prefs.muted body += {"
Mute: - \[IC | - OOC | - PRAY | - ADMINHELP | - DEADCHAT\] - (toggle all) + \[IC | + OOC | + PRAY | + ADMINHELP | + DEADCHAT] + (toggle all) "} var/jumptoeye = "" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index de44ccd4788..5ddf090f101 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -492,51 +492,6 @@ GLOBAL_LIST_INIT(admin_verbs_ticket, list( log_admin("[key_name(usr)] has turned BB mode [holder.fakekey ? "ON" : "OFF"]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Big Brother Mode") -#define MAX_WARNS 3 -#define AUTOBANTIME 10 - -/client/proc/warn(warned_ckey) - if(!check_rights(R_ADMIN)) - return - - if(!warned_ckey || !istext(warned_ckey)) return - if(warned_ckey in GLOB.admin_datums) - to_chat(usr, "Error: warn(): You can't warn admins.") - return - - var/datum/preferences/D - var/client/C = GLOB.directory[warned_ckey] - if(C) D = C.prefs - else D = GLOB.preferences_datums[warned_ckey] - - if(!D) - to_chat(src, "Error: warn(): No such ckey found.") - return - - if(++D.warns >= MAX_WARNS) //uh ohhhh...you'reee iiiiin trouuuubble O:) - if(C) - message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban") - log_admin("[key_name(src)] has warned [key_name(C)] resulting in a [AUTOBANTIME] minute ban") - to_chat(C, "You have been autobanned due to a warning by [ckey].
This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.") - qdel(C) - else - message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban") - log_admin("[key_name(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban") - AddBan(warned_ckey, D.last_id, "Autobanning due to too many formal warnings", ckey, 1, AUTOBANTIME) - else - if(C) - to_chat(C, "You have been formally warned by an administrator.
Further warnings will result in an autoban.
") - message_admins("[key_name_admin(src)] has warned [key_name_admin(C)]. They have [MAX_WARNS-D.warns] strikes remaining.") - log_admin("[key_name(src)] has warned [key_name(C)]. They have [MAX_WARNS-D.warns] strikes remaining.") - else - message_admins("[key_name_admin(src)] has warned [warned_ckey] (DC). They have [MAX_WARNS-D.warns] strikes remaining.") - log_admin("[key_name(src)] has warned [warned_ckey] (DC). They have [MAX_WARNS-D.warns] strikes remaining.") - - SSblackbox.record_feedback("tally", "admin_verb", 1, "Warning") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -#undef MAX_WARNS -#undef AUTOBANTIME - /client/proc/drop_bomb() // Some admin dickery that can probably be done better -- TLE set category = "Event" set name = "Drop Bomb" diff --git a/code/modules/admin/mute.dm b/code/modules/admin/mute.dm new file mode 100644 index 00000000000..cab33a4edda --- /dev/null +++ b/code/modules/admin/mute.dm @@ -0,0 +1,32 @@ +/// Associative list of people who are muted via admin mutes +GLOBAL_LIST_EMPTY(admin_mutes_assoc) + +/proc/check_mute(ckey, muteflag) + if(isnull(GLOB.admin_mutes_assoc[ckey])) + return FALSE + + if(GLOB.admin_mutes_assoc[ckey] & muteflag) + return TRUE + return FALSE + +/proc/toggle_mute(ckey, muteflag) + if(isnull(GLOB.admin_mutes_assoc[ckey])) + GLOB.admin_mutes_assoc[ckey] = 0 + + if(GLOB.admin_mutes_assoc[ckey] & muteflag) + GLOB.admin_mutes_assoc[ckey] &= ~muteflag + else + GLOB.admin_mutes_assoc[ckey] |= muteflag + +/proc/force_add_mute(ckey, muteflag) + if(isnull(GLOB.admin_mutes_assoc[ckey])) + GLOB.admin_mutes_assoc[ckey] = 0 + + GLOB.admin_mutes_assoc[ckey] |= muteflag + +/proc/force_remove_mute(ckey, muteflag) + if(isnull(GLOB.admin_mutes_assoc[ckey])) + GLOB.admin_mutes_assoc[ckey] = 0 + + GLOB.admin_mutes_assoc[ckey] &= ~muteflag + diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index f2c629ea517..9d852064d24 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -446,9 +446,6 @@ alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") unbanpanel() - else if(href_list["warn"]) - usr.client.warn(href_list["warn"]) - else if(href_list["unbane"]) if(!check_rights(R_BAN)) return diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index e206f345c0c..3db301985ed 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(adminhelp_ignored_words, list("unknown", "the", "a", "an", "of" set name = "Adminhelp" //handle muting and automuting - if(prefs.muted & MUTE_ADMINHELP) + if(check_mute(ckey, MUTE_ADMINHELP)) to_chat(src, "Error: Admin-PM: You cannot send adminhelps (Muted).") return diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 7186406e7fa..348d5690ecd 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -58,7 +58,7 @@ //takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. //Fetching a message if needed. src is the sender and C is the target client /client/proc/cmd_admin_pm(whom, msg, type = "PM") - if(prefs.muted & MUTE_ADMINHELP) + if(check_mute(ckey, MUTE_ADMINHELP)) to_chat(src, "Error: Private-Message: You are unable to use PM-s (muted).") return @@ -212,7 +212,7 @@ return /client/proc/cmd_admin_discord_pm() - if(prefs.muted & MUTE_ADMINHELP) + if(check_mute(ckey, MUTE_ADMINHELP)) to_chat(src, "Error: Private-Message: You are unable to use PMs (muted).") return diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index c3ab3bfe47f..410956c9d2a 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -9,7 +9,7 @@ if(!src.mob) return - if(prefs.muted & MUTE_DEADCHAT) + if(check_mute(ckey, MUTE_DEADCHAT)) to_chat(src, "You cannot send DSAY messages (muted).") return diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 8055c5e7a03..e22b9d50eca 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -7,7 +7,7 @@ return if(usr.client) - if(usr.client.prefs.muted & MUTE_PRAY) + if(check_mute(client.ckey, MUTE_PRAY)) to_chat(usr, "You cannot pray (muted).") return if(client.handle_spam_prevention(msg, MUTE_PRAY, OOC_COOLDOWN)) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 654e8cd0d18..00461db1f68 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -230,19 +230,19 @@ if(automute) muteunmute = "auto-muted" - M.client.prefs.muted |= mute_type + force_add_mute(M.client.ckey, mute_type) log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(M)] from [mute_string]") message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(M)] from [mute_string].", 1) to_chat(M, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Automute") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return - if(M.client.prefs.muted & mute_type) - muteunmute = "unmuted" - M.client.prefs.muted &= ~mute_type - else + toggle_mute(M.client.ckey, mute_type) + + if(check_mute(M.client.ckey, mute_type)) muteunmute = "muted" - M.client.prefs.muted |= mute_type + else + muteunmute = "unmuted" log_admin("[key_name(usr)] has [muteunmute] [key_name(M)] from [mute_string]") message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(M)] from [mute_string].", 1) @@ -608,7 +608,7 @@ Traitors and the like can also be revived with the previous role mostly intact. "Custom" = "Cryptic Message") var/list/MsgSound = list("Beep" = 'sound/misc/notice2.ogg', - "Enemy Communications Intercepted" = 'sound/AI/intercept2.ogg', + "Enemy Communications Intercepted" = 'sound/AI/intercept.ogg', "New Command Report Created" = 'sound/AI/commandreport.ogg') var/type = input(usr, "Pick a type of report to send", "Report Type", "") as anything in MsgType diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 92e6336d693..99efbc811f4 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -25,9 +25,6 @@ H.dna.SetSEState(GLOB.hulkblock, TRUE) singlemutcheck(H, GLOB.hulkblock, MUTCHK_FORCED) - H.dna.SetSEState(GLOB.xrayblock, TRUE) - singlemutcheck(H, GLOB.xrayblock, MUTCHK_FORCED) - H.dna.SetSEState(GLOB.fireblock, TRUE) singlemutcheck(H, GLOB.fireblock, MUTCHK_FORCED) diff --git a/code/modules/arcade/mob_hunt/mob_avatar.dm b/code/modules/arcade/mob_hunt/mob_avatar.dm index 7f7f53d3199..19f792af763 100644 --- a/code/modules/arcade/mob_hunt/mob_avatar.dm +++ b/code/modules/arcade/mob_hunt/mob_avatar.dm @@ -1,4 +1,3 @@ - /obj/effect/nanomob name = "Nano-Mob Avatar" //will be overridden by the mob datum name value when created desc = "A wild Nano-Mob appeared! Hit it with your PDA with the game open to attempt to capture it!" @@ -12,17 +11,29 @@ var/list/clients_encountered = list() //tracks who has already interacted with us, so they can't attempt a second capture var/image/avatar -/obj/effect/nanomob/New(loc, datum/mob_hunt/new_info) - ..() +/obj/effect/nanomob/Initialize(mapload, datum/mob_hunt/new_info) + . = ..() if(!new_info) - qdel(src) - return + return INITIALIZE_HINT_QDEL mob_info = new_info + RegisterSignal(mob_info, COMSIG_PARENT_QDELETING, .proc/delete_wrapper) update_self() forceMove(mob_info.spawn_point) if(!mob_info.is_trap) addtimer(CALLBACK(src, .proc/despawn), mob_info.lifetime) +/obj/effect/nanomob/Destroy() + SSmob_hunt.trap_spawns -= src + SSmob_hunt.normal_spawns -= src + mob_info = null // Can't delete this since multiple players can get the exact same /datum/mob_hunt. (This should be refactored) + clients_encountered.Cut() + QDEL_NULL(avatar) + return ..() + +/obj/effect/nanomob/proc/delete_wrapper() + SIGNAL_HANDLER + qdel(src) + /obj/effect/nanomob/proc/update_self() if(!mob_info) return @@ -132,12 +143,6 @@ icon_state = "placeholder" var/obj/machinery/computer/mob_battle_terminal/my_terminal -/obj/effect/nanomob/battle/New(loc, datum/mob_hunt/new_info) - . = ..() - if(new_info) - mob_info = new_info - update_self() - /obj/effect/nanomob/battle/update_self() if(!mob_info) name = "Nano-Mob Battle Avatar" diff --git a/code/modules/atmospherics/machinery/atmospherics.dm b/code/modules/atmospherics/machinery/atmospherics.dm index bb255692633..2ad433f0930 100644 --- a/code/modules/atmospherics/machinery/atmospherics.dm +++ b/code/modules/atmospherics/machinery/atmospherics.dm @@ -71,10 +71,13 @@ Pipelines + Other Objects -> Pipe network // Icons/overlays/underlays /obj/machinery/atmospherics/update_icon() var/turf/T = get_turf(loc) - if(!T || level == 2 || !T.intact) - plane = GAME_PLANE - else + if(T.transparent_floor) plane = FLOOR_PLANE + else + if(!T || level == 2 || !T.intact) + plane = GAME_PLANE + else + plane = FLOOR_PLANE /obj/machinery/atmospherics/proc/update_pipe_image() pipe_image = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) //the 20 puts it above Byond's darkness (not its opacity view) @@ -95,15 +98,18 @@ Pipelines + Other Objects -> Pipe network /obj/machinery/atmospherics/proc/add_underlay(turf/T, obj/machinery/atmospherics/node, direction, icon_connect_type) if(node) - if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) + if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe) && !T.transparent_floor) //underlays += SSair.icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node)) underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type) else //underlays += SSair.icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node)) underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type) else - //underlays += SSair.icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color) - underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type) + if(T.transparent_floor) //we want to keep pipes under transparent floors connected normally + underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type) + else + //underlays += SSair.icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color) + underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type) /obj/machinery/atmospherics/proc/update_underlays() if(check_icon_cache()) @@ -166,11 +172,14 @@ Pipelines + Other Objects -> Pipe network //(De)construction /obj/machinery/atmospherics/attackby(obj/item/W, mob/user) + var/turf/T = get_turf(src) if(can_unwrench && istype(W, /obj/item/wrench)) - var/turf/T = get_turf(src) + if(T.transparent_floor && istype(src, /obj/machinery/atmospherics/pipe) && layer != GAS_PIPE_VISIBLE_LAYER) //pipes on GAS_PIPE_VISIBLE_LAYER are above the transparent floor and should be interactable + to_chat(user, "You can't interact with something that's under the floor!") + return if(level == 1 && isturf(T) && T.intact) to_chat(user, "You must remove the plating first.") - return 1 + return var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/env_air = loc.return_air() add_fingerprint(user) @@ -184,14 +193,14 @@ Pipelines + Other Objects -> Pipe network playsound(src.loc, W.usesound, 50, 1) to_chat(user, "You begin to unfasten \the [src]...") if(internal_pressure > 2*ONE_ATMOSPHERE) - to_chat(user, "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?") + to_chat(user, "As you begin unwrenching \the [src] a gust of air blows in your face... maybe you should reconsider?") unsafe_wrenching = TRUE //Oh dear oh dear if(do_after(user, 40 * W.toolspeed, target = src) && !QDELETED(src)) user.visible_message( \ "[user] unfastens \the [src].", \ "You have unfastened \the [src].", \ - "You hear ratchet.") + "You hear ratcheting.") investigate_log("was REMOVED by [key_name(usr)]", "atmos") for(var/obj/item/clothing/shoes/magboots/usermagboots in user.get_equipped_items()) @@ -206,6 +215,9 @@ Pipelines + Other Objects -> Pipe network unsafe_pressure_release(user,internal_pressure) deconstruct(TRUE) else + if(T.transparent_floor) + to_chat(user, "You can't interact with something that's under the floor!") + return TRUE return ..() //Called when an atmospherics object is unwrenched while having a large pressure difference @@ -240,7 +252,12 @@ Pipelines + Other Objects -> Pipe network dir = D initialize_directions = P var/turf/T = loc - level = T.intact ? 2 : 1 + if(!T.transparent_floor) + level = T.intact ? 2 : 1 + else + level = 2 + plane = GAME_PLANE + layer = GAS_PIPE_VISIBLE_LAYER add_fingerprint(usr) if(!SSair.initialized) //If there's no atmos subsystem, we can't really initialize pipenets SSair.machinery_to_construct.Add(src) @@ -337,12 +354,15 @@ Pipelines + Other Objects -> Pipe network /obj/machinery/atmospherics/proc/add_underlay_adapter(turf/T, obj/machinery/atmospherics/node, direction, icon_connect_type) //modified from add_underlay, does not make exposed underlays if(node) - if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) + if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe) && !T.transparent_floor) underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type) else underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type) else - underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type) + if(T.transparent_floor) //we want to keep pipes under transparent floors connected normally + underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type) + else + underlays += SSair.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type) /obj/machinery/atmospherics/singularity_pull(S, current_size) if(current_size >= STAGE_FIVE) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm index 9859058d731..94f9f17e4b5 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm @@ -2,6 +2,7 @@ icon = 'icons/atmos/vent_pump.dmi' icon_state = "map_vent" plane = FLOOR_PLANE + layer = GAS_SCRUBBER_LAYER name = "passive vent" desc = "A large air vent" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/tank.dm b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm index 1cfb4d18eb1..ed0c438008a 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/tank.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm @@ -1,7 +1,7 @@ /obj/machinery/atmospherics/unary/tank icon = 'icons/atmos/tank.dmi' icon_state = "air_map" - + layer = GAS_PIPE_VISIBLE_LAYER name = "pressure tank" desc = "A large vessel containing pressurized gas." diff --git a/code/modules/atmospherics/machinery/datum_icon_manager.dm b/code/modules/atmospherics/machinery/datum_icon_manager.dm index 2e0ef593bae..f7a345a7c9a 100644 --- a/code/modules/atmospherics/machinery/datum_icon_manager.dm +++ b/code/modules/atmospherics/machinery/datum_icon_manager.dm @@ -159,9 +159,9 @@ var/cache_name = state for(var/D in GLOB.cardinal) - var/image/I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)) + var/image/I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D), layer = GAS_PIPE_HIDDEN_LAYER) underlays[cache_name + "[D]"] = I for(var/pipe_color in GLOB.pipe_colors) - I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)) + I = image(icon('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D), layer = GAS_PIPE_HIDDEN_LAYER) I.color = GLOB.pipe_colors[pipe_color] underlays[state + "[D]" + "[GLOB.pipe_colors[pipe_color]]"] = I diff --git a/code/modules/atmospherics/machinery/pipes/cap.dm b/code/modules/atmospherics/machinery/pipes/cap.dm index 615075cf3c0..4cfa2efb450 100644 --- a/code/modules/atmospherics/machinery/pipes/cap.dm +++ b/code/modules/atmospherics/machinery/pipes/cap.dm @@ -79,7 +79,8 @@ break var/turf/T = get_turf(src) // hide if turf is not intact - if(!istype(T)) return + if(!istype(T) || T.transparent_floor) + return hide(T.intact) update_icon() diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm index ffb66a01da3..20dd2990888 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold.dm @@ -57,6 +57,8 @@ node3 = target break var/turf/T = src.loc // hide if turf is not intact + if(T.transparent_floor) + return hide(T.intact) update_icon() diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm index 80d18bcee0f..5cefc6f723c 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm @@ -165,7 +165,8 @@ break var/turf/T = src.loc // hide if turf is not intact - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) update_icon() /obj/machinery/atmospherics/pipe/manifold4w/visible diff --git a/code/modules/atmospherics/machinery/pipes/pipe.dm b/code/modules/atmospherics/machinery/pipes/pipe.dm index afda1c30db7..925bf48715d 100644 --- a/code/modules/atmospherics/machinery/pipes/pipe.dm +++ b/code/modules/atmospherics/machinery/pipes/pipe.dm @@ -46,10 +46,6 @@ if(istype(W, /obj/item/analyzer)) atmosanalyzer_scan(parent.air, user) return - - if(istype(W, /obj/item/painter)) - return - return ..() /obj/machinery/atmospherics/proc/pipeline_expansion() diff --git a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm index 92c421fbff9..7e14946e61e 100644 --- a/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm +++ b/code/modules/atmospherics/machinery/pipes/simple/pipe_simple.dm @@ -68,7 +68,8 @@ break var/turf/T = loc // hide if turf is not intact - hide(T.intact) + if(!T.transparent_floor) + hide(T.intact) update_icon() /obj/machinery/atmospherics/pipe/simple/check_pressure(pressure) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 2377deca844..511fbb92294 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -79,8 +79,6 @@ ADD_TRAIT(user, TRAIT_LASEREYES, "ww_wishgranter") user.dna.SetSEState(GLOB.fireblock, TRUE) singlemutcheck(user, GLOB.fireblock, MUTCHK_FORCED) - user.dna.SetSEState(GLOB.xrayblock, TRUE) - singlemutcheck(user, GLOB.xrayblock, MUTCHK_FORCED) if(ishuman(user)) var/mob/living/carbon/human/human = user if(!isshadowperson(human)) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 2b89fd249c4..c841c759229 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -8,8 +8,8 @@ #define UPLOAD_LIMIT 10485760 //Restricts client uploads to the server to 10MB //Boosted this thing. What's the worst that can happen? #define MIN_CLIENT_VERSION 513 // Minimum byond major version required to play. //I would just like the code ready should it ever need to be used. -#define SUGGESTED_CLIENT_VERSION 513 // only integers (e.g: 513, 514) are useful here. This is the part BEFORE the ".", IE 513 out of 513.1542 -#define SUGGESTED_CLIENT_BUILD 1542 // only integers (e.g: 1542, 1543) are useful here. This is the part AFTER the ".", IE 1542 out of 513.1542 +#define SUGGESTED_CLIENT_VERSION 514 // only integers (e.g: 513, 514) are useful here. This is the part BEFORE the ".", IE 513 out of 513.1542 +#define SUGGESTED_CLIENT_BUILD 1566 // only integers (e.g: 1542, 1543) are useful here. This is the part AFTER the ".", IE 1542 out of 513.1542 #define SSD_WARNING_TIMER 30 // cycles, not seconds, so 30=60s @@ -113,7 +113,7 @@ if(!holder && received_discord_pm < world.time - 6000) // Worse they can do is spam discord for 10 minutes to_chat(usr, "You are no longer able to use this, it's been more then 10 minutes since an admin on Discord has responded to you") return - if(prefs.muted & MUTE_ADMINHELP) + if(check_mute(ckey, MUTE_ADMINHELP)) to_chat(usr, "You cannot use this as your client has been muted from sending messages to the admins on Discord") return cmd_admin_discord_pm() diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index a8152a722a2..d3363131d25 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -62,8 +62,6 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts var/max_gear_slots = 0 //non-preference stuff - var/warns = 0 - var/muted = 0 var/last_ip var/last_id diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index 2bb7b7529e2..21c81287a2b 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -356,3 +356,11 @@ prefs.toggles2 ^= PREFTOGGLE_2_SIMPLE_STAT_PANEL prefs.save_preferences(src) to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_SIMPLE_STAT_PANEL) ? "no longer" : "now"] get detailed information on the status panel.") + +/client/verb/toggle_item_outlines() + set name = "Toggle Item Outlines" + set category = "Preferences" + set desc = "Toggles seeing item outlines on hover." + prefs.toggles2 ^= PREFTOGGLE_2_SEE_ITEM_OUTLINES + prefs.save_preferences(src) + to_chat(usr, "You will [(prefs.toggles2 & PREFTOGGLE_2_SEE_ITEM_OUTLINES) ? "now" : "no longer"] see item outlines on hover.") diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index c806fac3ce0..71d1f9bdc49 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -5,6 +5,13 @@ /datum/event/anomaly/proc/findEventArea() var/static/list/allowed_areas + var/static/list/existing_areas + if(!existing_areas) + existing_areas = list() + for(var/area/AR in world) + var/turf/picked = safepick(get_area_turfs(AR.type)) + if(picked && is_station_level(picked.z)) + existing_areas += AR if(!allowed_areas) //Places that shouldn't explode var/list/safe_area_types = typecacheof(list( @@ -20,10 +27,16 @@ ) //Subtypes from the above that actually should explode. - var/list/unsafe_area_subtypes = typecacheof(list(/area/engine/break_room)) + var/list/unsafe_area_subtypes = typecacheof(list( + /area/engine/break_room, + /area/engine/equipmentstorage, + /area/engine/chiefs_office, + /area/engine/controlroom, + /area/engine/mechanic_workshop + )) - allowed_areas = make_associative(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes - var/list/possible_areas = typecache_filter_list(GLOB.all_areas, allowed_areas) + allowed_areas = typecacheof(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes + var/list/possible_areas = typecache_filter_list(existing_areas, allowed_areas) if(length(possible_areas)) return pick(possible_areas) @@ -36,7 +49,7 @@ CRASH("Anomaly: No valid turfs found for [impact_area] - [impact_area.type]") /datum/event/anomaly/announce() - GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') /datum/event/anomaly/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index b90e8b86b01..1591c802491 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/bluespace /datum/event/anomaly/anomaly_bluespace/announce() - GLOB.event_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 350e21cb496..533f2b5a073 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/flux /datum/event/anomaly/anomaly_flux/announce() - GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 4acf530c081..a14c63961a8 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/grav /datum/event/anomaly/anomaly_grav/announce() - GLOB.event_announcement.Announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 2caa8dc4a0c..09599073005 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/pyro /datum/event/anomaly/anomaly_pyro/announce() - GLOB.event_announcement.Announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 76058cfa574..fe274f3c73a 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/bhole /datum/event/anomaly/anomaly_vortex/announce() - GLOB.event_announcement.Announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/apc_overload.dm b/code/modules/events/apc_overload.dm index 4e2a296dda5..e1784ae9726 100644 --- a/code/modules/events/apc_overload.dm +++ b/code/modules/events/apc_overload.dm @@ -21,7 +21,7 @@ SEND_SOUND(M, S) /datum/event/apc_overload/announce() - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", 'sound/AI/power_overload.ogg') /datum/event/apc_overload/end() return TRUE @@ -33,7 +33,7 @@ /area/turret_protected/ai) if(announce) - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", 'sound/AI/power_overload.ogg') // break APC_BREAK_PROBABILITY% of all of the APCs on the station var/affected_apc_count = 0 diff --git a/code/modules/events/apc_short.dm b/code/modules/events/apc_short.dm index 759b443e2bf..93c6e468d04 100644 --- a/code/modules/events/apc_short.dm +++ b/code/modules/events/apc_short.dm @@ -20,7 +20,7 @@ SEND_SOUND(M, S) /datum/event/apc_short/announce() - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", 'sound/AI/power_overload.ogg') /datum/event/apc_short/end() return TRUE @@ -30,7 +30,7 @@ /area/engine/engineering, /area/engine/supermatter, /area/turret_protected/ai) - GLOB.event_announcement.Announce("Power failure detected in [station_name()]'s powernet. All APCs have lost power. Gravity systems likely to fail.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Power failure detected in [station_name()]'s powernet. All APCs have lost power. Gravity systems likely to fail.", "Systems Power Failure", 'sound/AI/attention.ogg') for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing var/area/current_area = get_area(A) @@ -49,7 +49,7 @@ /area/engine/supermatter, /area/turret_protected/ai) if(announce) - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", 'sound/AI/power_overload.ogg') // break APC_BREAK_PROBABILITY% of all of the APCs on the station var/affected_apc_count = 0 for(var/thing in GLOB.apcs) @@ -76,7 +76,7 @@ /proc/power_restore(announce = TRUE, power_type) if(power_type == 0) //Power without Repairing if(announce) - GLOB.event_announcement.Announce("All operational APCs on \the [station_name()] have been fully charged.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All operational APCs on \the [station_name()] have been fully charged.", "Power Systems Nominal", 'sound/AI/attention.ogg') var/affected_apc_count = 0 for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing @@ -90,7 +90,7 @@ log_and_message_admins("Power has been restored to [affected_apc_count] APCs.") if(power_type == 1) //Repair without charging if(announce) - GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired.", "Power Systems Nominal", 'sound/AI/attention.ogg') for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing var/area/current_area = get_area(A) @@ -101,7 +101,7 @@ log_and_message_admins("Power has been restored to all APCs.") if(power_type == 2) //Repair and Power APCs if(announce) - GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired and recharged. We apologize for the inconvenience.", "Power Systems Optimal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired and recharged. We apologize for the inconvenience.", "Power Systems Optimal", 'sound/AI/attention.ogg') // repair the APCs and recharge them for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing @@ -115,7 +115,7 @@ /proc/power_restore_quick(announce = TRUE) if(announce) - GLOB.event_announcement.Announce("All SMESs on \the [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All SMESs on \the [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/attention.ogg') // fix all of the SMESs for(var/obj/machinery/power/smes/S in GLOB.machines) if(!is_station_level(S.z)) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 2ffcdb2acb9..e8a557ed069 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -14,7 +14,7 @@ "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") /datum/event/brand_intelligence/announce() - GLOB.event_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") + GLOB.event_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert", 'sound/AI/brand_intelligence.ogg') /datum/event/brand_intelligence/start() for(var/obj/machinery/vending/V in GLOB.machines) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 9a6ab6ca614..feba4fc1626 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -20,7 +20,7 @@ D.carrier = TRUE /datum/event/disease_outbreak/announce() - GLOB.event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') + GLOB.event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak7.ogg') for(var/p in GLOB.dead_mob_list) var/mob/M = p to_chat(M, "[patient_zero] has been infected with [D.name] ([ghost_follow_link(patient_zero, M)])") diff --git a/code/modules/events/door_runtime.dm b/code/modules/events/door_runtime.dm index 39e02e694db..67110810a82 100644 --- a/code/modules/events/door_runtime.dm +++ b/code/modules/events/door_runtime.dm @@ -1,7 +1,7 @@ /datum/event/door_runtime /datum/event/door_runtime/announce() - GLOB.minor_announcement.Announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.", "Network Alert") + GLOB.minor_announcement.Announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.", "Network Alert", 'sound/AI/door_runtimes.ogg') /datum/event/door_runtime/start() for(var/obj/machinery/door/D in GLOB.airlocks) @@ -13,4 +13,4 @@ post_status("alert", "lockdown") /datum/event/door_runtime/proc/reboot() - GLOB.minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network reset:") + GLOB.minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network reset:", 'sound/AI/door_runtimes_fix.ogg') diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 17c697faf11..555d26ee353 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -3,7 +3,7 @@ var/lightsoutRange = 25 /datum/event/electrical_storm/announce() - GLOB.event_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") + GLOB.event_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert", 'sound/AI/elec_storm.ogg') /datum/event/electrical_storm/start() var/list/epicentreList = list() @@ -26,4 +26,3 @@ var/obj/effect/landmark/epicentre = thing for(var/obj/machinery/power/apc/apc in range(epicentre, lightsoutRange)) INVOKE_ASYNC(apc, /obj/machinery/power/apc.proc/overload_lighting) - diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 60fc5e4d39a..310bc8a1767 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -18,7 +18,7 @@ /datum/event/ion_storm/announce() if(announceEvent == ION_ANNOUNCE || (announceEvent == ION_RANDOM && prob(ionAnnounceChance))) - GLOB.event_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ionstorm.ogg') + GLOB.event_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ions.ogg') /datum/event/ion_storm/start() //AI laws diff --git a/code/modules/events/solarflare.dm b/code/modules/events/solarflare.dm index edd1726cbb2..fa72b6182cb 100644 --- a/code/modules/events/solarflare.dm +++ b/code/modules/events/solarflare.dm @@ -4,7 +4,7 @@ announceWhen = 1 /datum/event/solar_flare/announce() - GLOB.event_announcement.Announce("A solar flare has been detected on collision course with the station.", "Incoming Solar Flare", 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("A solar flare has been detected on collision course with the station.", "Incoming Solar Flare", 'sound/AI/flare.ogg') /datum/event/solar_flare/start() SSweather.run_weather(/datum/weather/solar_flare) diff --git a/code/modules/events/spider_terror.dm b/code/modules/events/spider_terror.dm index 5f9a06a501b..6bcd369884e 100644 --- a/code/modules/events/spider_terror.dm +++ b/code/modules/events/spider_terror.dm @@ -11,7 +11,7 @@ /datum/event/spider_terror/announce() if(successSpawn) - GLOB.command_announcement.Announce("Confirmed outbreak of level 3 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/effects/siren-spooky.ogg') + GLOB.command_announcement.Announce("Confirmed outbreak of level 3 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/effects/siren-spooky.ogg', new_sound2 = 'sound/AI/outbreak3.ogg') else log_and_message_admins("Warning: Could not spawn any mobs for event Terror Spiders") @@ -61,4 +61,3 @@ successSpawn = TRUE #undef TS_HIGHPOP_TRIGGER - diff --git a/code/modules/events/tear.dm b/code/modules/events/tear.dm index 85976290f9c..ae0597e501f 100644 --- a/code/modules/events/tear.dm +++ b/code/modules/events/tear.dm @@ -5,7 +5,7 @@ var/obj/effect/tear/TE /datum/event/tear/announce() - GLOB.event_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') /datum/event/tear/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index daa2013a126..484b3eb2e73 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -6,7 +6,7 @@ var/list/vents = list() /datum/event/vent_clog/announce() - GLOB.event_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + GLOB.event_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert", 'sound/AI/scrubbers.ogg') /datum/event/vent_clog/setup() endWhen = rand(25, 100) diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index b42045f86d9..13cce41ed77 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -277,6 +277,13 @@ if(can_insert && istype(disk.gene, /datum/plant_gene/trait)) dat += "Insert: [disk.gene.get_name()]" dat += "" + + dat += "

Variant

" + dat += "" + dat += "" + if(seed.variant) + dat += "" + dat += "
[seed.variant ? seed.variant : "None"]EditRemove
" else dat += "
No sample found.
Please, insert a plant sample to use this device." popup.set_content(dat) @@ -391,6 +398,16 @@ else if(href_list["abort"]) operation = "" target = null + else if(href_list["set_v"]) + if(!seed) + return + seed.variant_prompt(usr, src) + else if(href_list["del_v"]) + if(!seed) + return + seed.variant = null + seed.apply_variant_name() + to_chat(usr, "You remove the [seed.plantname]'s variant designation.") interact(usr) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index a69e2da495e..e5d4f501c5d 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -42,6 +42,8 @@ seed.prepare_result(src) transform *= TRANSFORM_USING_VARIABLE(seed.potency, 100) + 0.5 //Makes the resulting produce's sprite larger or smaller based on potency! add_juice() + if(seed.variant) + name += " \[[seed.variant]]" /obj/item/reagent_containers/food/snacks/grown/Destroy() QDEL_NULL(seed) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 134e337fa4e..81a4f83e6a6 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -344,7 +344,10 @@ /obj/machinery/hydroponics/examine(user) . = ..() if(myseed) - . += "It has [myseed.plantname] planted." + if(myseed.variant) + . += "It has the [myseed.variant] variant of [myseed.plantname] planted." + else + . += "It has [myseed.plantname] planted." if (dead) . += "It's dead!" else if (harvest) @@ -875,7 +878,8 @@ plant_hud_set_status() adjustWeeds(-10) //Has a side effect of cleaning up those nasty weeds update_icon() - + else if(istype(O, /obj/item/pen) && myseed) + myseed.variant_prompt(user, src) else return ..() diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 34ec63ebcb7..f35d7751c7a 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -109,6 +109,7 @@ /datum/seed_pile var/name = "" + var/variant = "" var/lifespan = 0 //Saved stats var/endurance = 0 var/maturation = 0 @@ -117,8 +118,9 @@ var/potency = 0 var/amount = 0 -/datum/seed_pile/New(name, life, endur, matur, prod, yie, poten, am = 1) +/datum/seed_pile/New(name, variant, life, endur, matur, prod, yie, poten, am = 1) src.name = name + src.variant = variant src.lifespan = life src.endurance = endur src.maturation = matur @@ -145,9 +147,9 @@ if (contents.len == 0) dat += "No seeds" else - dat += "" + dat += "
NameLifespanEnduranceMaturationProductionYieldPotencyStock
" for (var/datum/seed_pile/O in piles) - dat += "" + dat += "" dat += "" dat += "
NameVariantLifespanEnduranceMaturationProductionYieldPotencyStock
[O.name][O.lifespan][O.endurance][O.maturation]
[O.name][O.variant][O.lifespan][O.endurance][O.maturation][O.production][O.yield][O.potency]" dat += "Vend ([O.amount] left)
" @@ -203,9 +205,9 @@ O.forceMove(src) . = 1 for (var/datum/seed_pile/N in piles) - if (O.plantname == N.name && O.lifespan == N.lifespan && O.endurance == N.endurance && O.maturation == N.maturation && O.production == N.production && O.yield == N.yield && O.potency == N.potency) + if (O.plantname == N.name && O.variant == N.variant && O.lifespan == N.lifespan && O.endurance == N.endurance && O.maturation == N.maturation && O.production == N.production && O.yield == N.yield && O.potency == N.potency) ++N.amount return - piles += new /datum/seed_pile(O.plantname, O.lifespan, O.endurance, O.maturation, O.production, O.yield, O.potency) + piles += new /datum/seed_pile(O.plantname, O.variant, O.lifespan, O.endurance, O.maturation, O.production, O.yield, O.potency) return diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index cd9271379ed..539ab5e7573 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -10,6 +10,7 @@ var/plantname = "Plants" // Name of plant when planted. var/product // A type path. The thing that is created when the plant is harvested. var/species = "" // Used to update icons. Should match the name in the sprites unless all icon_* are overriden. + var/variant = null // Optional custom name to track modified plants. Can be set with pen or from gene modder. var/growing_icon = 'icons/obj/hydroponics/growing.dmi' //the file that stores the sprites of the growing plant from this seed. var/icon_grow // Used to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it. @@ -83,6 +84,8 @@ S.potency = potency S.weed_rate = weed_rate S.weed_chance = weed_chance + S.variant = variant + S.apply_variant_name() S.genes = list() for(var/g in genes) var/datum/plant_gene/G = g @@ -317,16 +320,43 @@ return /obj/item/seeds/attackby(obj/item/O, mob/user, params) - if (istype(O, /obj/item/plant_analyzer)) + if(istype(O, /obj/item/plant_analyzer)) to_chat(user, "*---------*\n This is \a [src].") var/text = get_analyzer_text() if(text) to_chat(user, "[text]") return + if(istype(O, /obj/item/pen)) + variant_prompt(user) + return ..() // Fallthrough to item/attackby() so that bags can pick seeds up +/obj/item/seeds/proc/variant_prompt(mob/user, obj/item/container = null) + var/prev = variant + var/V = input(user, "Choose variant name:", "Plant Variant Naming", variant) as text|null + if(isnull(V)) // Did the user cancel? + return + if(container && (loc != container)) // Was the seed removed from the container, if there is a container? + return + if(!(container ? container : src).Adjacent(user)) // Is the user next to the seed/container? + return + variant = copytext(sanitize(html_encode(trim(V))), 1, 64) // Sanitization must happen after null check because it converts nulls to empty strings + if(variant == "") + variant = null + if(prev != variant) + to_chat(user, "You [variant ? "change" : "remove"] the [plantname]'s variant designation.") + apply_variant_name() + +/obj/item/seeds/proc/apply_variant_name() + var/V = variant ? " \[[variant]]" : "" // If we have a non-empty variant add it to the name + var/N = initial(name) + if(copytext(name, 1, 13) == "experimental") // Don't delete 'experimental' + N = "experimental " + N + name = N + V + if(GetComponent(/datum/component/label)) + GetComponent(/datum/component/label).apply_label() // Don't delete labels diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 56c5c820559..f289a2dc8e1 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -104,21 +104,7 @@ new /obj/item/toy/katana(src) if(85 to 86) new /obj/item/defibrillator/compact(src) - if(87) //1% chance - new /obj/item/weed_extract(src) - if(88) - new /obj/item/organ/internal/brain(src) - if(89) - new /obj/item/organ/internal/brain/xeno(src) - if(90) - new /obj/item/organ/internal/heart(src) - if(91) - new /obj/item/soulstone/anybody(src) - if(92) - new /obj/item/katana(src) - if(93) - new /obj/item/dnainjector/xraymut(src) - if(94) + if(87 to 88) new /obj/item/storage/backpack/clown(src) new /obj/item/clothing/under/rank/clown(src) new /obj/item/clothing/shoes/clown_shoes(src) @@ -128,6 +114,18 @@ new /obj/item/toy/crayon/rainbow(src) new /obj/item/reagent_containers/spray/waterflower(src) new /obj/item/reagent_containers/food/drinks/bottle/bottleofbanana(src) + if(89) //1% chance + new /obj/item/weed_extract(src) + if(90) + new /obj/item/organ/internal/brain(src) + if(91) + new /obj/item/organ/internal/brain/xeno(src) + if(92) + new /obj/item/organ/internal/heart(src) + if(93) + new /obj/item/soulstone/anybody(src) + if(94) + new /obj/item/katana(src) if(95) new /obj/item/clothing/under/mime(src) new /obj/item/clothing/shoes/black(src) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index d5410015f5e..20b2a4d375a 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -104,6 +104,7 @@ "Shadowling Thrall" = (mind in SSticker.mode.shadowling_thralls), "Abductor" = (mind in SSticker.mode.abductors), "Revolutionary" = (mind in SSticker.mode.revolutionaries), + "Head Revolutionary" = (mind in SSticker.mode.head_revolutionaries) ) for(var/antag_name in other_antags) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 9e9245d274a..a7dc2c86a9f 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -19,7 +19,7 @@ log_ghostemote(message, src) if(src.client) - if(src.client.prefs.muted & MUTE_DEADCHAT) + if(check_mute(client.ckey, MUTE_DEADCHAT)) to_chat(src, "You cannot emote in deadchat (muted).") return diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 12312a4fdff..ae6cd715cec 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -112,7 +112,7 @@ O.show_message(message, m_type) /mob/proc/emote_dead(message) - if(client.prefs.muted & MUTE_DEADCHAT) + if(check_mute(client.ckey, MUTE_DEADCHAT)) to_chat(src, "You cannot send deadchat emotes (muted).") return diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm index 9871c735725..e2c2a224831 100644 --- a/code/modules/mob/living/carbon/alien/larva/emote.dm +++ b/code/modules/mob/living/carbon/alien/larva/emote.dm @@ -14,10 +14,10 @@ if(silent) return if(src.client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot send IC messages (muted).") return - if(src.client.handle_spam_prevention(message,MUTE_IC)) + if(src.client.handle_spam_prevention(message, MUTE_IC)) return if(stat) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 160a9d55288..46a71531dcd 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1203,6 +1203,14 @@ so that different stomachs can handle things in different ways VB*/ sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) see_in_dark = max(see_in_dark, 8) + if(HAS_TRAIT(src, TRAIT_MESON_VISION)) + sight |= SEE_TURFS + lighting_alpha = min(lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) + + if(HAS_TRAIT(src, TRAIT_NIGHT_VISION)) + see_in_dark = max(see_in_dark, 8) + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + SEND_SIGNAL(src, COMSIG_MOB_UPDATE_SIGHT) sync_lighting_plane_alpha() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 7d1ae80a955..f7cc37fbd8b 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -894,13 +894,21 @@ It'll return null if the organ doesn't correspond, so include null checks when u if(!isnull(H.vision_type.lighting_alpha)) H.lighting_alpha = min(H.vision_type.lighting_alpha, H.lighting_alpha) - if(HAS_TRAIT(src, TRAIT_THERMAL_VISION)) + if(HAS_TRAIT(H, TRAIT_MESON_VISION)) + H.sight |= SEE_TURFS + H.lighting_alpha = min(H.lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) + + if(HAS_TRAIT(H, TRAIT_THERMAL_VISION)) H.sight |= (SEE_MOBS) H.lighting_alpha = min(H.lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) if(HAS_TRAIT(H, TRAIT_XRAY_VISION)) H.sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + if(HAS_TRAIT(H, TRAIT_NIGHT_VISION)) + H.see_in_dark = max(H.see_in_dark, 8) + H.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + if(H.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) H.see_invisible = SEE_INVISIBLE_OBSERVER diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index 963b878a758..43c0931f96b 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -21,7 +21,7 @@ death_message = "gives a short series of shrill beeps, their chassis shuddering before falling limp, nonfunctional." death_sounds = list('sound/voice/borg_deathsound.ogg') //I've made this a list in the event we add more sounds for dead robots. - species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN, NO_INTORGANS, NOTRANSSTING) + species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN, NO_INTORGANS) inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_RADIMMUNE, TRAIT_NOGERMS, TRAIT_NODECAY, TRAIT_NOPAIN, TRAIT_GENELESS) //Computers that don't decay? What a lie! inherent_biotypes = MOB_ROBOTIC | MOB_HUMANOID clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 926ed17348e..4a49b965fb8 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -5,7 +5,7 @@ dangerous_existence = TRUE //So so much //language = "Clatter" - species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING, NO_HAIR) + species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_HAIR) inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER) inherent_biotypes = MOB_HUMANOID | MOB_MINERAL forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks diff --git a/code/modules/mob/living/carbon/human/species/vox.dm b/code/modules/mob/living/carbon/human/species/vox.dm index 547f2ad31b1..a52ae7bb06d 100644 --- a/code/modules/mob/living/carbon/human/species/vox.dm +++ b/code/modules/mob/living/carbon/human/species/vox.dm @@ -22,7 +22,7 @@ eyes = "vox_eyes_s" - species_traits = list(NO_CLONESCAN, IS_WHITELISTED, NOTRANSSTING) + species_traits = list(NO_CLONESCAN, IS_WHITELISTED) inherent_traits = list(TRAIT_NOGERMS, TRAIT_NODECAY) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS //Species-fitted 'em all. dietflags = DIET_OMNI diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index bd0aad32dac..148e73e873f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -760,7 +760,7 @@ //called when the mob receives a bright flash /mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash) - if(check_eye_prot() < intensity && (override_blindness_check || !HAS_TRAIT(src, TRAIT_BLIND))) + if(check_eye_prot() < intensity && (override_blindness_check || !HAS_TRAIT(src, TRAIT_BLIND)) && !HAS_TRAIT(src, TRAIT_FLASH_PROTECTION)) overlay_fullscreen("flash", type) addtimer(CALLBACK(src, .proc/clear_fullscreen, "flash", 25), 25) return 1 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 43d1c402fd0..0ac3b497530 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -110,7 +110,7 @@ GLOBAL_LIST_EMPTY(channel_to_radio_key) /mob/living/say(message, verb = "says", sanitize = TRUE, ignore_speech_problems = FALSE, ignore_atmospherics = FALSE, ignore_languages = FALSE) if(client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot speak in IC (Muted).") return @@ -297,7 +297,7 @@ GLOBAL_LIST_EMPTY(channel_to_radio_key) /mob/living/emote(act, type, message, force) //emote code is terrible, this is so that anything that isn't already snowflaked to shit can call the parent and handle emoting sanely if(client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot speak in IC (Muted).") return @@ -352,7 +352,7 @@ GLOBAL_LIST_EMPTY(channel_to_radio_key) /mob/living/proc/whisper_say(list/message_pieces, verb = "whispers") if(client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot speak in IC (Muted).") return diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6c646d2509e..5d20cb66209 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -212,6 +212,20 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( GLOB.shuttle_caller_list += src ..() +/mob/living/silicon/ai/Destroy() + GLOB.ai_list -= src + GLOB.shuttle_caller_list -= src + SSshuttle.autoEvac() + if(malfhacking) + deltimer(malfhacking) + malfhacking = null + QDEL_NULL(eyeobj) // No AI, no Eye + QDEL_NULL(aiPDA) + QDEL_NULL(aiMulti) + QDEL_NULL(aiRadio) + QDEL_NULL(builtInCamera) + return ..() + /mob/living/silicon/ai/proc/on_mob_init() to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).") to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu.") @@ -314,17 +328,6 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( return TRUE -/mob/living/silicon/ai/Destroy() - GLOB.ai_list -= src - GLOB.shuttle_caller_list -= src - SSshuttle.autoEvac() - QDEL_NULL(eyeobj) // No AI, no Eye - if(malfhacking) - deltimer(malfhacking) - malfhacking = null - malfhack = null - return ..() - /* The AI Power supply is a dummy object used for powering the AI since only machinery should be using power. diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 717f9700316..30bd84c48fc 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -27,7 +27,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') + GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/eshuttle_dock.ogg') qdel(doomsday_device) if(explosive) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 21d9e75db90..5748775558a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1147,55 +1147,18 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( cell = null qdel(src) -#define BORG_CAMERA_BUFFER 30 -/mob/living/silicon/robot/Move(a, b, flag) - var/oldLoc = src.loc +#define BORG_CAMERA_BUFFER 3 SECONDS + +/mob/living/silicon/robot/Move(atom/newloc, direct, movetime) + var/oldLoc = loc . = ..() - if(.) - if(src.camera) - if(!updating) - updating = 1 - spawn(BORG_CAMERA_BUFFER) - if(camera && oldLoc != src.loc) - GLOB.cameranet.updatePortableCamera(src.camera) - updating = 0 - if(module) - if(module.type == /obj/item/robot_module/janitor) - var/turf/tile = loc - if(stat != DEAD && isturf(tile)) - var/floor_only = TRUE - for(var/A in tile) - if(istype(A, /obj/effect)) - var/obj/effect/E = A - if(E.is_cleanable()) - var/obj/effect/decal/cleanable/blood/B = E - if(istype(B) && B.off_floor) - floor_only = FALSE - else - qdel(E) - else if(istype(A, /obj/item)) - var/obj/item/cleaned_item = A - cleaned_item.clean_blood() - else if(istype(A, /mob/living/carbon/human)) - var/mob/living/carbon/human/cleaned_human = A - if(cleaned_human.lying) - if(cleaned_human.head) - cleaned_human.head.clean_blood() - cleaned_human.update_inv_head() - if(cleaned_human.wear_suit) - cleaned_human.wear_suit.clean_blood() - cleaned_human.update_inv_wear_suit() - else if(cleaned_human.w_uniform) - cleaned_human.w_uniform.clean_blood() - cleaned_human.update_inv_w_uniform() - if(cleaned_human.shoes) - cleaned_human.shoes.clean_blood() - cleaned_human.update_inv_shoes() - cleaned_human.clean_blood() - to_chat(cleaned_human, "[src] cleans your face!") - if(floor_only) - tile.clean_blood() - return + if(. && !updating && camera) + updating = TRUE + spawn(BORG_CAMERA_BUFFER) + if(camera && oldLoc != loc) + GLOB.cameranet.updatePortableCamera(camera) + updating = FALSE + #undef BORG_CAMERA_BUFFER /mob/living/silicon/robot/proc/self_destruct() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8554068dce8..8a43a2a011e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -447,6 +447,43 @@ /obj/item/extinguisher/mini ) +/obj/item/robot_module/janitor/Initialize(mapload) + . = ..() + var/mob/living/silicon/robot/R = loc + RegisterSignal(R, COMSIG_MOVABLE_MOVED, .proc/on_cyborg_move) + +/** + * Proc called after the janitor cyborg has moved, in order to clean atoms at it's new location. + * + * Arguments: + * * mob/living/silicon/robot/R - The cyborg who moved. + */ +/obj/item/robot_module/janitor/proc/on_cyborg_move(mob/living/silicon/robot/R) + SIGNAL_HANDLER + + if(R.stat == DEAD || !isturf(R.loc)) + return + var/turf/tile = R.loc + for(var/A in tile) + if(iseffect(A)) + var/obj/effect/E = A + if(!E.is_cleanable()) + continue + var/obj/effect/decal/cleanable/blood/B = E + if(istype(B) && B.off_floor) + tile.clean_blood() + else + qdel(E) + else if(isitem(A)) + var/obj/item/I = A + I.clean_blood() + else if(ishuman(A)) + var/mob/living/carbon/human/cleaned_human = A + if(!cleaned_human.lying) + continue + cleaned_human.clean_blood() + to_chat(cleaned_human, "[src] cleans your face!") + /obj/item/reagent_containers/spray/cyborg_lube name = "Lube spray" list_reagents = list("lube" = 250) diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/hostile/bat.dm index 1cc904f1017..9e5ae1e2ec1 100644 --- a/code/modules/mob/living/simple_animal/hostile/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/bat.dm @@ -33,27 +33,16 @@ // break_stuff_probability = 2 faction = list("scarybat") - var/mob/living/owner gold_core_spawnable = HOSTILE_SPAWN -/mob/living/simple_animal/hostile/scarybat/New(loc, mob/living/L as mob) - ..() +/mob/living/simple_animal/hostile/scarybat/Initialize(mapload, mob/living/L) + . = ..() if(istype(L)) - owner = L + faction += "\ref[L]" /mob/living/simple_animal/hostile/scarybat/Process_Spacemove(check_drift = 0) return ..() //No drifting in space for space carp! //original comments do not steal -/mob/living/simple_animal/hostile/scarybat/Found(atom/A)//This is here as a potential override to pick a specific target if available - if(istype(A) && A == owner) - return 0 - return ..() - -/mob/living/simple_animal/hostile/scarybat/CanAttack(atom/the_target)//This is here as a potential override to pick a specific target if available - if(istype(the_target) && the_target == owner) - return 0 - return ..() - /mob/living/simple_animal/hostile/scarybat/AttackingTarget() . =..() var/mob/living/L = . diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 0370a84baba..63a883b4d00 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -31,7 +31,6 @@ move_to_delay = 0 obj_damage = 0 environment_smash = 0 - mouse_opacity = MOUSE_OPACITY_OPAQUE pass_flags = PASSTABLE | PASSGRILLE | PASSMOB density = FALSE mob_size = MOB_SIZE_TINY @@ -51,6 +50,8 @@ var/isqueen = FALSE var/bee_syndicate = FALSE var/icon_base = "bee" + var/last_attack = 0 + var/opacity_time = 1 MINUTES var/static/list/bee_icons = list() var/static/beehometypecache = typecacheof(/obj/structure/beebox) var/static/hydroponicstypecache = typecacheof(/obj/machinery/hydroponics) @@ -162,6 +163,7 @@ else . = ..() if(. && isliving(target) && (!client || a_intent == INTENT_HARM)) + make_opaque() var/mob/living/L = target if(L.reagents) if(beegent) @@ -170,6 +172,23 @@ else L.reagents.add_reagent("spidertoxin", 5) +/mob/living/simple_animal/hostile/poison/bees/proc/make_opaque() + // If a bee attacks someone, make it very easy to hit for a while + last_attack = world.time + mouse_opacity = MOUSE_OPACITY_OPAQUE + +/mob/living/simple_animal/hostile/poison/bees/Life(seconds, times_fired) + . = ..() + if(mind || (mouse_opacity == initial(mouse_opacity))) + return + var/diff = world.time - last_attack + if(diff >= opacity_time) + mouse_opacity = initial(mouse_opacity) + +/mob/living/simple_animal/hostile/poison/bees/sentience_act() + . = ..() + make_opaque() + /mob/living/simple_animal/hostile/poison/bees/proc/assign_reagent(datum/reagent/R) if(istype(R)) beegent = R @@ -233,6 +252,7 @@ desc = "She's the queen of bees, BZZ BZZ" icon_base = "queen" isqueen = TRUE + mouse_opacity = MOUSE_OPACITY_OPAQUE //the Queen doesn't leave the box on her own, and she CERTAINLY doesn't pollinate by herself @@ -324,6 +344,7 @@ search_objects = FALSE //these bees don't care about trivial things like plants, especially when there is havoc to sow bee_syndicate = TRUE var/list/master_and_friends = list() + mouse_opacity = MOUSE_OPACITY_OPAQUE /mob/living/simple_animal/hostile/poison/bees/syndi/New() beegent = GLOB.chemical_reagents_list["facid"] //Prepare to die diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index 4c3635e406a..9d2ddae7a65 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -33,7 +33,7 @@ /mob/living/simple_animal/hostile/netherworld/migo/Initialize(mapload) . = ..() - migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/voice/bcreep.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/mpatchedup.ogg', 'sound/voice/mfeelbetter.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heartbeat.ogg', 'sound/effects/hyperspace_begin.ogg', 'sound/effects/hyperspace_end.ogg', 'sound/goonstation/effects/screech.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/goonstation/misc/airraid_loop.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/chainsaw.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gunshots/gunshot_silenced.ogg', 'sound/weapons/gunshots/gunshot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlock_close.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlock_open.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg', 'sound/ambience/ambigen1.ogg', 'sound/ambience/ambigen3.ogg', 'sound/ambience/ambigen4.ogg', 'sound/ambience/ambigen5.ogg', 'sound/ambience/ambigen6.ogg', 'sound/ambience/ambigen10.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg') //hahahaha fuck you code divers + migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/voice/bcreep.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/mpatchedup.ogg', 'sound/voice/mfeelbetter.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heartbeat.ogg', 'sound/effects/hyperspace_begin.ogg', 'sound/effects/hyperspace_end.ogg', 'sound/goonstation/effects/screech.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/goonstation/misc/airraid_loop.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/chainsaw.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gunshots/gunshot_silenced.ogg', 'sound/weapons/gunshots/gunshot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlock_close.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlock_open.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/alert.ogg', 'sound/ai/radiation.ogg', 'sound/ai/eshuttle_call.ogg', 'sound/ai/eshuttle_dock.ogg', 'sound/ai/eshuttle_recall.ogg', 'sound/ai/aimalf.ogg', 'sound/ambience/ambigen1.ogg', 'sound/ambience/ambigen3.ogg', 'sound/ambience/ambigen4.ogg', 'sound/ambience/ambigen5.ogg', 'sound/ambience/ambigen6.ogg', 'sound/ambience/ambigen10.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg') //hahahaha fuck you code divers /mob/living/simple_animal/hostile/netherworld/migo/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) ..() diff --git a/code/modules/mob/living/simple_animal/slime/emote.dm b/code/modules/mob/living/simple_animal/slime/emote.dm index 0eceec7a124..14ce0de54c8 100644 --- a/code/modules/mob/living/simple_animal/slime/emote.dm +++ b/code/modules/mob/living/simple_animal/slime/emote.dm @@ -19,10 +19,10 @@ if(silent) return if(src.client) - if(client.prefs.muted & MUTE_IC) + if(check_mute(client.ckey, MUTE_IC)) to_chat(src, "You cannot send IC messages (muted).") return - if(src.client.handle_spam_prevention(message,MUTE_IC)) + if(src.client.handle_spam_prevention(message, MUTE_IC)) return if(stat) return diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index e199e81eb69..10d56a99dc0 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -51,7 +51,7 @@ to_chat(src, "Deadchat is globally muted.") return - if(client.prefs.muted & MUTE_DEADCHAT) + if(check_mute(client.ckey, MUTE_DEADCHAT)) to_chat(src, "You cannot talk in deadchat (muted).") return diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 76a5dd4dc03..a3a4d0c58c4 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -40,11 +40,15 @@ GLOBAL_LIST_EMPTY(fax_blacklist) /// Target department to send outgoing faxes to var/destination -/obj/machinery/photocopier/faxmachine/New() - ..() +/obj/machinery/photocopier/faxmachine/Initialize(mapload) + . = ..() GLOB.allfaxes += src update_network() +/obj/machinery/photocopier/faxmachine/Destroy() + GLOB.allfaxes -= src + return ..() + /obj/machinery/photocopier/faxmachine/proc/update_network() if(department != "Unknown") if(!(("[department]" in GLOB.alldepartments) || ("[department]" in GLOB.hidden_departments) || ("[department]" in GLOB.admin_departments) || ("[department]" in GLOB.hidden_admin_departments))) diff --git a/code/modules/pda/mob_hunt_game_app.dm b/code/modules/pda/mob_hunt_game_app.dm index 5db744c37ef..fe4ef7962f3 100644 --- a/code/modules/pda/mob_hunt_game_app.dm +++ b/code/modules/pda/mob_hunt_game_app.dm @@ -28,6 +28,11 @@ disconnect("Program Terminated") STOP_PROCESSING(SSobj, pda) +/datum/data/pda/app/mob_hunter_game/Destroy() + STOP_PROCESSING(SSobj, pda) + SSmob_hunt.connected_clients -= src + return ..() + /datum/data/pda/app/mob_hunter_game/proc/scan_nearby() if(!SSmob_hunt || !connected) return @@ -74,13 +79,14 @@ return scan_nearby() -/datum/data/pda/app/mob_hunter_game/proc/register_capture(datum/mob_hunt/captured, wild = 0) +/datum/data/pda/app/mob_hunter_game/proc/register_capture(datum/mob_hunt/captured, wild = FALSE) if(!captured) - return 0 - my_collection.Add(captured) + return FALSE + my_collection += captured + RegisterSignal(captured, COMSIG_PARENT_QDELETING, .proc/remove_mob) if(wild) wild_captures++ - return 1 + return TRUE /datum/data/pda/app/mob_hunter_game/update_ui(mob/user, list/data) if(!SSmob_hunt || !(src in SSmob_hunt.connected_clients)) @@ -138,12 +144,27 @@ card.forceMove(get_turf(pda)) remove_mob() -/datum/data/pda/app/mob_hunter_game/proc/remove_mob() - if(!my_collection.len) +/** + * Removes a Nanomob from the [my_collection] list. + * + * The Nanomob that is currently selected in the app ([current_index]) will be removed from the list unless a `mob_override` argument is given, in which case that will be removed instead. + * + * Arguments: + * * mob_override - A specific Nanomob to remove from the list. (Optional) + */ +/datum/data/pda/app/mob_hunter_game/proc/remove_mob(datum/mob_hunt/mob_override = null) + SIGNAL_HANDLER + if(!length(my_collection)) return - my_collection.Remove(my_collection[current_index]) - if(current_index > my_collection.len) - current_index = my_collection.len + + if(mob_override) + my_collection -= mob_override + else + my_collection -= my_collection[current_index] + + var/collection_length = length(my_collection) + if(current_index > collection_length) + current_index = collection_length /datum/data/pda/app/mob_hunter_game/proc/set_trap() if(!my_collection.len || !pda || !hacked) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 49044665c08..ffb92c12cc4 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1355,7 +1355,7 @@ for(var/obj/machinery/light/L in area) if(L.nightshift_allowed) L.nightshift_enabled = nightshift_lights - L.update(FALSE) + L.update(FALSE, play_sound = FALSE) CHECK_TICK /obj/machinery/power/apc/proc/relock_callback() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index fcccefbf513..db7152b3505 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -35,6 +35,7 @@ By design, d1 is the smallest direction and d2 is the highest icon_state = "0-1" var/d1 = 0 var/d2 = 1 + plane = FLOOR_PLANE layer = WIRE_LAYER //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4 color = COLOR_RED @@ -68,9 +69,11 @@ By design, d1 is the smallest direction and d2 is the highest d2 = text2num(copytext( icon_state, dash+1 )) var/turf/T = get_turf(src) // hide if turf is not intact + LAZYADD(GLOB.cable_list, src) //add it to the global cable list + if(T.transparent_floor) + return if(level == 1) hide(T.intact) - LAZYADD(GLOB.cable_list, src) //add it to the global cable list /obj/structure/cable/Destroy() // called when a cable is deleted if(powernet) @@ -162,7 +165,8 @@ By design, d1 is the smallest direction and d2 is the highest // /obj/structure/cable/attackby(obj/item/W, mob/user) var/turf/T = get_turf(src) - if(T.intact) + if(T.transparent_floor || T.intact) + to_chat(user, "You can't interact with something that's under the floor!") return else if(istype(W, /obj/item/stack/cable_coil)) @@ -204,7 +208,8 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/wirecutter_act(mob/user, obj/item/I) . = TRUE var/turf/T = get_turf(src) - if(T.intact) + if(T.transparent_floor || T.intact) + to_chat(user, "You can't interact with something that's under the floor!") return if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return @@ -703,7 +708,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain var/turf/T = get_turf(C) - if(!isturf(T) || T.intact) // sanity checks, also stop use interacting with T-scanner revealed cable + if(!isturf(T) || T.intact || T.transparent_floor) // sanity checks, also stop use interacting with T-scanner revealed cable return if(get_dist(C, user) > 1) // make sure it's close enough @@ -719,7 +724,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain // one end of the clicked cable is pointing towards us if(C.d1 == dirn || C.d2 == dirn) - if(U.intact) // can't place a cable if the floor is complete + if(U.intact || U.transparent_floor) // can't place a cable if the floor is complete to_chat(user, "You can't lay cable there unless the floor tiles are removed!") return else diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 38575891d07..eae1047d0e0 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -284,6 +284,12 @@ charge = 0 update_icon() +/obj/item/stock_parts/cell/bluespace/charging + name = "self-charging bluespace power cell" + desc = "An experimental, self-charging, transdimensional power cell." + origin_tech = "powerstorage=10;bluespace=10" + self_recharge = TRUE + /obj/item/stock_parts/cell/infinite name = "infinite-capacity power cell!" icon_state = "icell" @@ -294,7 +300,7 @@ chargerate = 30000 /obj/item/stock_parts/cell/infinite/use() - return 1 + return TRUE /obj/item/stock_parts/cell/infinite/abductor name = "void core" diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index e275b747814..cb605bf2beb 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -8,6 +8,9 @@ #define LIGHT_BROKEN 2 #define LIGHT_BURNED 3 +#define LIGHT_ON_DELAY_LOWER 1 SECONDS +#define LIGHT_ON_DELAY_UPPER 3 SECONDS + /** * # Light fixture frame * @@ -173,6 +176,8 @@ power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list /// Is the light on or off? var/on = FALSE + /// Is the light currently turning on? + var/turning_on = FALSE /// If the light state has changed since the last 'update()', also update the power requirements var/power_state = FALSE /// How much power does it use? @@ -260,7 +265,7 @@ brightness_color = "#a0a080" if(prob(5)) break_light_tube(TRUE) - update(FALSE) + update(FALSE, TRUE, FALSE) /obj/machinery/light/Destroy() var/area/A = get_area(src) @@ -290,62 +295,87 @@ return /** - * Updates the light's properties + * Updates the light's 'on' state and power consumption based on [/obj/machinery/light/var/on]. * - * Updates the icon_state, luminosity, colour, and power usage of the light. - * Also handles rigged light bulbs exploding. * Arguments: - * * trigger - Should this update make the light explode/burn out? (Defaults to TRUE) + * * trigger - Should this update check if the light will explode/burn out. + * * instant - Will the lightbulb turn on instantly, or after a short delay. + * * play_sound - Will the lightbulb play a sound when it's turned on. */ -/obj/machinery/light/proc/update(trigger = TRUE) +/obj/machinery/light/proc/update(trigger = TRUE, instant = FALSE, play_sound = TRUE) switch(status) if(LIGHT_BROKEN, LIGHT_BURNED, LIGHT_EMPTY) on = FALSE - update_icon() - if(on) - var/BR = brightness_range - var/PO = brightness_power - var/CO = brightness_color - if(color) - CO = color - var/area/A = get_area(src) - if(A && A.fire) - CO = bulb_emergency_colour - else if(nightshift_enabled) - BR = nightshift_light_range - PO = nightshift_light_power - if(!color) - CO = nightshift_light_color - var/matching = light && BR == light.light_range && PO == light.light_power && CO == light.light_color - if(!matching) - switchcount++ - if(rigged) - if(status == LIGHT_OK && trigger) - log_admin("LOG: Rigged light explosion, last touched by [fingerprintslast]") - message_admins("LOG: Rigged light explosion, last touched by [fingerprintslast]") - explode() - // Whichever number is smallest gets set as the prob - // Each spook adds a 0.5% to 1% chance of burnout - else if(prob(min(40, switchcount / 10))) - if(status == LIGHT_OK && trigger) - burnout() - - else - use_power = ACTIVE_POWER_USE - set_light(BR, PO, CO) - else + if(on) // Turning on + if(instant) + _turn_on(trigger, play_sound) + else if(!turning_on) + turning_on = TRUE + addtimer(CALLBACK(src, .proc/_turn_on, trigger, play_sound), rand(LIGHT_ON_DELAY_LOWER, LIGHT_ON_DELAY_UPPER)) + else // Turning off use_power = IDLE_POWER_USE set_light(0) + update_icon() active_power_usage = (brightness_range * 10) if(on != power_state) // Light was turned on/off, so update the power usage power_state = on if(on) - static_power_used = brightness_range * 20 //20W per unit luminosity + static_power_used = brightness_range * 20 //20W per unit of luminosity addStaticPower(static_power_used, STATIC_LIGHT) else removeStaticPower(static_power_used, STATIC_LIGHT) +/** + * The actual proc to turn on the lightbulb. + * + * Private proc, do not call directly. Use [/obj/machinery/light/proc/update] instead. + * + * Sets the light power, range, and colour based on environmental conditions such as night shift and fire alarms. + * Also handles light bulbs burning out and exploding if `trigger` is `TRUE`. + */ +/obj/machinery/light/proc/_turn_on(trigger, play_sound = TRUE) + PRIVATE_PROC(TRUE) + if(QDELETED(src)) + return + turning_on = FALSE + if(!on) + return + var/BR = brightness_range + var/PO = brightness_power + var/CO = brightness_color + if(color) + CO = color + var/area/A = get_area(src) + if(A?.fire) + CO = bulb_emergency_colour + else if(nightshift_enabled) + BR = nightshift_light_range + PO = nightshift_light_power + if(!color) + CO = nightshift_light_color + if(light && (BR == light.light_range) && (PO == light.light_power) && (CO == light.light_color)) + return // Nothing's changed here + + switchcount++ + update_icon() + if(trigger && (status == LIGHT_OK)) + if(rigged) + log_admin("LOG: Rigged light explosion, last touched by [fingerprintslast].") + message_admins("LOG: Rigged light explosion, last touched by [fingerprintslast].") + explode() + return + // Whichever number is smallest gets set as the prob + // Each spook adds a 0.5% to 1% chance of burnout + else if(prob(min(40, switchcount / 10))) + burnout() + return + + use_power = ACTIVE_POWER_USE + set_light(BR, PO, CO) + if(play_sound) + playsound(src, 'sound/machines/light_on.ogg', 60, TRUE) + /obj/machinery/light/proc/burnout() status = LIGHT_BURNED icon_state = "[base_state]-burned" @@ -404,7 +434,7 @@ brightness_color = L.brightness_color lightmaterials = L.materials on = has_power() - update() + update(TRUE, TRUE, FALSE) user.drop_item() //drop the item to update overlays and such qdel(L) @@ -538,13 +568,13 @@ if(status != LIGHT_OK) break on = FALSE - update(FALSE) + update(FALSE, TRUE, FALSE) sleep(rand(1, 3)) on = (status == LIGHT_OK) - update(FALSE) + update(FALSE, TRUE, FALSE) sleep(rand(1, 10)) on = (status == LIGHT_OK) - update(FALSE) + update(FALSE, TRUE, FALSE) flickering = FALSE @@ -620,7 +650,7 @@ user.put_in_active_hand(L) status = LIGHT_EMPTY - update(FALSE) + update() return L /obj/machinery/light/attack_tk(mob/user) @@ -649,8 +679,8 @@ if(status == LIGHT_OK) return status = LIGHT_OK - on = 1 - update() + on = TRUE + update(FALSE, TRUE, FALSE) /obj/machinery/light/zap_act(power, zap_flags) var/explosive = zap_flags & ZAP_MACHINE_EXPLOSIVE @@ -856,3 +886,10 @@ on = FALSE visible_message("[src] flickers and falls dark.") update(FALSE) + +#undef LIGHT_OK +#undef LIGHT_EMPTY +#undef LIGHT_BROKEN +#undef LIGHT_BURNED +#undef LIGHT_ON_DELAY_LOWER +#undef LIGHT_ON_DELAY_UPPER diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 996817666ca..e2ac3506855 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -221,7 +221,7 @@ return var/mob/living/carbon/human/H = user var/immune = istype(H.glasses, /obj/item/clothing/glasses/meson) - if(!immune && (get_dist(user, src) < HALLUCINATION_RANGE(power))) + if(!immune && !HAS_TRAIT(H, TRAIT_MESON_VISION) && (get_dist(user, src) < HALLUCINATION_RANGE(power))) . += "You get headaches just from looking at it." /obj/machinery/power/supermatter_crystal/detailed_examine() @@ -537,7 +537,7 @@ //Makes em go mad and accumulate rads. for(var/mob/living/carbon/human/l in view(src, HALLUCINATION_RANGE(power))) // If they can see it without mesons on. Bad on them. - if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) + if(!istype(l.glasses, /obj/item/clothing/glasses/meson) && !HAS_TRAIT(l, TRAIT_MESON_VISION)) var/D = sqrt(1 / max(1, get_dist(l, src))) l.hallucination += power * hallucination_power * D l.hallucination = clamp(l.hallucination, 0, 200) diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index 584079b3c45..d8fc709a656 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -15,6 +15,8 @@ /obj/machinery/power/terminal/Initialize(mapload) . = ..() var/turf/T = get_turf(src) + if(T.transparent_floor) + return if(level == 1) hide(T.intact) diff --git a/code/modules/reagents/chemistry/recipes/drinks.dm b/code/modules/reagents/chemistry/recipes/drinks.dm index f03ae9b316b..c5f4a2b63bf 100644 --- a/code/modules/reagents/chemistry/recipes/drinks.dm +++ b/code/modules/reagents/chemistry/recipes/drinks.dm @@ -915,8 +915,8 @@ name = "Gimlet" id = "gimlet" result = "gimlet" - required_reagents = list("gin" = 1, "limejuice" = 1) - result_amount = 2 + required_reagents = list("gin" = 1, "limejuice" = 1, "sugar" = 1) + result_amount = 3 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' /datum/chemical_reaction/sidecar diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index b2afa9c06e3..cb875dce0cf 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -691,6 +691,7 @@ armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) damage_deflection = 10 flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2 + plane = FLOOR_PLANE layer = DISPOSAL_PIPE_LAYER // slightly lower than wires and other pipes var/base_icon_state // initial icon state on map @@ -757,6 +758,9 @@ // update the icon_state to reflect hidden status /obj/structure/disposalpipe/proc/update() var/turf/T = get_turf(src) + if(T.transparent_floor) + update_icon() + return hide(T.intact && !istype(T, /turf/space)) // space never hides pipes update_icon() @@ -889,15 +893,20 @@ /obj/structure/disposalpipe/attackby(obj/item/I, mob/user, params) var/turf/T = get_turf(src) - if(T.intact) - return // prevent interaction with T-scanner revealed pipes + if(T.intact || T.transparent_floor) + to_chat(user, "You can't interact with something that's under the floor!") + return // prevent interaction with T-scanner revealed pipes and pipes under glass add_fingerprint(user) /obj/structure/disposalpipe/welder_act(mob/user, obj/item/I) . = TRUE + var/turf/T = get_turf(src) if(!I.tool_use_check(user, 0)) return + if(T.transparent_floor) + to_chat(user, "You can't interact with something that's under the floor!") + return WELDER_ATTEMPT_SLICING_MESSAGE if(!I.use_tool(src, user, 30, volume = I.tool_volume)) return @@ -1201,7 +1210,7 @@ return var/turf/T = src.loc - if(T.intact) + if(T.intact || T.transparent_floor) return // prevent interaction with T-scanner revealed pipes src.add_fingerprint(user) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 83b09e5c228..4c7f1e94ca1 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -11,19 +11,17 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). container_type = OPENCONTAINER categories = list( - "AI Modules", - "Computer Boards", - "Engineering Machinery", - "Exosuit Modules", - "Hydroponics Machinery", - "Medical Machinery", - "Misc. Machinery", - "Research Machinery", - "Subspace Telecomms", - "Teleportation Machinery" - ) - - reagents = new() + "AI Modules", + "Computer Boards", + "Engineering Machinery", + "Exosuit Modules", + "Hydroponics Machinery", + "Medical Machinery", + "Misc. Machinery", + "Research Machinery", + "Subspace Telecomms", + "Teleportation Machinery" + ) /obj/machinery/r_n_d/circuit_imprinter/New() ..() @@ -33,8 +31,8 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/reagent_containers/glass/beaker(null) component_parts += new /obj/item/reagent_containers/glass/beaker(null) + create_reagents() RefreshParts() - reagents.my_atom = src /obj/machinery/r_n_d/circuit_imprinter/upgraded/New() ..() @@ -45,7 +43,11 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). component_parts += new /obj/item/reagent_containers/glass/beaker/large(null) component_parts += new /obj/item/reagent_containers/glass/beaker/large(null) RefreshParts() - reagents.my_atom = src + +/obj/machinery/r_n_d/circuit_imprinter/Destroy() + if(linked_console) + linked_console.linked_imprinter = null + return ..() /obj/machinery/r_n_d/circuit_imprinter/RefreshParts() reagents.maximum_volume = 0 diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index f91b8f2012b..7ce266b522a 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -72,6 +72,16 @@ build_path = /obj/item/defibrillator category = list("Medical") +/datum/design/compact_defib + name = "Compact Defibrillator" + desc = "A belt-mounted defibrillator for rapid deployment." + id = "compact_defib" + req_tech = list("materials" = 7, "biotech" = 7, "powerstorage" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 4000, MAT_SILVER = 2000) + build_path = /obj/item/defibrillator/compact + category = list("Medical") + /datum/design/defib_mount name = "Defibrillator Wall Mount" desc = "A wall mount for defibrillator units." diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 41b7fedd6db..5423f41a236 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -29,6 +29,11 @@ Note: Must be placed within 3 tiles of the R&D Console component_parts += new /obj/item/stock_parts/micro_laser/ultra(null) RefreshParts() +/obj/machinery/r_n_d/destructive_analyzer/Destroy() + if(linked_console) + linked_console.linked_destroy = null + return ..() + /obj/machinery/r_n_d/destructive_analyzer/RefreshParts() var/T = 0 for(var/obj/item/stock_parts/S in component_parts) diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 3c2e2cfda0c..4ceacf94301 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -60,14 +60,16 @@ GLOBAL_LIST_EMPTY(message_servers) var/active = TRUE var/decryptkey = "password" -/obj/machinery/message_server/New() +/obj/machinery/message_server/Initialize(mapload) + . = ..() GLOB.message_servers += src decryptkey = GenerateKey() send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") - ..() /obj/machinery/message_server/Destroy() GLOB.message_servers -= src + QDEL_LIST(pda_msgs) + QDEL_LIST(rc_msgs) return ..() /obj/machinery/message_server/process() diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 263e67dd795..0f69a938734 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -14,19 +14,16 @@ Note: Must be placed west/left of and R&D console to function. container_type = OPENCONTAINER categories = list( - "Bluespace", - "Equipment", - "Janitorial", - "Medical", - "Mining", - "Miscellaneous", - "Power", - "Stock Parts", - "Weapons" - ) - - reagents = new() - + "Bluespace", + "Equipment", + "Janitorial", + "Medical", + "Mining", + "Miscellaneous", + "Power", + "Stock Parts", + "Weapons" + ) /obj/machinery/r_n_d/protolathe/New() ..() @@ -38,10 +35,9 @@ Note: Must be placed west/left of and R&D console to function. component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/reagent_containers/glass/beaker/large(null) component_parts += new /obj/item/reagent_containers/glass/beaker/large(null) + create_reagents() RefreshParts() - reagents.my_atom = src - /obj/machinery/r_n_d/protolathe/upgraded/New() ..() component_parts = list() @@ -54,7 +50,10 @@ Note: Must be placed west/left of and R&D console to function. component_parts += new /obj/item/reagent_containers/glass/beaker/large(null) RefreshParts() - reagents.my_atom = src +/obj/machinery/r_n_d/protolathe/Destroy() + if(linked_console) + linked_console.linked_lathe = null + return ..() /obj/machinery/r_n_d/protolathe/RefreshParts() var/T = 0 diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index ffa8ac763de..03c916e8b69 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -176,6 +176,20 @@ won't update every console in existence) but it's more of a hassle to do. Also, SyncRDevices() /obj/machinery/computer/rdconsole/Destroy() + QDEL_NULL(files) + QDEL_NULL(t_disk) + QDEL_NULL(d_disk) + QDEL_LIST(matching_designs) + if(linked_destroy) + linked_destroy.linked_console = null + linked_destroy = null + if(linked_lathe) + linked_lathe.linked_console = null + linked_lathe = null + if(linked_imprinter) + linked_imprinter.linked_console = null + linked_imprinter = null + if(wait_message_timer) deltimer(wait_message_timer) wait_message_timer = 0 diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index ac78e892c7e..3fba5e8093a 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -32,12 +32,17 @@ wires["Black"] = 0 wires["White"] = 0 var/list/w = list("Red","Blue","Green","Yellow","Black","White") - src.hack_wire = pick(w) - w -= src.hack_wire - src.shock_wire = pick(w) - w -= src.shock_wire - src.disable_wire = pick(w) - w -= src.disable_wire + hack_wire = pick_n_take(w) + shock_wire = pick_n_take(w) + disable_wire = pick_n_take(w) + +/obj/machinery/r_n_d/Destroy() + if(loaded_item) + loaded_item.forceMove(get_turf(src)) + loaded_item = null + linked_console = null + materials = null + return ..() /obj/machinery/r_n_d/attack_hand(mob/user as mob) if(shocked) diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index b597af644f9..d4b4f5fc929 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -340,7 +340,7 @@ /obj/item/organ/internal/cyberimp/arm/surgery, /obj/item/organ/internal/cyberimp/chest/nutriment ) - belt = /obj/item/defibrillator/compact/loaded + belt = /obj/item/defibrillator/compact/advanced/loaded l_pocket = /obj/item/reagent_containers/hypospray/safety/ert r_pocket = /obj/item/melee/classic_baton/telescopic @@ -369,7 +369,7 @@ mask = /obj/item/clothing/mask/gas/sechailer/swat suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 - belt = /obj/item/defibrillator/compact/loaded + belt = /obj/item/defibrillator/compact/advanced/loaded l_pocket = /obj/item/reagent_containers/hypospray/combat/nanites r_pocket = /obj/item/reagent_containers/hypospray/autoinjector diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index d3d4be7dff9..c9bf85eaac4 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -33,7 +33,7 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur switch(level) if(SEC_LEVEL_GREEN) - GLOB.security_announcement_down.Announce("All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.","Attention! Security level lowered to green.") + GLOB.security_announcement_down.Announce("All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.","Attention! Security level lowered to green.", 'sound/AI/green.ogg') GLOB.security_level = SEC_LEVEL_GREEN post_status("alert", "outline") @@ -45,9 +45,9 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur if(SEC_LEVEL_BLUE) if(GLOB.security_level < SEC_LEVEL_BLUE) - GLOB.security_announcement_up.Announce("The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible and random searches are permitted.","Attention! Security level elevated to blue.") + GLOB.security_announcement_up.Announce("The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible and random searches are permitted.","Attention! Security level elevated to blue.", 'sound/AI/blue.ogg') else - GLOB.security_announcement_down.Announce("The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed.","Attention! Security level lowered to blue.") + GLOB.security_announcement_down.Announce("The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed.","Attention! Security level lowered to blue.", 'sound/AI/blue.ogg') GLOB.security_level = SEC_LEVEL_BLUE post_status("alert", "outline") @@ -59,9 +59,9 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur if(SEC_LEVEL_RED) if(GLOB.security_level < SEC_LEVEL_RED) - GLOB.security_announcement_up.Announce("There is an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!") + GLOB.security_announcement_up.Announce("There is an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!", 'sound/AI/red.ogg') else - GLOB.security_announcement_down.Announce("The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!") + GLOB.security_announcement_down.Announce("The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!", 'sound/AI/red.ogg') GLOB.security_level = SEC_LEVEL_RED var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in GLOB.airlocks @@ -77,7 +77,7 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") if(SEC_LEVEL_GAMMA) - GLOB.security_announcement_up.Announce("Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location.", "Attention! Gamma security level activated!", sound('sound/effects/new_siren.ogg')) + GLOB.security_announcement_up.Announce("Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location.", "Attention! Gamma security level activated!", 'sound/effects/new_siren.ogg', new_sound2 = 'sound/AI/gamma.ogg') GLOB.security_level = SEC_LEVEL_GAMMA if(GLOB.security_level < SEC_LEVEL_RED) @@ -95,7 +95,7 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur FA.update_icon() if(SEC_LEVEL_EPSILON) - GLOB.security_announcement_up.Announce("Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated.","Attention! Epsilon security level activated!", new_sound = sound('sound/effects/purge_siren.ogg')) + GLOB.security_announcement_up.Announce("Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated.","Attention! Epsilon security level activated!", 'sound/effects/purge_siren.ogg', new_sound2 = 'sound/AI/epsilon.ogg') GLOB.security_level = SEC_LEVEL_EPSILON post_status("alert", "epsilonalert") @@ -106,7 +106,7 @@ GLOBAL_DATUM_INIT(security_announcement_down, /datum/announcement/priority/secur FA.overlays += image('icons/obj/monitors.dmi', "overlay_epsilon") if(SEC_LEVEL_DELTA) - GLOB.security_announcement_up.Announce("The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill.","Attention! Delta security level reached!", new_sound = sound('sound/effects/deltaalarm.ogg')) + GLOB.security_announcement_up.Announce("The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill.","Attention! Delta security level reached!", 'sound/effects/deltaalarm.ogg', new_sound2 = 'sound/AI/delta.ogg') GLOB.security_level = SEC_LEVEL_DELTA post_status("alert", "deltaalert") diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 8a5c2118794..f9c3edf437c 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -86,12 +86,15 @@ travelDir = 0 var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself - var/datum/announcement/priority/emergency_shuttle_docked = new(0, new_sound = sound('sound/AI/shuttledock.ogg')) - var/datum/announcement/priority/emergency_shuttle_called = new(0, new_sound = sound('sound/AI/shuttlecalled.ogg')) - var/datum/announcement/priority/emergency_shuttle_recalled = new(0, new_sound = sound('sound/AI/shuttlerecalled.ogg')) + var/datum/announcement/priority/emergency_shuttle_docked = new(0, new_sound = sound('sound/AI/eshuttle_dock.ogg')) + var/datum/announcement/priority/emergency_shuttle_called = new(0, new_sound = sound('sound/AI/eshuttle_call.ogg')) + var/datum/announcement/priority/emergency_shuttle_recalled = new(0, new_sound = sound('sound/AI/eshuttle_recall.ogg')) var/canRecall = TRUE //no bad condom, do not recall the crew transfer shuttle! + var/datum/announcement/priority/crew_shuttle_called = new(0, new_sound = sound('sound/AI/cshuttle.ogg')) + var/datum/announcement/priority/crew_shuttle_docked = new(0, new_sound = sound('sound/AI/cshuttle_dock.ogg')) + /obj/docking_port/mobile/emergency/register() if(!..()) @@ -146,9 +149,10 @@ SSshuttle.emergencyLastCallLoc = signalOrigin else SSshuttle.emergencyLastCallLoc = null - - emergency_shuttle_called.Announce("The emergency shuttle has been called. [redAlert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergencyLastCallLoc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ]") - + if(canRecall) + emergency_shuttle_called.Announce("The emergency shuttle has been called. [redAlert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergencyLastCallLoc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ]") + else + crew_shuttle_called.Announce("The crew transfer shuttle has been called. [redAlert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason]") /obj/docking_port/mobile/emergency/cancel(area/signalOrigin) if(!canRecall) @@ -230,7 +234,10 @@ return mode = SHUTTLE_DOCKED timer = world.time - emergency_shuttle_docked.Announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.") + if(canRecall) + emergency_shuttle_docked.Announce("The emergency shuttle has docked with the station. You have [timeLeft(600)] minutes to board the emergency shuttle.") + else + crew_shuttle_docked.Announce("The crew transfer shuttle has docked with the station. You have [timeLeft(600)] minutes to board the crew transfer shuttle.") /* //Gangs only have one attempt left if the shuttle has docked with the station to prevent suffering from dominator delays diff --git a/code/modules/station_goals/bluespace_tap.dm b/code/modules/station_goals/bluespace_tap.dm index 6e6898bde1f..9bdf10d9407 100644 --- a/code/modules/station_goals/bluespace_tap.dm +++ b/code/modules/station_goals/bluespace_tap.dm @@ -326,7 +326,7 @@ else if(input_level > desired_level) input_level-- if(prob(input_level - safe_levels + (emagged * 5))) //at dangerous levels, start doing freaky shit. prob with values less than 0 treat it as 0 - GLOB.event_announcement.Announce("Unexpected power spike during Bluespace Harvester Operation. Extra-dimensional intruder alert. Expected location: [get_area(src).name]. [emagged ? "DANGER: Emergency shutdown failed! Please proceed with manual shutdown." : "Emergency shutdown initiated."]", "Bluespace Harvester Malfunction") + GLOB.event_announcement.Announce("Unexpected power spike during Bluespace Harvester Operation. Extra-dimensional intruder alert. Expected location: [get_area(src).name]. [emagged ? "DANGER: Emergency shutdown failed! Please proceed with manual shutdown." : "Emergency shutdown initiated."]", "Bluespace Harvester Malfunction", 'sound/AI/harvester.ogg') if(!emagged) input_level = 0 //emergency shutdown unless we're sabotaged desired_level = 0 diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 0a046c3dcff..cfb8a3367f8 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -28,7 +28,7 @@ return FALSE /obj/machinery/bsa - icon = 'icons/obj/machines/particle_accelerator3.dmi' + icon = 'icons/obj/machines/particle_accelerator.dmi' density = 1 anchored = 1 @@ -260,7 +260,7 @@ var/target use_power = NO_POWER_USE circuit = /obj/item/circuitboard/computer/bsa_control - icon = 'icons/obj/machines/particle_accelerator3.dmi' + icon = 'icons/obj/machines/particle_accelerator.dmi' icon_state = "control_boxp" var/icon_state_broken = "control_box" var/icon_state_nopower = "control_boxw" diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index 87323fc2042..e5d089c7fe9 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -12,6 +12,11 @@ AA = new(src) soundloop = new(list(src), FALSE) +/obj/vehicle/ambulance/Destroy() + QDEL_NULL(AA) + QDEL_NULL(soundloop) + return ..() + /datum/action/ambulance_alarm name = "Toggle Sirens" icon_icon = 'icons/obj/vehicles.dmi' diff --git a/code/modules/world_topic/status.dm b/code/modules/world_topic/status.dm index 4f964eeeb3b..8137cb7f10d 100644 --- a/code/modules/world_topic/status.dm +++ b/code/modules/world_topic/status.dm @@ -31,7 +31,8 @@ status_info["players"] = player_count status_info["admins"] = admin_count status_info["map_name"] = SSmapping.map_datum.fluff_name - + status_info["round_id"] = GLOB.round_id + // Add more info if we are authed if(key_valid) if(SSticker && SSticker.mode) diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index dd893450d75..63a203345ae 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/species/vox/back.dmi b/icons/mob/clothing/species/vox/back.dmi index a0a8445964a..7747d55af60 100644 Binary files a/icons/mob/clothing/species/vox/back.dmi and b/icons/mob/clothing/species/vox/back.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index a0b551e83bd..b5659069b65 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 39636bd7bab..f712201f5e4 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/biogenerator.dmi b/icons/obj/biogenerator.dmi index 02cf868a31f..7989d6f355f 100644 Binary files a/icons/obj/biogenerator.dmi and b/icons/obj/biogenerator.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 042b5fe7f38..dcfe0a20810 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/computer3.dmi b/icons/obj/computer3.dmi deleted file mode 100644 index 30705076d62..00000000000 Binary files a/icons/obj/computer3.dmi and /dev/null differ diff --git a/icons/obj/defib.dmi b/icons/obj/defib.dmi new file mode 100644 index 00000000000..ca471bd5ffa Binary files /dev/null and b/icons/obj/defib.dmi differ diff --git a/icons/obj/hydroponics/equipment.dmi b/icons/obj/hydroponics/equipment.dmi index 3cb9e63cb38..fdb7ec1d0a7 100644 Binary files a/icons/obj/hydroponics/equipment.dmi and b/icons/obj/hydroponics/equipment.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index d00d1d4fb94..fd2b776aa43 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index e0db0804fa6..ce0beb1b201 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/HONKputer.dmi b/icons/obj/machines/HONKputer.dmi deleted file mode 100644 index 921f6cf219f..00000000000 Binary files a/icons/obj/machines/HONKputer.dmi and /dev/null differ diff --git a/icons/obj/machines/am_engine.dmi b/icons/obj/machines/am_engine.dmi deleted file mode 100644 index 9d32bb0d406..00000000000 Binary files a/icons/obj/machines/am_engine.dmi and /dev/null differ diff --git a/icons/obj/machines/antenna.dmi b/icons/obj/machines/antenna.dmi deleted file mode 100644 index 5bf1e318a7c..00000000000 Binary files a/icons/obj/machines/antenna.dmi and /dev/null differ diff --git a/icons/obj/machines/antimatter.dmi b/icons/obj/machines/antimatter.dmi deleted file mode 100644 index a4be203e1a3..00000000000 Binary files a/icons/obj/machines/antimatter.dmi and /dev/null differ diff --git a/icons/obj/machines/broadcast.dmi b/icons/obj/machines/broadcast.dmi deleted file mode 100644 index c2c7ba0f61f..00000000000 Binary files a/icons/obj/machines/broadcast.dmi and /dev/null differ diff --git a/icons/obj/machines/fiber.dmi b/icons/obj/machines/fiber.dmi deleted file mode 100644 index c75fd6482ea..00000000000 Binary files a/icons/obj/machines/fiber.dmi and /dev/null differ diff --git a/icons/obj/machines/heavy_fiber.dmi b/icons/obj/machines/heavy_fiber.dmi deleted file mode 100644 index 8bd8d0747d1..00000000000 Binary files a/icons/obj/machines/heavy_fiber.dmi and /dev/null differ diff --git a/icons/obj/machines/lasers.dmi b/icons/obj/machines/lasers.dmi deleted file mode 100644 index 1925fb40860..00000000000 Binary files a/icons/obj/machines/lasers.dmi and /dev/null differ diff --git a/icons/obj/machines/mining_machines.dmi b/icons/obj/machines/mining_machines.dmi index 83c12986772..d6fc1afd716 100644 Binary files a/icons/obj/machines/mining_machines.dmi and b/icons/obj/machines/mining_machines.dmi differ diff --git a/icons/obj/machines/netcable.dmi b/icons/obj/machines/netcable.dmi deleted file mode 100644 index 5e2bc3208b4..00000000000 Binary files a/icons/obj/machines/netcable.dmi and /dev/null differ diff --git a/icons/obj/machines/netobjs.dmi b/icons/obj/machines/netobjs.dmi deleted file mode 100644 index f13172260ca..00000000000 Binary files a/icons/obj/machines/netobjs.dmi and /dev/null differ diff --git a/icons/obj/machines/particle_accelerator.dmi b/icons/obj/machines/particle_accelerator.dmi index f8455d80b49..31e1b92eaf6 100644 Binary files a/icons/obj/machines/particle_accelerator.dmi and b/icons/obj/machines/particle_accelerator.dmi differ diff --git a/icons/obj/machines/particle_accelerator2.dmi b/icons/obj/machines/particle_accelerator2.dmi deleted file mode 100644 index d0263af5ad9..00000000000 Binary files a/icons/obj/machines/particle_accelerator2.dmi and /dev/null differ diff --git a/icons/obj/machines/particle_accelerator3.dmi b/icons/obj/machines/particle_accelerator3.dmi deleted file mode 100644 index c601b8d1b6a..00000000000 Binary files a/icons/obj/machines/particle_accelerator3.dmi and /dev/null differ diff --git a/icons/obj/machines/washing_machine.dmi b/icons/obj/machines/washing_machine.dmi index ef80dac0d8a..e3fae0828ab 100644 Binary files a/icons/obj/machines/washing_machine.dmi and b/icons/obj/machines/washing_machine.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 5652b1f6e9b..4d9983203a2 100755 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/stock_parts.dmi b/icons/obj/stock_parts.dmi index 3526ebc215c..8eed649cb05 100644 Binary files a/icons/obj/stock_parts.dmi and b/icons/obj/stock_parts.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index bb3c0e531b0..6f4107c1911 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/turf/floors/glass.dmi b/icons/turf/floors/glass.dmi new file mode 100644 index 00000000000..1d0f13d0c06 Binary files /dev/null and b/icons/turf/floors/glass.dmi differ diff --git a/icons/turf/floors/plasmaglass.dmi b/icons/turf/floors/plasmaglass.dmi new file mode 100644 index 00000000000..629d8be41ec Binary files /dev/null and b/icons/turf/floors/plasmaglass.dmi differ diff --git a/icons/turf/floors/plastitaniumglass.dmi b/icons/turf/floors/plastitaniumglass.dmi new file mode 100644 index 00000000000..39a56f32b00 Binary files /dev/null and b/icons/turf/floors/plastitaniumglass.dmi differ diff --git a/icons/turf/floors/reinf_glass.dmi b/icons/turf/floors/reinf_glass.dmi new file mode 100644 index 00000000000..c5072fd11e0 Binary files /dev/null and b/icons/turf/floors/reinf_glass.dmi differ diff --git a/icons/turf/floors/reinf_plasmaglass.dmi b/icons/turf/floors/reinf_plasmaglass.dmi new file mode 100644 index 00000000000..c46025e5291 Binary files /dev/null and b/icons/turf/floors/reinf_plasmaglass.dmi differ diff --git a/icons/turf/floors/titaniumglass.dmi b/icons/turf/floors/titaniumglass.dmi new file mode 100644 index 00000000000..597487ff175 Binary files /dev/null and b/icons/turf/floors/titaniumglass.dmi differ diff --git a/paradise.dme b/paradise.dme index 18d35148d67..9af33a57227 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1154,6 +1154,7 @@ #include "code\game\turfs\simulated\floor\misc_floor.dm" #include "code\game\turfs\simulated\floor\plasteel_floor.dm" #include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\simulated\floor\transparent.dm" #include "code\game\turfs\space\space.dm" #include "code\game\turfs\space\transit.dm" #include "code\game\verbs\ooc.dm" @@ -1175,6 +1176,7 @@ #include "code\modules\admin\holder2.dm" #include "code\modules\admin\IsBanned.dm" #include "code\modules\admin\machine_upgrade.dm" +#include "code\modules\admin\mute.dm" #include "code\modules\admin\NewBan.dm" #include "code\modules\admin\outfits.dm" #include "code\modules\admin\player_panel.dm" diff --git a/sound/AI/alert.ogg b/sound/AI/alert.ogg new file mode 100644 index 00000000000..66218bb12a4 Binary files /dev/null and b/sound/AI/alert.ogg differ diff --git a/sound/AI/aliens.ogg b/sound/AI/aliens.ogg index f7d1746247f..998cc724357 100644 Binary files a/sound/AI/aliens.ogg and b/sound/AI/aliens.ogg differ diff --git a/sound/AI/animes.ogg b/sound/AI/animes.ogg index a46a207edc4..0e393fbb29f 100644 Binary files a/sound/AI/animes.ogg and b/sound/AI/animes.ogg differ diff --git a/sound/AI/anomaly.ogg b/sound/AI/anomaly.ogg new file mode 100644 index 00000000000..78a6b48c169 Binary files /dev/null and b/sound/AI/anomaly.ogg differ diff --git a/sound/AI/attention.ogg b/sound/AI/attention.ogg index 912be4425eb..d8a0b98a4aa 100644 Binary files a/sound/AI/attention.ogg and b/sound/AI/attention.ogg differ diff --git a/sound/AI/blue.ogg b/sound/AI/blue.ogg new file mode 100644 index 00000000000..bfbd0a50b93 Binary files /dev/null and b/sound/AI/blue.ogg differ diff --git a/sound/AI/brand_intelligence.ogg b/sound/AI/brand_intelligence.ogg new file mode 100644 index 00000000000..bd35a794bab Binary files /dev/null and b/sound/AI/brand_intelligence.ogg differ diff --git a/sound/AI/commandreport.ogg b/sound/AI/commandreport.ogg index 82e4ca425de..91569bf738a 100644 Binary files a/sound/AI/commandreport.ogg and b/sound/AI/commandreport.ogg differ diff --git a/sound/AI/cshuttle.ogg b/sound/AI/cshuttle.ogg new file mode 100644 index 00000000000..bc6dfbe2d56 Binary files /dev/null and b/sound/AI/cshuttle.ogg differ diff --git a/sound/AI/cshuttle_dock.ogg b/sound/AI/cshuttle_dock.ogg new file mode 100644 index 00000000000..7018743fab4 Binary files /dev/null and b/sound/AI/cshuttle_dock.ogg differ diff --git a/sound/AI/delam.ogg b/sound/AI/delam.ogg new file mode 100644 index 00000000000..b1822b5a69f Binary files /dev/null and b/sound/AI/delam.ogg differ diff --git a/sound/AI/delta.ogg b/sound/AI/delta.ogg new file mode 100644 index 00000000000..5ed127bc694 Binary files /dev/null and b/sound/AI/delta.ogg differ diff --git a/sound/AI/door_runtimes.ogg b/sound/AI/door_runtimes.ogg new file mode 100644 index 00000000000..d67b6568b3b Binary files /dev/null and b/sound/AI/door_runtimes.ogg differ diff --git a/sound/AI/door_runtimes_fix.ogg b/sound/AI/door_runtimes_fix.ogg new file mode 100644 index 00000000000..1508ff9d027 Binary files /dev/null and b/sound/AI/door_runtimes_fix.ogg differ diff --git a/sound/AI/elec_storm.ogg b/sound/AI/elec_storm.ogg new file mode 100644 index 00000000000..b4a417eacd4 Binary files /dev/null and b/sound/AI/elec_storm.ogg differ diff --git a/sound/AI/epsilon.ogg b/sound/AI/epsilon.ogg new file mode 100644 index 00000000000..0ef61026881 Binary files /dev/null and b/sound/AI/epsilon.ogg differ diff --git a/sound/AI/eshuttle_call.ogg b/sound/AI/eshuttle_call.ogg new file mode 100644 index 00000000000..b7fcc6f4213 Binary files /dev/null and b/sound/AI/eshuttle_call.ogg differ diff --git a/sound/AI/eshuttle_dock.ogg b/sound/AI/eshuttle_dock.ogg new file mode 100644 index 00000000000..246a0a603a4 Binary files /dev/null and b/sound/AI/eshuttle_dock.ogg differ diff --git a/sound/AI/eshuttle_recall.ogg b/sound/AI/eshuttle_recall.ogg new file mode 100644 index 00000000000..07d665f1052 Binary files /dev/null and b/sound/AI/eshuttle_recall.ogg differ diff --git a/sound/AI/flare.ogg b/sound/AI/flare.ogg new file mode 100644 index 00000000000..7eafb3f832b Binary files /dev/null and b/sound/AI/flare.ogg differ diff --git a/sound/AI/gamma.ogg b/sound/AI/gamma.ogg new file mode 100644 index 00000000000..4738f1c8959 Binary files /dev/null and b/sound/AI/gamma.ogg differ diff --git a/sound/AI/granomalies.ogg b/sound/AI/granomalies.ogg deleted file mode 100644 index 89b368d596a..00000000000 Binary files a/sound/AI/granomalies.ogg and /dev/null differ diff --git a/sound/AI/green.ogg b/sound/AI/green.ogg new file mode 100644 index 00000000000..44cb4108976 Binary files /dev/null and b/sound/AI/green.ogg differ diff --git a/sound/AI/harvester.ogg b/sound/AI/harvester.ogg new file mode 100644 index 00000000000..a10b308ed09 Binary files /dev/null and b/sound/AI/harvester.ogg differ diff --git a/sound/AI/intercept.ogg b/sound/AI/intercept.ogg index 3569a07d401..30dba660681 100644 Binary files a/sound/AI/intercept.ogg and b/sound/AI/intercept.ogg differ diff --git a/sound/AI/intercept2.ogg b/sound/AI/intercept2.ogg deleted file mode 100644 index ab106a7295a..00000000000 Binary files a/sound/AI/intercept2.ogg and /dev/null differ diff --git a/sound/AI/ions.ogg b/sound/AI/ions.ogg new file mode 100644 index 00000000000..f92c8b0b050 Binary files /dev/null and b/sound/AI/ions.ogg differ diff --git a/sound/AI/ionstorm.ogg b/sound/AI/ionstorm.ogg deleted file mode 100644 index 9f39713de6e..00000000000 Binary files a/sound/AI/ionstorm.ogg and /dev/null differ diff --git a/sound/AI/meteors.ogg b/sound/AI/meteors.ogg index 8f1c3aeacbb..e49b92065e6 100644 Binary files a/sound/AI/meteors.ogg and b/sound/AI/meteors.ogg differ diff --git a/sound/AI/newai.ogg b/sound/AI/newai.ogg deleted file mode 100644 index 35aba34564f..00000000000 Binary files a/sound/AI/newai.ogg and /dev/null differ diff --git a/sound/AI/newroundsexy.ogg b/sound/AI/newroundsexy.ogg index afe5630f04d..1e7242dbff2 100644 Binary files a/sound/AI/newroundsexy.ogg and b/sound/AI/newroundsexy.ogg differ diff --git a/sound/AI/newroundsexy2.ogg b/sound/AI/newroundsexy2.ogg deleted file mode 100644 index 531bba10014..00000000000 Binary files a/sound/AI/newroundsexy2.ogg and /dev/null differ diff --git a/sound/AI/outbreak3.ogg b/sound/AI/outbreak3.ogg new file mode 100644 index 00000000000..0874464750b Binary files /dev/null and b/sound/AI/outbreak3.ogg differ diff --git a/sound/AI/outbreak5.ogg b/sound/AI/outbreak5.ogg index 39c79c920fd..51869a19fcd 100644 Binary files a/sound/AI/outbreak5.ogg and b/sound/AI/outbreak5.ogg differ diff --git a/sound/AI/outbreak7.ogg b/sound/AI/outbreak7.ogg index f21d4fca443..edf21efd502 100644 Binary files a/sound/AI/outbreak7.ogg and b/sound/AI/outbreak7.ogg differ diff --git a/sound/AI/power_overload.ogg b/sound/AI/power_overload.ogg new file mode 100644 index 00000000000..913cae054a3 Binary files /dev/null and b/sound/AI/power_overload.ogg differ diff --git a/sound/AI/poweroff.ogg b/sound/AI/poweroff.ogg deleted file mode 100644 index 1c6377c9d8d..00000000000 Binary files a/sound/AI/poweroff.ogg and /dev/null differ diff --git a/sound/AI/poweron.ogg b/sound/AI/poweron.ogg deleted file mode 100644 index 9d18797d6ea..00000000000 Binary files a/sound/AI/poweron.ogg and /dev/null differ diff --git a/sound/AI/radiation.ogg b/sound/AI/radiation.ogg index ef395af3101..d60bec74b05 100644 Binary files a/sound/AI/radiation.ogg and b/sound/AI/radiation.ogg differ diff --git a/sound/AI/red.ogg b/sound/AI/red.ogg new file mode 100644 index 00000000000..3f7ad4ce9e3 Binary files /dev/null and b/sound/AI/red.ogg differ diff --git a/sound/AI/scrubbers.ogg b/sound/AI/scrubbers.ogg new file mode 100644 index 00000000000..ccdb40949c3 Binary files /dev/null and b/sound/AI/scrubbers.ogg differ diff --git a/sound/AI/shuttlecalled.ogg b/sound/AI/shuttlecalled.ogg deleted file mode 100644 index 716bf824654..00000000000 Binary files a/sound/AI/shuttlecalled.ogg and /dev/null differ diff --git a/sound/AI/shuttledock.ogg b/sound/AI/shuttledock.ogg deleted file mode 100644 index 0f70bebc751..00000000000 Binary files a/sound/AI/shuttledock.ogg and /dev/null differ diff --git a/sound/AI/shuttlerecalled.ogg b/sound/AI/shuttlerecalled.ogg deleted file mode 100644 index 5f6db404b87..00000000000 Binary files a/sound/AI/shuttlerecalled.ogg and /dev/null differ diff --git a/sound/AI/spanomalies.ogg b/sound/AI/spanomalies.ogg index 7680726f153..44f249c24ab 100644 Binary files a/sound/AI/spanomalies.ogg and b/sound/AI/spanomalies.ogg differ diff --git a/sound/AI/welcome.ogg b/sound/AI/welcome.ogg index c7013dcbd5f..87354bf38e8 100644 Binary files a/sound/AI/welcome.ogg and b/sound/AI/welcome.ogg differ diff --git a/sound/effects/footstep/glass1.ogg b/sound/effects/footstep/glass1.ogg new file mode 100644 index 00000000000..7afddff640a Binary files /dev/null and b/sound/effects/footstep/glass1.ogg differ diff --git a/sound/effects/footstep/glass2.ogg b/sound/effects/footstep/glass2.ogg new file mode 100644 index 00000000000..5bac4625b68 Binary files /dev/null and b/sound/effects/footstep/glass2.ogg differ diff --git a/sound/effects/footstep/glass3.ogg b/sound/effects/footstep/glass3.ogg new file mode 100644 index 00000000000..5d355e8ef17 Binary files /dev/null and b/sound/effects/footstep/glass3.ogg differ diff --git a/sound/effects/footstep/glassbarefoot1.ogg b/sound/effects/footstep/glassbarefoot1.ogg new file mode 100644 index 00000000000..7dd8d9e5371 Binary files /dev/null and b/sound/effects/footstep/glassbarefoot1.ogg differ diff --git a/sound/effects/footstep/glassbarefoot2.ogg b/sound/effects/footstep/glassbarefoot2.ogg new file mode 100644 index 00000000000..b82c3e0d9d1 Binary files /dev/null and b/sound/effects/footstep/glassbarefoot2.ogg differ diff --git a/sound/effects/footstep/glassbarefoot3.ogg b/sound/effects/footstep/glassbarefoot3.ogg new file mode 100644 index 00000000000..317bf53fcc8 Binary files /dev/null and b/sound/effects/footstep/glassbarefoot3.ogg differ diff --git a/sound/machines/light_on.ogg b/sound/machines/light_on.ogg new file mode 100644 index 00000000000..2442739a040 Binary files /dev/null and b/sound/machines/light_on.ogg differ diff --git a/sound/machines/lightswitch.ogg b/sound/machines/lightswitch.ogg new file mode 100644 index 00000000000..e91a6c3030c Binary files /dev/null and b/sound/machines/lightswitch.ogg differ diff --git a/tools/announcement_voice_filter/.bitwig-project b/tools/announcement_voice_filter/.bitwig-project new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/announcement_voice_filter/README.md b/tools/announcement_voice_filter/README.md new file mode 100644 index 00000000000..db389ad1183 --- /dev/null +++ b/tools/announcement_voice_filter/README.md @@ -0,0 +1,17 @@ +# AI Announcement Voice Effects Template +This template file helps apply the correct sound effects to generate further Station AI announcement messages. + +--- + +### Requirements +You need a copy (full or trial) of Bitwig Studio 3.x, and access to Amazon Polly's free tier. If you are using a trial version of Bitwig Studio, you also require a free audio editor such as Audacity. + + +### Amazon Polly +Plain text, Standard engine, Englush US, Joanna - Female. + + +### Bitwig studio +All you need to do is drag your generated polly voice into the project. +Ensure the tempo is 114.4 for your track. +Record or export the output directly to OGG (if you own a license) or to a free editor such as Audacity via loopback recording diff --git a/tools/announcement_voice_filter/StationAI.bwproject b/tools/announcement_voice_filter/StationAI.bwproject new file mode 100644 index 00000000000..a7fc00a20b9 Binary files /dev/null and b/tools/announcement_voice_filter/StationAI.bwproject differ