diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm index cb6d9f302ade..aec12ea281fb 100644 --- a/_maps/map_files/stations/cerestation.dmm +++ b/_maps/map_files/stations/cerestation.dmm @@ -35460,7 +35460,7 @@ color = "#954535" }, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + icon_state = "neutralfull" }, /area/station/hallway/primary/fore/north) "emw" = ( @@ -49509,8 +49509,8 @@ /obj/machinery/door/airlock/security/glass{ name = "Escape Shuttle Cell" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/turf/simulated/floor/plating, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/turf/simulated/floor/plasteel, /area/station/hallway/secondary/exit) "iWF" = ( /obj/machinery/atmospherics/unary/portables_connector{ @@ -78557,10 +78557,10 @@ /obj/machinery/door/airlock/security/glass{ name = "Escape Shuttle Cell" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/exit) "shh" = ( @@ -81320,18 +81320,6 @@ icon_state = "browncorner" }, /area/station/supply/office) -"sZq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - color = "#954535" - }, -/turf/simulated/floor/plasteel, -/area/station/hallway/primary/fore/north) "sZz" = ( /obj/effect/spawner/airlock/w_to_e, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -84134,9 +84122,7 @@ dir = 4; color = "#954535" }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, +/turf/simulated/floor/plasteel, /area/station/hallway/primary/fore/north) "tXf" = ( /obj/structure/cable/orange{ @@ -91330,20 +91316,6 @@ icon_state = "darkyellow" }, /area/station/engineering/control) -"weN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - color = "#954535" - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralfull" - }, -/area/station/hallway/primary/fore/north) "weW" = ( /obj/effect/spawner/window/reinforced/polarized/grilled{ id = "bridge" @@ -98462,6 +98434,13 @@ "ykj" = ( /turf/simulated/floor/plasteel, /area/station/security/prisonlockers) +"ykC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + color = "#954535" + }, +/turf/simulated/floor/plasteel, +/area/station/hallway/primary/fore/north) "ykM" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -132798,7 +132777,7 @@ tpA eMh dwE vuY -sGY +ykC cWn gXb cWn @@ -134083,7 +134062,7 @@ abW aKp dwg dTC -sZq +qtB aKp npV npV @@ -134340,7 +134319,7 @@ abW aKp dxt dQg -weN +qtB fXC fXC fXC @@ -134597,7 +134576,7 @@ cMz cMz dxw dTI -sZq +qtB fXC gYN hUg diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index 1939e07b0136..adcce788c996 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -229,6 +229,14 @@ /obj/structure/lattice/catwalk, /turf/space, /area/station/engineering/solar/auxstarboard) +"adh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/space, +/area/space/nearstation) "ado" = ( /obj/item/radio/intercom{ name = "south bump"; @@ -16471,10 +16479,10 @@ dir = 1; layer = 2.9 }, -/obj/machinery/atmospherics/unary/vent_pump/on{ +/obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bax" = ( /obj/structure/window/reinforced{ @@ -16545,10 +16553,10 @@ dir = 1; layer = 2.9 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "baF" = ( /turf/simulated/wall, @@ -17348,11 +17356,8 @@ /obj/structure/chair{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bcB" = ( /obj/effect/turf_decal/delivery/hollow, @@ -17908,14 +17913,14 @@ }, /area/station/supply/lobby) "bdZ" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bea" = ( /obj/machinery/hologram/holopad, @@ -18090,6 +18095,21 @@ icon_state = "neutralfull" }, /area/station/engineering/atmos) +"beN" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/space, +/area/space/nearstation) "beP" = ( /obj/machinery/atmospherics/pipe/manifold/visible/yellow, /obj/effect/turf_decal/stripes/line{ @@ -20604,16 +20624,13 @@ }, /area/station/supply/lobby) "blv" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "blx" = ( /obj/structure/cable{ @@ -20742,13 +20759,10 @@ /turf/simulated/floor/plasteel, /area/station/supply/miningdock) "blO" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "blR" = ( /obj/structure/sink/kitchen/old{ @@ -20989,14 +21003,14 @@ dir = 8 }, /obj/item/kirbyplants, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bmq" = ( /obj/structure/window/reinforced{ dir = 1; layer = 2.9 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bmr" = ( /obj/structure/window/reinforced{ @@ -21007,7 +21021,7 @@ dir = 4 }, /obj/item/kirbyplants, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bms" = ( /obj/structure/window/reinforced{ @@ -21231,18 +21245,10 @@ }, /area/station/service/hydroponics) "bmS" = ( -/obj/structure/showcase{ - density = 0; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/firealarm/directional/east, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -21289,10 +21295,10 @@ }, /area/station/hallway/primary/fore/south) "bmY" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/light, /turf/simulated/floor/plasteel/dark, /area/station/aisat) "bmZ" = ( @@ -21534,17 +21540,11 @@ /obj/structure/chair{ dir = 1 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bnP" = ( /obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bnR" = ( /obj/structure/window/reinforced, @@ -21650,9 +21650,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bof" = ( /obj/machinery/hydroponics/constructable, @@ -21741,6 +21739,10 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/structure/extinguisher_cabinet{ + name = "north bump"; + pixel_y = 30 + }, /turf/simulated/floor/bluegrid, /area/station/telecomms/chamber) "boo" = ( @@ -22218,23 +22220,9 @@ }, /turf/space, /area/space/nearstation) -"bpn" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "bpo" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bpp" = ( /obj/structure/cable/yellow{ @@ -22252,7 +22240,7 @@ /area/station/engineering/control) "bpq" = ( /obj/structure/window/reinforced, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bpr" = ( /obj/structure/shuttle/engine/propulsion/burst{ @@ -22268,7 +22256,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bpu" = ( /obj/structure/lattice, @@ -22956,13 +22944,10 @@ /turf/simulated/floor/plasteel, /area/station/security/armory/secure) "brp" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ +/obj/machinery/light/small{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "brq" = ( /obj/structure/lattice, @@ -23148,17 +23133,16 @@ /turf/simulated/floor/plasteel, /area/station/maintenance/starboard2) "brT" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 + dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "brU" = ( /obj/machinery/navbeacon{ @@ -23205,11 +23189,8 @@ /area/station/service/hydroponics) "bsb" = ( /obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bsc" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -23639,10 +23620,10 @@ /area/station/engineering/atmos/distribution) "btk" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "btl" = ( /obj/machinery/atmospherics/binary/pump{ @@ -23779,10 +23760,10 @@ /area/station/engineering/atmos) "btx" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bty" = ( /turf/simulated/floor/plasteel{ @@ -24416,16 +24397,15 @@ }, /area/station/security/processing) "bvv" = ( -/obj/structure/window/reinforced, /obj/machinery/camera{ c_tag = "AI Minisatellite North"; dir = 1; network = list("SS13","Minisat") }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bvx" = ( /obj/machinery/power/apc/directional/east, @@ -24873,18 +24853,15 @@ }, /area/station/hallway/primary/starboard/south) "bwM" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "AI Minisatellite NorthWest"; dir = 8; network = list("SS13","Minisat") }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bwN" = ( /turf/simulated/wall/r_wall, @@ -25340,21 +25317,18 @@ }, /area/station/hallway/primary/starboard/north) "bxM" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/camera{ c_tag = "AI Minisatellite NorthEast"; dir = 4; network = list("Minisat","SS13"); pixel_y = -22 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bxN" = ( /obj/structure/table, @@ -26637,18 +26611,14 @@ /turf/simulated/floor/plasteel, /area/station/public/toilet/lockerroom) "bBv" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "AI Minisatellite South"; network = list("SS13","Minisat") }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bBy" = ( /turf/simulated/floor/plasteel, @@ -30253,30 +30223,31 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bJP" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bJQ" = ( /obj/structure/window/reinforced, -/obj/structure/window/reinforced{ +/obj/machinery/camera{ + c_tag = "AI Minisatellite West"; + dir = 8; + network = list("SS13","Minisat") + }, +/obj/machinery/light/small{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bJR" = ( /obj/structure/table/reinforced, @@ -30363,33 +30334,31 @@ /turf/simulated/floor/greengrid, /area/station/turret_protected/ai) "bJX" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bJY" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 +/obj/machinery/camera{ + c_tag = "AI Minisatellite Foyer Access"; + dir = 4; + network = list("SS13","Minisat") }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/light/small{ + dir = 8 }, +/obj/structure/window/reinforced, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) +"bJY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bJZ" = ( /obj/structure/closet/emcloset, @@ -31087,44 +31056,11 @@ /obj/structure/lattice, /turf/space, /area/space/nearstation) -"bLS" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/space, -/area/space/nearstation) -"bLT" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "bLU" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/structure/sign/vacuum{ + pixel_x = 32 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plasteel/dark, /area/station/aisat) "bLW" = ( @@ -31900,16 +31836,6 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/engineering/ai_transit_tube) -"bNY" = ( -/obj/item/kirbyplants, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, -/area/station/engineering/ai_transit_tube) "bNZ" = ( /obj/machinery/camera{ c_tag = "Chief Engineer's Office"; @@ -33254,22 +33180,8 @@ }, /area/station/legal/magistrate) "bRr" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bRs" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "bRt" = ( /obj/machinery/computer/teleporter, @@ -33278,58 +33190,15 @@ }, /turf/simulated/floor/plating, /area/station/turret_protected/aisat) -"bRu" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "AI Minisatellite West"; - dir = 8; - network = list("SS13","Minisat") - }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bRv" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "AI Minisatellite East"; - dir = 4; - network = list("Minisat","SS13"); - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "bRx" = ( -/obj/structure/showcase{ - density = 0; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 5 }, /obj/effect/turf_decal/stripes/line, -/turf/simulated/floor/plating, -/area/station/turret_protected/aisat) -"bRz" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 }, +/turf/simulated/floor/plating, /area/station/turret_protected/aisat) "bRA" = ( /obj/machinery/door/airlock/medical/glass, @@ -33366,39 +33235,10 @@ icon_state = "grimy" }, /area/station/turret_protected/aisat) -"bRG" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/lattice/catwalk, -/turf/space, -/area/space/nearstation) -"bRJ" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "bRL" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bRM" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/sign/vacuum{ - pixel_y = 32 +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/light{ + dir = 1 }, /turf/simulated/floor/plasteel/dark, /area/station/aisat) @@ -33438,10 +33278,12 @@ /turf/simulated/floor/plasteel/dark, /area/station/engineering/ai_transit_tube) "bRU" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel/dark, /area/station/engineering/ai_transit_tube) "bRV" = ( @@ -34082,10 +33924,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -34165,9 +34009,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -34225,26 +34067,19 @@ }, /area/station/aisat) "bTO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bTR" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, +/turf/simulated/floor/plasteel/dark, /area/station/aisat) "bTS" = ( /obj/structure/cable{ @@ -34260,22 +34095,22 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/aisat) -"bTT" = ( +"bTU" = ( +/obj/structure/transit_tube/station{ + dir = 8 + }, +/obj/structure/transit_tube_pod, /obj/structure/cable{ - d1 = 2; + d1 = 4; d2 = 8; - icon_state = "2-8" + icon_state = "4-8" }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bTU" = ( -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/transit_tube/station{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/structure/transit_tube_pod, /turf/simulated/floor/plasteel/dark, /area/station/aisat) "bTV" = ( @@ -34318,14 +34153,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, /turf/simulated/floor/plasteel/dark, /area/station/engineering/ai_transit_tube) "bUf" = ( -/obj/item/kirbyplants, /obj/machinery/alarm/directional/east, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -34543,17 +34383,17 @@ /area/station/hallway/primary/port/east) "bUJ" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /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" + }, /turf/space, /area/space/nearstation) "bUK" = ( @@ -34760,16 +34600,11 @@ /area/station/hallway/primary/central/east) "bVf" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 + dir = 4 }, /turf/space, /area/space/nearstation) @@ -34816,6 +34651,7 @@ pixel_x = -28; req_access_txt = "75" }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -35007,21 +34843,15 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/camera{ + c_tag = "Minisat Power Station Access"; + dir = 8; + network = list("SS13","Minisat") + }, +/obj/machinery/firealarm/directional/east, /turf/simulated/floor/plasteel/dark, /area/station/aisat) "bVJ" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = -32 - }, -/obj/structure/showcase{ - density = 0; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -35030,6 +34860,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/firealarm/directional/west, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -35044,16 +34875,6 @@ icon_state = "dark" }, /area/station/turret_protected/aisat) -"bVN" = ( -/obj/item/kirbyplants, -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/turret_protected/aisat) "bVO" = ( /obj/structure/showcase{ density = 0; @@ -35099,32 +34920,13 @@ icon_state = "dark" }, /area/station/turret_protected/aisat) -"bVU" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/turret_protected/aisat) -"bVV" = ( -/obj/structure/window/reinforced, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "bVW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) -"bVX" = ( -/obj/structure/window/reinforced, -/obj/machinery/power/apc/directional/south, -/obj/structure/cable, +/obj/structure/extinguisher_cabinet{ + name = "west bump"; + pixel_x = -27 + }, /turf/simulated/floor/plasteel/dark, /area/station/aisat) "bWh" = ( @@ -35466,6 +35268,7 @@ network = list("SS13","Minisat") }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plating, /area/station/turret_protected/aisat) "bXn" = ( @@ -35593,20 +35396,13 @@ icon_state = "yellow" }, /area/station/engineering/break_room) -"bXG" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/space, -/area/space/nearstation) "bXH" = ( /obj/item/kirbyplants, /obj/machinery/light, +/obj/item/radio/intercom{ + name = "south bump"; + pixel_y = -28 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -35684,7 +35480,7 @@ /obj/item/kirbyplants, /obj/structure/extinguisher_cabinet{ name = "east bump"; - pixel_x = 30 + pixel_x = 27 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -35762,21 +35558,6 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/station/service/library) -"bYl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/turf/space, -/area/space/nearstation) "bYm" = ( /obj/structure/disposalpipe/segment/corner{ dir = 1 @@ -35932,17 +35713,8 @@ /area/station/legal/courtroom) "bYJ" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/space, /area/space/nearstation) "bYK" = ( @@ -37460,6 +37232,10 @@ }, /obj/item/hand_tele, /obj/machinery/power/apc/directional/south, +/obj/structure/extinguisher_cabinet{ + name = "west bump"; + pixel_x = -27 + }, /turf/simulated/floor/plating, /area/station/turret_protected/aisat) "ccy" = ( @@ -39274,15 +39050,12 @@ /turf/simulated/floor/wood, /area/station/legal/lawoffice) "chS" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "chW" = ( /obj/machinery/computer/message_monitor{ @@ -41872,7 +41645,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cpd" = ( /obj/structure/window/reinforced{ @@ -41885,20 +41658,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cpe" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cpf" = ( /obj/machinery/atmospherics/unary/vent_pump/on, @@ -42661,20 +42430,17 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cqL" = ( /obj/structure/chair, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cqM" = ( /obj/structure/window/reinforced{ dir = 4 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "cqN" = ( /obj/machinery/field/generator{ @@ -43127,7 +42893,7 @@ dir = 8 }, /obj/item/kirbyplants, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "csl" = ( /obj/structure/window/reinforced, @@ -43135,7 +42901,7 @@ dir = 4 }, /obj/item/kirbyplants, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/transparent/glass, /area/station/aisat) "csm" = ( /obj/machinery/light{ @@ -45753,15 +45519,6 @@ /turf/simulated/floor/plasteel/dark, /area/station/service/library) "czz" = ( -/obj/structure/showcase{ - density = 0; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, /obj/machinery/light_switch{ dir = 8; name = "east bump"; @@ -46973,25 +46730,6 @@ "cDa" = ( /turf/simulated/floor/plasteel, /area/station/supply/expedition) -"cDb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external{ - name = "MiniSat Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/minisat, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "cDc" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -49537,11 +49275,6 @@ }, /turf/simulated/floor/plasteel/white, /area/station/science/xenobiology) -"cKl" = ( -/obj/structure/window/reinforced, -/obj/structure/lattice/catwalk, -/turf/space, -/area/space/nearstation) "cKm" = ( /obj/structure/cable{ d1 = 2; @@ -53279,6 +53012,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/port) +"cYg" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "cYh" = ( /obj/structure/closet/wardrobe/yellow, /obj/machinery/requests_console{ @@ -62890,6 +62632,19 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/central/se) +"dRi" = ( +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "dRj" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -64841,6 +64596,16 @@ icon_state = "whitepurple" }, /area/station/science/toxins/mixing) +"ebW" = ( +/obj/item/radio/intercom{ + name = "east bump"; + pixel_x = 28 + }, +/obj/item/kirbyplants, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/turret_protected/aisat) "ecq" = ( /obj/structure/cable{ d2 = 8; @@ -66025,22 +65790,6 @@ /obj/effect/spawner/random_spawners/grille_often, /turf/simulated/floor/plating, /area/station/maintenance/starboard) -"eHx" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/aisat) "eHD" = ( /obj/machinery/photocopier, /turf/simulated/floor/plasteel{ @@ -66290,6 +66039,14 @@ }, /turf/simulated/floor/plasteel, /area/station/security/range) +"eOk" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "AI Minisatellite Foyer Exterior South"; + network = list("SS13","Minisat") + }, +/turf/space, +/area/space/nearstation) "eOt" = ( /obj/structure/table/glass, /obj/structure/cable{ @@ -67006,6 +66763,16 @@ }, /turf/simulated/floor/wood, /area/station/legal/lawoffice) +"fkv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "fkz" = ( /obj/machinery/atmospherics/portable/canister/toxins, /obj/effect/decal/cleanable/dirt, @@ -67523,6 +67290,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/maintenance/port) +"fAX" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "fBl" = ( /obj/machinery/power/apc/directional/south, /obj/structure/cable{ @@ -67596,6 +67370,30 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/wood, /area/station/command/office/ntrep) +"fDd" = ( +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/station/aisat) "fDu" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -68423,6 +68221,16 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/central/south) +"gbo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/delivery/hollow, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "gbO" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance/two, @@ -68911,6 +68719,14 @@ /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, /area/station/hallway/secondary/entry/east) +"grH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat) "gsC" = ( /obj/structure/cable{ d1 = 1; @@ -68924,6 +68740,15 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/cargo_bay, /turf/simulated/floor/plasteel, /area/station/maintenance/fore2) +"gtb" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "AI Minisatellite Foyer Exterior North"; + network = list("SS13","Minisat"); + dir = 1 + }, +/turf/space, +/area/space/nearstation) "gti" = ( /obj/structure/flora/rock/jungle, /obj/structure/flora/ausbushes/fullgrass, @@ -69292,6 +69117,13 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/central/north) +"gFb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/delivery/hollow, +/obj/structure/cable, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "gFm" = ( /obj/structure/window/reinforced{ dir = 1 @@ -69510,6 +69342,10 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/port) +"gLg" = ( +/obj/structure/sign/poster/contraband/borg_fancy_2, +/turf/simulated/wall, +/area/station/aisat) "gLm" = ( /obj/machinery/door/airlock/medical{ name = "Operating Theatre 2" @@ -69625,6 +69461,14 @@ icon_state = "whitepurple" }, /area/station/science/break_room) +"gNA" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "gNB" = ( /obj/structure/cable, /obj/effect/spawner/window/reinforced/polarized/grilled{ @@ -70509,6 +70353,14 @@ }, /turf/simulated/floor/plating, /area/station/service/chapel/office) +"hse" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/directional/north, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "hsp" = ( /obj/machinery/atmospherics/pipe/simple/hidden, /obj/structure/cable{ @@ -70588,6 +70440,17 @@ /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel/dark, /area/station/legal/courtroom) +"hwa" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "hwI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random_spawners/blood_maybe, @@ -70683,12 +70546,21 @@ /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry/west) "hyX" = ( -/obj/structure/lattice/catwalk, /obj/structure/transit_tube/curved/flipped{ dir = 4 }, -/turf/space, -/area/space/nearstation) +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "hzb" = ( /obj/machinery/flasher_button{ id = "Execution"; @@ -71076,6 +70948,16 @@ }, /turf/simulated/floor/plasteel, /area/station/engineering/control) +"hMy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "hMD" = ( /obj/machinery/camera{ c_tag = "Research Toxin Mixing"; @@ -71140,6 +71022,12 @@ icon_state = "dark" }, /area/station/security/brig) +"hNW" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/space, +/area/space/nearstation) "hOr" = ( /obj/structure/chair/sofa/right{ color = "#A30FAF"; @@ -72615,15 +72503,6 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/service/bar) -"iIS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/space, -/area/space/nearstation) "iIY" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -73426,6 +73305,14 @@ icon_state = "darkblue" }, /area/station/medical/morgue) +"jfy" = ( +/obj/item/radio/intercom{ + name = "west bump"; + pixel_x = -28 + }, +/obj/item/kirbyplants, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "jfB" = ( /obj/structure/morgue{ dir = 8 @@ -74357,6 +74244,10 @@ icon_state = "redcorner" }, /area/station/security/permabrig) +"jLQ" = ( +/obj/machinery/status_display, +/turf/simulated/wall, +/area/station/aisat) "jMb" = ( /obj/machinery/door/window{ base_state = "right"; @@ -75712,6 +75603,29 @@ }, /turf/simulated/floor/plasteel/white, /area/station/medical/sleeper) +"kAw" = ( +/obj/machinery/hologram/holopad, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat) "kAx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -75822,6 +75736,16 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/station/medical/virology) +"kDU" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "kEt" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -76022,6 +75946,16 @@ icon_state = "wood-broken6" }, /area/station/maintenance/library) +"kJg" = ( +/obj/item/kirbyplants, +/obj/item/radio/intercom{ + name = "east bump"; + pixel_x = 28 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/telecomms/chamber) "kJB" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -76186,6 +76120,16 @@ icon_state = "neutral" }, /area/station/maintenance/aft) +"kQd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "kQt" = ( /obj/machinery/chem_master, /turf/simulated/floor/engine, @@ -76281,6 +76225,16 @@ }, /turf/simulated/floor/engine, /area/station/engineering/controlroom) +"kTj" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/space, +/area/space/nearstation) "kTw" = ( /obj/machinery/fishtank/tank, /turf/simulated/floor/plating, @@ -77181,16 +77135,6 @@ icon_state = "neutral" }, /area/station/maintenance/port) -"lvH" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/aisat) "lvO" = ( /obj/structure/cable{ d1 = 4; @@ -77433,6 +77377,14 @@ icon_state = "whitebluecorner" }, /area/station/medical/reception) +"lBJ" = ( +/obj/item/kirbyplants, +/obj/item/kirbyplants, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/engineering/ai_transit_tube) "lBR" = ( /turf/simulated/wall, /area/station/hallway/primary/starboard/north) @@ -77445,6 +77397,17 @@ /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel, /area/station/maintenance/electrical) +"lCU" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/space, +/area/space/nearstation) "lDf" = ( /obj/structure/reagent_dispensers/fueltank, /turf/simulated/floor/plasteel{ @@ -77962,6 +77925,10 @@ icon_state = "redyellowfull" }, /area/station/medical/break_room) +"lUr" = ( +/obj/machinery/alarm/directional/south, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "lUv" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance_hatch{ @@ -78060,6 +78027,10 @@ }, /turf/simulated/floor/plasteel/white, /area/station/medical/medbay) +"lYU" = ( +/obj/effect/spawner/airlock/w_to_e, +/turf/simulated/wall, +/area/station/aisat) "lYX" = ( /obj/item/paper_bin{ pixel_y = 5 @@ -79514,17 +79485,6 @@ icon_state = "whitepurple" }, /area/station/science/misc_lab) -"mRz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/aisat) "mSa" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel{ @@ -80208,10 +80168,6 @@ }, /area/station/security/warden) "niC" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/structure/transit_tube/curved/flipped{ dir = 1 }, @@ -80376,6 +80332,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood, /area/station/maintenance/library) +"nmp" = ( +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "nmr" = ( /obj/machinery/door/airlock/glass, /obj/effect/mapping_helpers/airlock/autoname, @@ -80916,22 +80875,6 @@ /obj/item/paper/monitorkey, /turf/simulated/floor/plasteel/white, /area/station/command/office/rd) -"nCh" = ( -/obj/item/beacon, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/item/beacon, -/turf/simulated/floor/plasteel/dark, -/area/station/aisat) "nCu" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -81110,6 +81053,15 @@ icon_state = "neutralcorner" }, /area/station/public/fitness) +"nFx" = ( +/obj/item/radio/intercom{ + name = "west bump"; + pixel_x = -28 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/turret_protected/aisat) "nFL" = ( /obj/machinery/light{ dir = 1 @@ -81877,6 +81829,20 @@ }, /turf/simulated/floor/plasteel/white, /area/station/science/explab) +"ohf" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-4" + }, +/turf/space, +/area/space/nearstation) "ohh" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -82610,6 +82576,16 @@ icon_state = "whitebluecorner" }, /area/station/medical/medbay) +"oBi" = ( +/obj/structure/table/reinforced, +/obj/item/crowbar, +/obj/item/stack/cable_coil, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "oBE" = ( /obj/item/vending_refill/coffee, /obj/effect/spawner/lootdrop/maintenance, @@ -83232,6 +83208,21 @@ temperature = 80 }, /area/station/science/xenobiology) +"oSN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "AI Minisatellite Foyer Airlock"; + network = list("SS13","Minisat"); + dir = 4 + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "oTa" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -83284,6 +83275,9 @@ icon_state = "neutral" }, /area/station/maintenance/port) +"oUR" = ( +/turf/simulated/wall, +/area/station/aisat) "oVd" = ( /obj/structure/cable{ d1 = 1; @@ -83319,6 +83313,16 @@ icon_state = "neutral" }, /area/station/maintenance/starboard) +"oVP" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/space, +/area/space/nearstation) "oWo" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/machinery/door/poddoor/shutters/preopen{ @@ -83726,6 +83730,15 @@ icon_state = "whitepurplecorner" }, /area/station/science/lobby) +"pgS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "pht" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -83838,6 +83851,10 @@ icon_state = "whitepurple" }, /area/station/science/toxins/mixing) +"plz" = ( +/obj/item/kirbyplants, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "plR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass, @@ -84403,19 +84420,6 @@ icon_state = "dark" }, /area/station/security/brig) -"pDS" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/aisat) "pEn" = ( /obj/structure/cable{ d1 = 1; @@ -84667,6 +84671,14 @@ icon_state = "neutralfull" }, /area/station/hallway/secondary/exit) +"pJY" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/station/turret_protected/aisat) "pKg" = ( /obj/effect/spawner/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -85284,13 +85296,6 @@ }, /area/station/engineering/atmos) "qbl" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, /obj/structure/transit_tube/curved, /turf/simulated/floor/plasteel/dark, /area/station/aisat) @@ -85357,6 +85362,16 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/medical/morgue) +"qdb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Access" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "qdq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, @@ -86134,6 +86149,14 @@ }, /turf/space, /area/station/engineering/solar/auxstarboard) +"qHE" = ( +/obj/machinery/newscaster{ + dir = 1; + name = "south bump"; + pixel_y = -28 + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "qHK" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -86250,6 +86273,16 @@ }, /turf/simulated/floor/plating, /area/station/security/permabrig) +"qKQ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/space, +/area/space/nearstation) "qLt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -87115,6 +87148,20 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/simulated/floor/plasteel, /area/station/engineering/break_room) +"riq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "riQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 9 @@ -87153,6 +87200,7 @@ name = "south bump"; pixel_y = -28 }, +/obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -87192,6 +87240,16 @@ /obj/effect/spawner/lootdrop/maintenance/three, /turf/simulated/floor/plating, /area/station/maintenance/port) +"rkA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "rkB" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -87233,6 +87291,17 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, /area/station/maintenance/port) +"rly" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/space, +/area/space/nearstation) "rlI" = ( /obj/item/kirbyplants, /turf/simulated/floor/plating, @@ -87820,6 +87889,13 @@ icon_state = "arrival" }, /area/station/hallway/secondary/entry/south) +"rCa" = ( +/obj/machinery/camera{ + c_tag = "AI Minisatellite Foyer"; + network = list("SS13","Minisat") + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "rCv" = ( /obj/item/kirbyplants{ icon_state = "plant-18" @@ -88162,6 +88238,12 @@ icon_state = "whitebluecorner" }, /area/station/medical/reception) +"rMH" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "rML" = ( /obj/structure/filingcabinet/chestdrawer, /obj/machinery/newscaster{ @@ -88695,6 +88777,16 @@ }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry/west) +"saq" = ( +/obj/machinery/atmospherics/portable/canister/air, +/obj/machinery/atmospherics/unary/portables_connector{ + layer = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat) "saC" = ( /obj/structure/cable{ d1 = 1; @@ -90817,6 +90909,14 @@ }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/exit) +"sYZ" = ( +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "sZp" = ( /obj/machinery/light/small, /turf/simulated/floor/plasteel{ @@ -91352,6 +91452,16 @@ icon_state = "yellowcorner" }, /area/station/hallway/primary/port/north) +"tuT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat) "tvq" = ( /obj/machinery/atmospherics/portable/scrubber/huge/stationary, /turf/simulated/floor/plasteel{ @@ -91500,6 +91610,9 @@ }, /turf/simulated/floor/carpet/black, /area/station/service/chapel) +"tzQ" = ( +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "tAe" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -91616,6 +91729,11 @@ /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, /area/station/medical/virology) +"tCz" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil, +/turf/space, +/area/space/nearstation) "tCW" = ( /obj/machinery/status_display, /turf/simulated/wall, @@ -92462,6 +92580,19 @@ icon_state = "darkblue" }, /area/station/command/office/cmo) +"tZH" = ( +/obj/item/beacon, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "tZI" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -93430,12 +93561,18 @@ /turf/simulated/wall/r_wall, /area/station/engineering/atmos/distribution) "uDs" = ( -/obj/structure/lattice/catwalk, /obj/structure/transit_tube/curved{ dir = 4 }, -/turf/space, -/area/space/nearstation) +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "uDz" = ( /turf/simulated/floor/plasteel{ dir = 9; @@ -94766,6 +94903,13 @@ /obj/machinery/alarm/directional/west, /turf/simulated/floor/wood, /area/station/medical/psych) +"vuY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/space, +/area/space/nearstation) "vvC" = ( /obj/machinery/economy/vending/cola, /turf/simulated/floor/plasteel{ @@ -94773,6 +94917,17 @@ icon_state = "redcorner" }, /area/station/hallway/primary/starboard/north) +"vvO" = ( +/obj/machinery/camera{ + c_tag = "AI Minisatellite SouthWest"; + dir = 8; + network = list("SS13","Minisat") + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "vvQ" = ( /obj/structure/chair{ dir = 4 @@ -95372,6 +95527,19 @@ }, /turf/simulated/floor/engine, /area/station/maintenance/incinerator) +"vMB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Access" + }, +/turf/simulated/floor/plasteel/dark, +/area/station/aisat) "vMD" = ( /obj/structure/table/glass, /obj/item/storage/firstaid/regular, @@ -96406,6 +96574,20 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel/white, /area/station/medical/surgery/primary) +"wpU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/camera{ + c_tag = "AI Minisatellite SouthEast"; + dir = 4; + network = list("Minisat","SS13"); + pixel_y = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/transparent/glass, +/area/station/aisat) "wqd" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/camera{ @@ -96503,6 +96685,19 @@ icon_state = "dark" }, /area/station/security/brig) +"wts" = ( +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "wtE" = ( /obj/machinery/cryopod/right, /obj/machinery/light{ @@ -97938,6 +98133,16 @@ icon_state = "whitepurple" }, /area/station/science/toxins/mixing) +"xlE" = ( +/obj/structure/extinguisher_cabinet{ + name = "north bump"; + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/turret_protected/ai) "xlS" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/barricade/wooden, @@ -98006,6 +98211,21 @@ }, /turf/simulated/floor/plasteel, /area/station/maintenance/port) +"xnF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat) "xnL" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/machinery/door/poddoor/shutters/preopen{ @@ -98092,6 +98312,16 @@ icon_state = "neutralcorner" }, /area/station/public/fitness) +"xqE" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/space, +/area/space/nearstation) "xqH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -99217,6 +99447,16 @@ icon_state = "whitegreen" }, /area/station/medical/virology) +"xUq" = ( +/obj/effect/spawner/window/reinforced/grilled, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/station/aisat) "xUI" = ( /obj/machinery/suit_storage_unit/security/secure, /turf/simulated/floor/plasteel, @@ -105148,19 +105388,19 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bmo +bmo +bpm +pVN +bpm +pVN +bpm +bmo +bmo +bmo +bmo +bmo +bmo aaa aaa aaa @@ -105404,21 +105644,21 @@ aaa aaa aaa aaa -aaa -aaa -bmo -bpm -pVN -bpm -pVN -bpm -bmo -bmo -bmo -bmo -bmo -aaa -aaa +bkt +kQd +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cpb +bLR aaa aaa aaa @@ -105661,21 +105901,21 @@ aaa aaa aaa aaa -aaa -bkt -bpn -brp -bRu -brp +bku +bmq +tzQ +cqM +cqM +cqM bRr blv blO -brp -brp -brp -cpb -bLR -aaa +cqM +cqM +cqM +tzQ +bpq +brr aaa aaa aaa @@ -105905,34 +106145,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bku -bpo +abj +bpm +bmo +bmo +bmo +bmo +bmo +bmo +bmo +bmo +bmo +bmo +bmo +bPR +bmq +bpq bLM bms bPC -bRs +fkv bTs bVH brq bms bnR -bpo -brr -aaa +bmq +bpq +bLR aaa aaa aaa @@ -106162,22 +106402,22 @@ aaa aaa aaa aaa -aaa -abj -bpm -bmo -bmo -bmo -bmo -bmo -bmo -bmo -bmo -bmo -bmo -bmo -bPR -bpo +bkt +kQd +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +cqK +tzQ +bpq brr bNM bNM @@ -106186,10 +106426,10 @@ lUv bNM bNM bNM -bkt -bpo -bLR -aaa +bNM +rMH +bpq +brr aaa aaa aaa @@ -106419,21 +106659,21 @@ aaa aaa aaa aaa -aaa bku -bpn -brp -brp -brp -brp +bmq +tzQ +cqM +cqM +cqM +cqM bwM +cqM +cqM +cqM brp -brp -brp -brp -brp -brp -brp +cqM +cqM +cqM bJQ brs bNM @@ -106444,14 +106684,14 @@ bVJ ccx bNM bkt -lvH -brr -aaa -aaa -aaa -aaa -aaa -aaa +bmq +bpq +dSz +pVN +bpm +pVN +bmo +bpm aaa aaa aaa @@ -106676,22 +106916,22 @@ aaa aaa aaa aaa -aaa ops -bpo +bmq +bpq brq bpu bms bms -bms +btd bpu bms bms -bpu +btd bms bms bpu -bms +btd aaa bNM bPH @@ -106701,48 +106941,15 @@ bXI cgI bNM bkt -lvH -dSz -pVN -bpm -pVN -bmo -bpm -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bmq +tzQ +cqK +cqK +cqK +cqK +cqK +cpb +brs aaa aaa aaa @@ -106829,8 +107036,6 @@ aaa aaa aaa aaa -"} -(29,1,1) = {" aaa aaa aaa @@ -106864,6 +107069,40 @@ aaa aaa aaa aaa +"} +(29,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -106935,7 +107174,8 @@ aaa aaa aaa bkt -bpo +bmq +bpq brr abj abj @@ -106959,12 +107199,13 @@ chu bNM bku boe -mRz -mRz -mRz -mRz -brp -cpb +cqM +vvO +cqM +cqM +cqM +tzQ +bpq brs aaa aaa @@ -107085,7 +107326,6 @@ aaa aaa aaa aaa -aaa "} (30,1,1) = {" aaa @@ -107190,9 +107430,9 @@ aaa aaa aaa aaa -aaa bku -bpo +bmq +bpq brs abj abj @@ -107217,11 +107457,12 @@ bNM aaa bpu bms -bms +qrT bpu bms bPC -bpo +bmq +bpq brs aaa aaa @@ -107342,7 +107583,6 @@ aaa aaa aaa aaa -aaa "} (31,1,1) = {" aaa @@ -107447,11 +107687,11 @@ aaa aaa aaa aaa -aaa ops +bmq bpo -brs -aaa +btd +btd btd btd btd @@ -107468,7 +107708,7 @@ bNM bPQ bXm bTI -bVN +ebW cmx bNM qrT @@ -107478,7 +107718,8 @@ qrT qrT abj bku -bpo +bmq +bpq brs aaa aaa @@ -107599,7 +107840,6 @@ aaa aaa aaa aaa -aaa "} (32,1,1) = {" aaa @@ -107704,16 +107944,16 @@ aaa aaa aaa aaa -aaa bku -bpo -brr -abj +bmq +bpq +brs +btd btd btd bwG -bxY byg +bxY bBd bCU bwG @@ -107735,7 +107975,8 @@ qrT qrT qrT bkt -bpo +bmq +bpq brs aaa aaa @@ -107856,7 +108097,6 @@ aaa aaa aaa aaa -aaa "} (33,1,1) = {" aaa @@ -107960,12 +108200,12 @@ aaa aaa aaa aaa -aaa -bmo -bnM -bpo +abj +bPR +bmq +bpq brs -aaa +btd btd bvz bwH @@ -107992,9 +108232,9 @@ eaH qrT qrT bkt -bpo -bLS -bmo +bmq +bpq +oVP aaa aaa aaa @@ -108217,11 +108457,11 @@ aaa aaa aaa aaa -bkt +ops bmp -cqK +tzQ bpq -brr +brs btd btd btd @@ -108237,9 +108477,9 @@ bJT bLO bNM bPJ -bRz -bTB bVS +bTB +pJY bXH bNM caV @@ -108250,7 +108490,7 @@ chX qrT bku bmq -cqK +tzQ csk brs aaa @@ -108477,8 +108717,8 @@ aaa bku bmq bnO -bpq -brs +bpo +btd btd btd byg @@ -108505,8 +108745,8 @@ ceP fmm fBl qrT -bkt -bmq +qrT +rMH cqL bpq brs @@ -108731,11 +108971,11 @@ aaa aaa aaa aaa -bkt +ops bav bnP bvv -bRG +btd btd btd bwF @@ -108762,7 +109002,7 @@ cgu ccW chW qrT -cKl +qrT bBv bnP btk @@ -108992,7 +109232,7 @@ bku baE bcA bdZ -brs +btd btd btd bvC @@ -109019,7 +109259,7 @@ ceP fmm vDg qrT -bkt +qrT brT bsb btx @@ -109247,13 +109487,13 @@ aaa aaa ops bmr -cqM +tzQ bps -brr +brs btd btd btd -bBd +xlE bye bzA bBf @@ -109274,11 +109514,11 @@ caV ccX fmm fmm -chX +kJg qrT bku cpd -cqM +tzQ csl brs aaa @@ -109503,11 +109743,11 @@ aaa aaa aaa abj -oMO fPS -bJP +bmq +bps brs -aaa +btd btd bvz bwH @@ -109534,10 +109774,10 @@ hng qrT qrT bkt -bJP -orz -bpu -aaa +cpd +bpq +rly +abj aaa aaa aaa @@ -109760,11 +110000,11 @@ aaa aaa aaa aaa -aaa bku -bJP -brr -abj +bmq +bps +brs +btd btd btd bwG @@ -109791,7 +110031,8 @@ qrT qrT qrT bkt -bJP +cpd +bpq brr aaa aaa @@ -109912,7 +110153,6 @@ aaa aaa aaa aaa -aaa "} (41,1,1) = {" aaa @@ -110017,11 +110257,11 @@ aaa aaa aaa aaa -aaa bkt -bJP -brs -aaa +bmq +rkA +btd +btd btd btd btd @@ -110038,7 +110278,7 @@ bNM bPN bVj bTI -bVU +nFx bPN bNM qrT @@ -110048,7 +110288,8 @@ qrT qrT abj bku -bJP +cpd +bpq bLR aaa aaa @@ -110169,7 +110410,6 @@ aaa aaa aaa aaa -aaa "} (42,1,1) = {" aaa @@ -110274,9 +110514,9 @@ aaa aaa aaa aaa -aaa bkt -bJP +bmq +bps brs abj abj @@ -110301,11 +110541,12 @@ bNM aaa bpm bmo -bmo +qrT bpm bmo cnY -bJP +cpd +bpq brr aaa aaa @@ -110426,7 +110667,6 @@ aaa aaa aaa aaa -aaa "} (43,1,1) = {" aaa @@ -110531,9 +110771,9 @@ aaa aaa aaa aaa -aaa bkt -bJP +bmq +bps brr abj abj @@ -110557,12 +110797,13 @@ bXN bNM bku bJO -pDS -pDS -pDS -pDS -chS +gNA +wpU +gNA +gNA +gNA cpe +bpq brs aaa aaa @@ -110683,7 +110924,6 @@ aaa aaa aaa aaa -aaa "} (44,1,1) = {" aaa @@ -110788,23 +111028,23 @@ aaa aaa aaa aaa -aaa bkt -bJP +bmq +bps brw bpm bmo bmo -bmo +btd bpm bmo bmo -bpm +btd bmo bmo bpm -bmo -aaa +btd +xLV bNM bRt bXI @@ -110813,15 +111053,15 @@ bXI bXO bNM bkt -eHx -orz -oMO -bpu -bms -bms -bms -aaa -aaa +cpd +tzQ +cqM +cqM +cqM +cqM +cqM +fAX +brs aaa aaa aaa @@ -111045,21 +111285,21 @@ aaa aaa aaa aaa -aaa bku +bmq bJY -chS -chS -chS -chS +gNA +gNA +gNA +gNA bxM +gNA +gNA +gNA chS -chS -chS -chS -chS -chS -chS +gNA +gNA +gNA bJX brs bNM @@ -111070,45 +111310,14 @@ bmS bXP bNM bkt -bJP -brr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cpd +bpq +orz +oMO +bpu +bms +bms +bms aaa aaa aaa @@ -111198,8 +111407,6 @@ aaa aaa aaa aaa -"} -(46,1,1) = {" aaa aaa aaa @@ -111231,6 +111438,8 @@ aaa aaa aaa aaa +"} +(46,1,1) = {" aaa aaa aaa @@ -111303,32 +111512,6 @@ aaa aaa aaa aaa -abj -bpu -oMO -bms -bms -bms -bms -bms -bms -bms -bms -bms -bpu -fPS -bJP -bLR -bNM -bNM -bNM -ojZ -bNM -bNM -bNM -bku -bJP -brs aaa aaa aaa @@ -111359,6 +111542,34 @@ aaa aaa aaa aaa +bkt +kDU +cqM +cqM +cqM +cqM +cqM +cqM +cqM +cqM +cqM +cqM +cqM +cqM +tzQ +hMy +lCU +bNN +bNM +bNM +ojZ +bNM +bNM +bNM +bNM +bJP +bpq +brr aaa aaa aaa @@ -111455,8 +111666,6 @@ aaa aaa aaa aaa -"} -(47,1,1) = {" aaa aaa aaa @@ -111486,6 +111695,8 @@ aaa aaa aaa aaa +"} +(47,1,1) = {" aaa aaa aaa @@ -111573,18 +111784,48 @@ aaa aaa aaa aaa -bku -bJP -bLS -bmo -bPR -bRJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj +bpu +oMO +bms +bms +bms +bms +bms +bms +bms +bms +bms +oMO +oUR +vMB +oUR +oUR +jfy +nmp bTN -bVV -brw +oBi +oUR bmo bnM -bJP +cpd +bpq brs aaa aaa @@ -111711,7 +111952,6 @@ aaa aaa aaa aaa -aaa "} (48,1,1) = {" aaa @@ -111829,19 +112069,20 @@ aaa aaa aaa aaa -aaa -bkt -bJY -bLT -bRv -chS +abj +oUR +xnF bVW +oSN +gFb +gbo bTO -bVW -chS -chS -chS +grH +qdb +gNA +gNA cpe +bpq brs aaa aaa @@ -111894,7 +112135,6 @@ aaa aaa aaa aaa -aaa acF aaa acF @@ -112086,21 +112326,21 @@ aaa aaa aaa aaa -aaa -aaa -fPS -bLU -bLM -bPC -bmq -bTS -bpq -brq -oMO -bpu -oMO abj -aaa +oUR +saq +bLU +hwa +nmp +nmp +riq +nmp +jLQ +cqM +cqM +cqM +fAX +brs aaa aaa aaa @@ -112343,21 +112583,21 @@ aaa aaa aaa aaa -aaa -aaa -bku -cDb -brr -bku +abj +oUR +oUR +oUR +cYg +lYU bRL -nCh +tZH bmY -brr -aaa -aaa -aaa -aaa -aaa +oUR +oMO +bpu +oMO +bms +abj aaa aaa aaa @@ -112600,17 +112840,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -bUJ -aaa -bku -bmq -bTR -bpq -brr -aaa +abj +abj +oUR +tuT +pgS +oUR +hse +kAw +lUr +oUR +abj aaa aaa aaa @@ -112858,16 +113098,16 @@ aaa aaa aaa aaa -aaa -aaa -bUJ -aaa -bku -bmq +gtb +oUR +oUR lwd -bpq -brr -aaa +gLg +rCa +bTS +qHE +oUR +eOk aaa aaa aaa @@ -113115,16 +113355,16 @@ aaa aaa aaa aaa -aaa -aaa -bUJ abj -bPS -bRM -bTT -bVX -bPS -aaa +abj +abj +dVS +sYZ +plz +bTS +plz +sYZ +abj aaa aaa aaa @@ -113374,14 +113614,14 @@ aaa aaa aaa aaa -bUJ aaa -bku +adh +wts qbl bTU niC -brr -aaa +wts +abj aaa aaa aaa @@ -113631,14 +113871,14 @@ aaa aaa aaa aaa -bUJ aaa +acF hyX -bms -bms -bms +dRi +fDd +xUq uDs -aaa +abj aaa aaa aaa @@ -113888,14 +114128,14 @@ aaa aaa aaa aaa -bUJ +aaa +kTj +vuY +hNW +qKQ abj nmF abj -abj -abj -nmF -aaa aaa aaa aaa @@ -114145,8 +114385,8 @@ aaa aaa aaa aaa -bUJ aaa +xqE giK xLV xLV @@ -114402,8 +114642,8 @@ aaa aaa aaa aaa -bUJ aaa +xqE abj bqP abj @@ -114659,8 +114899,8 @@ aaa aaa aaa aaa -bUJ aaa +xqE abj xLV fIk @@ -114916,9 +115156,9 @@ aaa aaa aaa aaa +aaa bVf -bXG -bYl +abj abj hFE abj @@ -115173,9 +115413,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -115430,9 +115670,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -115687,10 +115927,10 @@ aaa aaa aaa aaa +aaa +xqE abj abj -bUJ -abj hFE abj abj @@ -115944,9 +116184,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -116201,9 +116441,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -116458,10 +116698,10 @@ aaa aaa aaa aaa +aaa +xqE abj abj -bUJ -abj hFE abj abj @@ -116715,9 +116955,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -116972,9 +117212,9 @@ aaa aaa aaa aaa -abj aaa -bUJ +xqE +abj aaa nmF aaa @@ -117229,10 +117469,10 @@ aaa aaa aaa aaa +aaa +ohf abj abj -bUJ -abj hFE abj abj @@ -117486,9 +117726,9 @@ aaa aaa aaa aaZ -abj aaa bUJ +abj aaa nmF aaa @@ -117743,9 +117983,9 @@ aaa aaa aaa aaa -abj -abj +aaa bUJ +abj aaa nmF aaa @@ -118001,9 +118241,9 @@ aaa aaa aaa aaa -aaa bUJ abj +abj hFE abj abj @@ -118257,9 +118497,9 @@ aaa aaa aaa aaa -dij -abj +aaa bUJ +abj aaa nmF aaa @@ -118514,9 +118754,9 @@ abj acF acF acF -dij -aaa +abj bUJ +abj aaa nmF aaa @@ -118771,10 +119011,10 @@ bwN bwN bwN acF -abj -abj +aaa bUJ abj +abj hFE abj abj @@ -119028,9 +119268,9 @@ bzE bzE bwN acF -dij aaa bUJ +abj aaa nmF aaa @@ -119285,9 +119525,9 @@ bEG bGB bwN abj -dij aaa bUJ +abj aaa nmF aaa @@ -119542,10 +119782,10 @@ bBj bzE bwN abj -abj -abj +aaa bUJ abj +abj hFE abj abj @@ -119799,9 +120039,9 @@ bBi bzE bwN abj -dij aaa bUJ +abj aaa nmF aaa @@ -120056,9 +120296,9 @@ bzE bzE bwN abj -abj aaa bUJ +abj aaa nmF aaa @@ -120314,7 +120554,7 @@ bGs bwN abj bVs -iIS +beN bYJ tAi nmF @@ -120569,7 +120809,7 @@ bfO bge bGu bwN -abj +tCz dVS abj abj @@ -122115,7 +122355,7 @@ bKc bMf iPP bUP -bNY +lBJ bUf rjL bXU diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index a8f303577c4c..63319d1b5d30 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -50,6 +50,8 @@ #define ismachinery(A) (istype(A, /obj/machinery)) +#define isairlock(A) (istype(A, /obj/machinery/door)) + #define isapc(A) (istype(A, /obj/machinery/power/apc)) #define ismecha(A) (istype(A, /obj/mecha)) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 30891c98d31b..0ac014a7c9c1 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -126,6 +126,8 @@ #define STATUS_EFFECT_REVERSED_HIGH_PRIESTESS /datum/status_effect/reversed_high_priestess //Bubblegum will chase the person hit by the effect, grabbing people at random. This can and WILL include the caster. +#define STATUS_EFFECT_C_FOAMED /datum/status_effect/c_foamed + //#define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse //#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured //#define CURSE_SPAWNING 2 //spawns creatures that attack the target only diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index e8e7aaead060..2b67dc76bea4 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -244,6 +244,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NEVER_MISSES_DISPOSALS "trait_never_misses_disposals" // For janitors landing disposal throws #define TRAIT_SLEIGHT_OF_HAND "sleight_of_hand" #define TRAIT_KNOWS_COOKING_RECIPES "knows_cooking_recipes" +#define TRAIT_XENOBIO_SPAWNED_HUMAN "xenobio_spawned_human" // The mob is from xenobio/cargo/botany that has evolved into their greater form. They do not give vampires usuble blood and cannot be converted by cult. /// used for dead mobs that are observing, but should not be afforded all the same platitudes as full ghosts. /// This is a mind trait because ghosts can be frequently deleted and we want to be sure this sticks. diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 1c78df39a056..6ec1c7c5dd91 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -19,7 +19,7 @@ /// Whether or not this should be shown to observers var/shown_to_observers = FALSE /// Whether or not this button is locked, preventing it from being dragged. - var/locked = FALSE + var/locked = TRUE /atom/movable/screen/movable/action_button/Destroy() . = ..() diff --git a/code/datums/station_state.dm b/code/datums/station_state.dm index 7359c4a21aef..2175d7bd69ac 100644 --- a/code/datums/station_state.dm +++ b/code/datums/station_state.dm @@ -52,7 +52,7 @@ if(!GR.broken) grille += 1 - else if(istype(O, /obj/machinery/door)) + else if(isairlock(O)) door += 1 else if(istype(O, /obj/machinery)) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index c8373ec00c06..f07c59d45a01 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1353,6 +1353,52 @@ new /obj/effect/abstract/bubblegum_rend_helper(get_turf(src), null, 10) qdel(src) +/datum/status_effect/c_foamed + id = "c_foamed up" + duration = 1 MINUTES + status_type = STATUS_EFFECT_REFRESH + tick_interval = 10 SECONDS + var/foam_level = 1 + var/mutable_appearance/foam_overlay + +/datum/status_effect/c_foamed/on_apply() + . = ..() + foam_overlay = mutable_appearance('icons/obj/foam_blobs.dmi', "foamed_1") + owner.add_overlay(foam_overlay) + owner.next_move_modifier *= 1.5 + owner.Slowed(10 SECONDS, 1.5) + +/datum/status_effect/c_foamed/Destroy() + if(owner) + owner.cut_overlay(foam_overlay) + owner.next_move_modifier /= 1.5 + + QDEL_NULL(foam_overlay) + return ..() + +/datum/status_effect/c_foamed/tick() + . = ..() + if(--foam_level <= 0) + qdel(src) + refresh_overlay() + +/datum/status_effect/c_foamed/refresh() + . = ..() + // Our max slow is 50 seconds + foam_level = min(foam_level + 1, 5) + + refresh_overlay() + + if(foam_level == 5) + owner.Paralyse(4 SECONDS) + +/datum/status_effect/c_foamed/proc/refresh_overlay() + // Refresh overlay + owner.cut_overlay(foam_overlay) + QDEL_NULL(foam_overlay) + foam_overlay = mutable_appearance('icons/obj/foam_blobs.dmi', "foamed_[foam_level]") + owner.add_overlay(foam_overlay) + /datum/status_effect/judo_armbar id = "armbar" duration = 5 SECONDS diff --git a/code/datums/uplink_items/uplink_general.dm b/code/datums/uplink_items/uplink_general.dm index 5d83a5aec80a..074048268caf 100644 --- a/code/datums/uplink_items/uplink_general.dm +++ b/code/datums/uplink_items/uplink_general.dm @@ -668,6 +668,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/organ_extractor cost = 20 +/datum/uplink_item/device_tools/c_foam_launcher + name = "C-Foam Launcher" + desc = "A gun that shoots blobs of foam. Will block airlocks, and slow down humanoids. Not rated for xenomorph usage." + reference = "CFOAM" + item = /obj/item/gun/projectile/c_foam_launcher + cost = 25 + /datum/uplink_item/device_tools/tar_spray name = "Sticky Tar Applicator" desc = "A spray bottle containing an extremely viscous fluid that will leave behind tar whenever it is sprayed, greatly slowing down anyone who tries to walk over it. \ diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index bcdcde39a4c9..058f0bbea647 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -795,6 +795,9 @@ if(isliving(target)) var/mob/living/L = target + if(L.incorporeal_move) + continue + if(crit_case) damage_to_deal *= crit_damage_factor if(iscarbon(L)) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 138cd61348d0..1a5789ef738c 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -402,7 +402,7 @@ structure_check() searches for nearby cultist structures required for the invoca to_chat(M, "You are now able to construct mirror shields inside the daemon forge.") SSticker.mode.cult_team.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 + if((ishuman(offering) && offering.mind?.offstation_role && offering.mind.special_role != SPECIAL_ROLE_ERT) || HAS_MIND_TRAIT(offering, TRAIT_XENOBIO_SPAWNED_HUMAN)) //If you try it on a ghost role, or an envolved caterpillar/nymph, you get nothing to_chat(M, "\"This soul is of no use to either of us.\"") worthless = TRUE else if(ishuman(offering) || isrobot(offering)) diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 90e9a9f2f6cc..1d7302d6a391 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -869,27 +869,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} density = TRUE anchored = TRUE resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/structure/table_frame/abductor/try_make_table(obj/item/stack/stack, mob/user) - if(!istype(stack, /obj/item/stack/sheet/mineral/abductor) && !istype(stack, /obj/item/stack/sheet/mineral/silver)) - return FALSE - - if(stack.get_amount() < 1) //no need for safeties as we did an istype earlier - to_chat(user, "You need at least one sheet of [stack] to do this!") - return TRUE - - to_chat(user, "You start adding [stack] to [src]...") - - if(!(do_after(user, 50, target = src) && stack.use(1))) - return TRUE - - if(istype(stack, /obj/item/stack/sheet/mineral/abductor)) //if it's not this then it's silver, so no need for an else afterwards - make_new_table(stack.table_type) - return TRUE - - new /obj/machinery/optable/abductor(loc) - qdel(src) - return TRUE + restrict_table_types = list(/obj/item/stack/sheet/mineral/silver = /obj/machinery/optable/abductor, /obj/item/stack/sheet/mineral/abductor = /obj/item/stack/sheet/mineral/abductor::table_type) /obj/structure/table/abductor name = "alien table" diff --git a/code/game/gamemodes/miniantags/tourist/tourist_arrivals.dm b/code/game/gamemodes/miniantags/tourist/tourist_arrivals.dm index 1edd01e798b9..150f169af498 100644 --- a/code/game/gamemodes/miniantags/tourist/tourist_arrivals.dm +++ b/code/game/gamemodes/miniantags/tourist/tourist_arrivals.dm @@ -74,13 +74,14 @@ M.change_gender(FEMALE) set_appearance(M) M.equipOutfit(T.tourist_outfit) + GLOB.data_core.manifest_inject(M) // Proc checks if they have a special role before adding to the manifest, if they do, they aren't added. This needs to be done before adding the special role. M.mind.special_role = SPECIAL_ROLE_TOURIST - GLOB.data_core.manifest_inject(M) // Rolls a 20% probability, checks if 3 tourists have been made into tot and check if there's space for a new tot! // If any is false, we don't make a new tourist tot - if(prob(chance) && tot_number < 3 && antag_count < max_antag && !jobban_isbanned(M, SPECIAL_ROLE_TRAITOR)) - tot_number++ - M.mind.add_antag_datum(/datum/antagonist/traitor) + if(prob(chance) && tot_number < 3 && antag_count < max_antag && (SPECIAL_ROLE_TRAITOR in M.client.prefs.be_special) && !jobban_isbanned(M, SPECIAL_ROLE_TRAITOR)) + if(player_old_enough_antag(M.client, ROLE_TRAITOR)) + tot_number++ + M.mind.add_antag_datum(/datum/antagonist/traitor) // If they're a tot, they don't get tourist objectives neither the tourist greeting! if(M.mind.special_role != SPECIAL_ROLE_TRAITOR) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 9261b150e9dd..98604bf69224 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -116,7 +116,7 @@ to_chat(user, "\"Come now, do not capture your fellow's soul.\"") return ..() - if(M.mind.offstation_role && M.mind.special_role != SPECIAL_ROLE_ERT) + if((M.mind.offstation_role && M.mind.special_role != SPECIAL_ROLE_ERT) || HAS_MIND_TRAIT(M, TRAIT_XENOBIO_SPAWNED_HUMAN)) to_chat(user, "This being's soul seems worthless. Not even the stone will absorb it.") return ..() diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 8226b164759e..72cf7fbdbe92 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -422,7 +422,6 @@ item_state = "grenade" materials = list(MAT_METAL = 500, MAT_GLASS = 300) //plasma burned up for power or something, plus not that much to reclaim - /obj/item/storage/box/syndie_kit/dropwall name = "dropwall generator box" @@ -474,6 +473,33 @@ turret.owner_uid = owner_uid qdel(src) +/obj/structure/barricade/foam + name = "foam blockage" + desc = "This foam blocks the airlock from being opened." + icon = 'icons/obj/foam_blobs.dmi' + icon_state = "foamed_1" + layer = DOOR_HELPER_LAYER + // The integrity goes up with 25 per level, with an extra 25 when going from 4 to 5 + obj_integrity = 25 + max_integrity = 25 + /// What level is the foam at? + var/foam_level = 1 + +/obj/structure/barricade/foam/Destroy() + for(var/obj/machinery/door/airlock in loc.contents) + airlock.foam_level = 0 + return ..() + +/obj/structure/barricade/foam/examine(mob/user) + . = ..() + . += "It would need [(5 - foam_level)] more blobs of foam to fully block the airlock." + +/obj/structure/barricade/foam/CanPass(atom/movable/mover, turf/target) + return istype(mover, /obj/item/projectile/c_foam) // Only c_foam blobs hit the airlock underneat/pass through the foam. The rest is hitting the barricade + +/obj/structure/barricade/foam/welder_act(mob/user, obj/item/I) + return FALSE + #undef SINGLE #undef VERTICAL #undef HORIZONTAL diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index a07d1427dfdc..1abf48750681 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -48,9 +48,13 @@ var/polarized_glass = FALSE var/polarized_on + /// How many levels of foam do we have on us? Capped at 5 + var/foam_level = 0 + /// How much this door reduces superconductivity to when closed. var/superconductivity = DOOR_HEAT_TRANSFER_COEFFICIENT + /obj/machinery/door/Initialize(mapload) . = ..() set_init_door_layer() @@ -93,7 +97,7 @@ return ..() /obj/machinery/door/Bumped(atom/AM) - if(operating || emagged) + if(operating || emagged || foam_level) return if(ismob(AM)) var/mob/B = AM @@ -150,6 +154,9 @@ return add_fingerprint(user) + if(foam_level) + return + if(density && !emagged) if(allowed(user)) if(HAS_TRAIT(src, TRAIT_CMAGGED)) @@ -172,8 +179,12 @@ if(isterrorspider(user)) return + if(foam_level) + return + if(!HAS_TRAIT(user, TRAIT_FORCE_DOORS)) return FALSE + var/datum/antagonist/vampire/V = user.mind?.has_antag_datum(/datum/antagonist/vampire) if(V && HAS_TRAIT_FROM(user, TRAIT_FORCE_DOORS, VAMPIRE_TRAIT)) if(!V.bloodusable) @@ -209,7 +220,7 @@ /obj/machinery/door/proc/try_to_activate_door(mob/user) add_fingerprint(user) - if(operating || emagged) + if(operating || emagged || foam_level) return if(requiresID() && (allowed(user) || user.can_advanced_admin_interact())) if(density) @@ -574,3 +585,29 @@ for(var/obj/airlock_filler_object/filler as anything in fillers) filler.set_opacity(opacity) + +#define MAX_FOAM_LEVEL 5 +// Adds foam to the airlock, which will block it from being opened +/obj/machinery/door/proc/foam_up() + if(!foam_level) + new /obj/structure/barricade/foam(get_turf(src)) + foam_level++ + return + + if(foam_level == MAX_FOAM_LEVEL) + return + + for(var/obj/structure/barricade/foam/blockage in loc.contents) + blockage.foam_level = min(++blockage.foam_level, 5) + // The last level will increase the integrity by 50 instead of 25 + if(foam_level == 4) + blockage.obj_integrity += 50 + blockage.max_integrity += 50 + else + blockage.obj_integrity += 25 + blockage.max_integrity += 25 + foam_level++ + blockage.icon_state = "foamed_[foam_level]" + blockage.update_icon_state() + +#undef MAX_FOAM_LEVEL diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index 4f5603c2567d..00d957ab8107 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -420,6 +420,9 @@ return if(isliving(AM) && prob(aggressive_tilt_chance)) + var/mob/living/to_be_tipped = AM + if(to_be_tipped.incorporeal_move) // OooOooOoo spooky ghosts + return AM.visible_message( "[src] suddenly topples over onto [AM]!", "[src] topples over onto you without warning!" diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index cb5cf0a9046f..64a264cf40a2 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -527,7 +527,7 @@ if(!action_checks(target)) return if(isobj(target)) - if(!istype(target, /obj/machinery/door))//early return if we're not trying to open a door + if(!isairlock(target))//early return if we're not trying to open a door return var/obj/machinery/door/D = target //the door we want to open D.try_to_crowbar(chassis.occupant, src)//use the door's crowbar function diff --git a/code/game/objects/effects/effect_system/effects_chem_smoke.dm b/code/game/objects/effects/effect_system/effects_chem_smoke.dm index ccc7923c799f..3f6647d6434f 100644 --- a/code/game/objects/effects/effect_system/effects_chem_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_chem_smoke.dm @@ -48,7 +48,7 @@ var/eff_range = 2 var/eff_colour = "#12A5F4" // This is a random blue incase it doesnt get set right var/process_count = 0 - var/max_process_count = 10 + var/max_process_count = 50 //50 ticks, every 0.2 seconds, or 10 seconds of smoke. var/obj/chemholder var/list/smoked_atoms = list() @@ -100,18 +100,19 @@ /datum/effect_system/smoke_spread/chem/start(effect_range = 2) eff_colour = mix_color_from_reagents(chemholder.reagents.reagent_list) eff_range = effect_range - START_PROCESSING(SSprocessing, src) + START_PROCESSING(SSfastprocess, src) /datum/effect_system/smoke_spread/chem/process() process_count++ - if(eff_range < 3) - new /obj/effect/particle_effect/chem_smoke/small(location, eff_colour) - else - new /obj/effect/particle_effect/chem_smoke(location, eff_colour) - - INVOKE_ASYNC(src, PROC_REF(SmokeEm), eff_range) + for(var/i in 1 to (2 * rand(2, 6))) // Every 0.2 seconds, create 4-12 smoke particles. This keeps it consitant with the 2-6 every 0.1 seconds before + if(eff_range < 3) + new /obj/effect/particle_effect/chem_smoke/small(location, eff_colour) + else + new /obj/effect/particle_effect/chem_smoke(location, eff_colour) + if(process_count % 5 == 0) //Every 5 ssfastprocess, 10 ticks, or 1 second. + INVOKE_ASYNC(src, PROC_REF(SmokeEm), eff_range) if(process_count > max_process_count) - STOP_PROCESSING(SSprocessing, src) + STOP_PROCESSING(SSfastprocess, src) qdel(src) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index d39c52903f3a..30a73ab0ad11 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -240,7 +240,7 @@ var/turf/replace_turf = get_turf(target) if(!istype(replace_turf)) return - + if(get_dist(src, target) >= (U.client.maxview() + 2)) // To prevent people from using it over cameras return @@ -258,13 +258,6 @@ if(!used) to_chat(U, "[src]'s refill light blinks red.") -/obj/item/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) - J.myreplacer = src - J.put_in_cart(src, user) - -/obj/item/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - /obj/item/lightreplacer/cyborg/cyborg_recharge(coeff, emagged) for(var/I in 1 to coeff) Charge() diff --git a/code/game/objects/items/weapons/c_foam_launcher.dm b/code/game/objects/items/weapons/c_foam_launcher.dm new file mode 100644 index 000000000000..6d24188c78dc --- /dev/null +++ b/code/game/objects/items/weapons/c_foam_launcher.dm @@ -0,0 +1,45 @@ +/* + * The C-Foam launcher from GTFO + * Shoots a blob of goo. If it hits an airlock, it will get closed shut, and you will have to either destroy the goo by force, or weld it off. The RnD foam is instant, and the traitor version has a `do_after` + * RnD printed needs canisters, while the traitor variant will slowly regenerate foam. + * The traitor variant also slows down mobs if they are hit by the foam. + * Overall, a good support tool designed to + */ + +/obj/item/gun/projectile/c_foam_launcher + name = "\improper C-Foam launcher" + desc = "The C-Foam launcher. Shoots blobs of quickly hardening and growing foam. Can be used to slow down humanoids or block airlocks" + icon_state = "c_foam_launcher" + item_state = "c_foam_launcher" + w_class = WEIGHT_CLASS_NORMAL + origin_tech = "combat=4;syndicate=1;materials=3" + needs_permit = FALSE + + fire_sound = 'sound/effects/bamf.ogg' + fire_sound_text = "thunk" + mag_type = /obj/item/ammo_box/magazine/c_foam + +/obj/item/gun/projectile/c_foam_launcher/update_icon_state() + icon_state = "c_foam_launcher[magazine ? "_loaded" : ""]" + +/obj/item/projectile/c_foam + name = "blob of foam" + icon_state = "foam_blob" + damage = 0 + +/obj/item/projectile/c_foam/on_hit(atom/target, blocked, hit_zone) + . = ..() + if(isairlock(target)) + var/obj/machinery/door/airlock = target + airlock.foam_up() + return + + if(istype(target, /obj/structure/mineral_door)) + var/obj/structure/mineral_door/door = target + door.foam_up() + return + + if(iscarbon(target)) // For that funny xeno foam action + var/mob/living/carbon/sticky = target + sticky.foam_up() + return diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 550be956d60b..5c7dfda79902 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -54,7 +54,7 @@ origin_tech = "magnets=2" /obj/item/card/emag/magic_key/afterattack(atom/target, mob/user, proximity) - if(!istype(target, /obj/machinery/door)) + if(!isairlock(target)) return var/obj/machinery/door/D = target D.locked = FALSE diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index a41b32954488..6776d7fdeded 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -90,7 +90,7 @@ log_game("[key_name(user)] planted [name] on [target.name] at ([target.x],[target.y],[target.z]) with [det_time] second fuse") plastic_overlay.layer = HIGH_OBJ_LAYER - if(isturf(target) || istype(target, /obj/machinery/door)) + if(isturf(target) || isairlock(target)) plastic_overlay_target = new /obj/effect/plastic(get_turf(user)) else plastic_overlay_target = target diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 9db76c6aaacb..93ba8f6cbbd6 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -28,19 +28,21 @@ GLOB.janitorial_equipment -= src return ..() -/obj/item/mop/proc/wet_mop(obj/o, mob/user) - if(o.reagents.total_volume < 1) - to_chat(user, "[o] is out of water!") - if(istype(o, /obj/structure/mopbucket)) - var/obj/structure/mopbucket/mopbucket = o - mopbucket.mopbucket_insert(user, o) - if(istype(o, /obj/structure/janitorialcart)) - janicart_insert(user, o) +/obj/item/mop/proc/wet_mop(obj/O, mob/user) + if(O.reagents.total_volume < 1) + to_chat(user, "[O] is empty!") + if(istype(O, /obj/structure/mopbucket)) + var/obj/structure/mopbucket/mopbucket = O + mopbucket.mopbucket_insert(user, O) + if(istype(O, /obj/structure/janitorialcart)) + var/obj/structure/janitorialcart/janicart = O + if(!janicart.mymop) + janicart.put_in_cart(user, src) return - o.reagents.trans_to(src, 6) - to_chat(user, "You wet [src] in [o].") - playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + O.reagents.trans_to(src, 6) + to_chat(user, "You wet [src] in [O].") + playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) /obj/item/mop/afterattack(atom/A, mob/user, proximity) if(!proximity) @@ -73,10 +75,6 @@ else return ..() -/obj/item/mop/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) - J.mymop = src - J.put_in_cart(src, user) - /obj/item/mop/wash(mob/user, atom/source) reagents.add_reagent("water", 5) to_chat(user, "You wet [src] in [source].") @@ -126,7 +124,4 @@ /obj/item/mop/advanced/cyborg -/obj/item/mop/advanced/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - #undef MOP_SOUND_CD diff --git a/code/game/objects/items/weapons/paiwire.dm b/code/game/objects/items/weapons/paiwire.dm index 2e0ddfa828d3..5206005e089d 100644 --- a/code/game/objects/items/weapons/paiwire.dm +++ b/code/game/objects/items/weapons/paiwire.dm @@ -1,5 +1,5 @@ /obj/item/pai_cable/proc/plugin(obj/machinery/M as obj, mob/user as mob) - if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera)) + if(isairlock(M) || istype(M, /obj/machinery/camera)) user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.") user.drop_item() src.loc = M diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index a40a41c986e8..7cdfc1bef791 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -96,13 +96,6 @@ /obj/item/storage/bag/trash/cyborg -/obj/item/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) - J.mybag = src - J.put_in_cart(src, user) - -/obj/item/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - /obj/item/storage/bag/trash/bluespace name = "trash bag of holding" desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." @@ -115,9 +108,6 @@ /obj/item/storage/bag/trash/bluespace/cyborg -/obj/item/storage/bag/trash/bluespace/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - //////////////////////////////////////// // MARK: Plastic bag //////////////////////////////////////// diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 38f5ff839e4b..a0fead4ca3f7 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -183,9 +183,12 @@ var/mob/living/L = M if(user.a_intent == INTENT_HARM) + . = ..() // Whack them too if in harm intent + if(!isnull(.)) // Attack returns null when successful + return if(turned_on) - baton_stun(L, user) - return ..() // Whack them too if in harm intent + baton_stun(L, user, ignore_shield_check = TRUE) + return if(!turned_on) user.do_attack_animation(L) @@ -196,11 +199,10 @@ if(baton_stun(L, user)) user.do_attack_animation(L) -/// returning false results in no baton attack animation, returning true results in an animation. -/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, skip_cooldown = FALSE) +/// returning false results in no baton attack animation, returning true results in an animation. If ignore_shield_check is true, the baton will not run check shields, and will hit if not on cooldown. +/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, skip_cooldown = FALSE, ignore_shield_check = FALSE) if(cooldown > world.time && !skip_cooldown) return FALSE - var/user_UID = user.UID() if(HAS_TRAIT_FROM(L, TRAIT_WAS_BATONNED, user_UID)) // prevents double baton cheese. return FALSE @@ -208,7 +210,7 @@ cooldown = world.time + initial(cooldown) // tracks the world.time when hitting will be next available. if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that + if(!ignore_shield_check && H.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that playsound(L, 'sound/weapons/genhit.ogg', 50, TRUE) return FALSE H.Confused(10 SECONDS) @@ -311,7 +313,7 @@ QDEL_NULL(sparkler) return ..() -/obj/item/melee/baton/cattleprod/baton_stun(mob/living/L, mob/user, skip_cooldown = FALSE) +/obj/item/melee/baton/cattleprod/baton_stun(mob/living/L, mob/user, skip_cooldown = FALSE, ignore_shield_check = FALSE) if(sparkler.activate()) return ..() diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 328b49f4730c..79825ab09dd7 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -946,10 +946,6 @@ trash.forceMove(storage) storage.update_icon() -/obj/item/push_broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/cart) - cart.mybroom = src - cart.put_in_cart(src, user) - /obj/item/push_broom/traitor name = "titanium push broom" desc = "This is my BROOMSTICK! All of the functionality of a normal broom, but at least half again more robust." diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index cb5dc18f2422..9d598c5e9058 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -446,7 +446,7 @@ if(T.density) return for(var/atom/A in T.contents) - if(A.density && istype(A, /obj/machinery/door)) + if(A.density && isairlock(A)) return UpdateTransparency(src, NewLoc) forceMove(NewLoc) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index d094f279d636..be9c4a1df471 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -34,8 +34,11 @@ QDEL_NULL(myreplacer) return ..() -/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user) - user.drop_item() +/obj/structure/janitorialcart/proc/put_in_cart(mob/user, obj/item/I) + if(!user.unEquip(I)) // We can do this here because everything below wants to + to_chat(user, "[I] is stuck to your hand!") + return + I.forceMove(src) to_chat(user, "You put [I] into [src].") update_icon(UPDATE_OVERLAYS) @@ -45,52 +48,51 @@ update_icon(UPDATE_OVERLAYS) /obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params) - var/fail_msg = "There is already one of those in [src]." + if(I.is_robot_module()) + to_chat(user, "You cannot interface your modules with [src]!") + return + + if(istype(I, /obj/item/mop)) + var/obj/item/mop/M = I + if(M.reagents.total_volume < M.reagents.maximum_volume) + M.wet_mop(src, user) + return + if(!mymop) + mymop = I + put_in_cart(user, I) + return + to_chat(user, "There is already one of those in [src].") + + else if(istype(I, /obj/item/push_broom) && !mybroom) + mybroom = I + put_in_cart(user, I) + + else if(istype(I, /obj/item/storage/bag/trash) && !mybag) + mybag = I + put_in_cart(user, I) + + else if(istype(I, /obj/item/reagent_containers/spray/cleaner) && !myspray) + myspray = I + put_in_cart(user, I) + + else if(istype(I, /obj/item/lightreplacer) && !myreplacer) + myreplacer = I + put_in_cart(user, I) + + else if(istype(I, /obj/item/caution)) + if(signs < max_signs) + signs++ + put_in_cart(user, I) + else + to_chat(user, "[src] can't hold any more signs.") + + to_chat(user, "There is already one of those in [src].") + + else if(mybag) + mybag.attackby(I, user, params) - if(!I.is_robot_module()) - if(istype(I, /obj/item/mop)) - var/obj/item/mop/m=I - if(m.reagents.total_volume < m.reagents.maximum_volume) - m.wet_mop(src, user) - return - if(!mymop) - m.janicart_insert(user, src) - else - to_chat(user, fail_msg) - else if(istype(I, /obj/item/push_broom)) - if(!mybroom) - var/obj/item/push_broom/B = I - B.janicart_insert(user, src) - else - to_chat(user, fail_msg) - else if(istype(I, /obj/item/storage/bag/trash)) - if(!mybag) - var/obj/item/storage/bag/trash/t=I - t.janicart_insert(user, src) - else - to_chat(user, fail_msg) - else if(istype(I, /obj/item/reagent_containers/spray/cleaner)) - if(!myspray) - myspray = I - put_in_cart(I, user) - else - to_chat(user, fail_msg) - else if(istype(I, /obj/item/lightreplacer)) - if(!myreplacer) - var/obj/item/lightreplacer/l=I - l.janicart_insert(user,src) - else - to_chat(user, fail_msg) - else if(istype(I, /obj/item/caution)) - if(signs < max_signs) - signs++ - put_in_cart(I, user) - else - to_chat(user, "[src] can't hold any more signs.") - else if(mybag) - mybag.attackby(I, user, params) else - to_chat(usr, "You cannot interface your modules with [src]!") + to_chat(user, "There is already one of those in [src].") /obj/structure/janitorialcart/crowbar_act(mob/living/user, obj/item/I) . = TRUE diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index f17c3f0dba53..d28a65a973ea 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -22,6 +22,8 @@ var/open_sound = 'sound/effects/stonedoor_openclose.ogg' var/close_sound = 'sound/effects/stonedoor_openclose.ogg' var/damageSound = null + /// How much foam is on the door. Max 5 levels. + var/foam_level = 0 /obj/structure/mineral_door/Initialize() . = ..() @@ -68,6 +70,8 @@ /obj/structure/mineral_door/proc/try_to_operate(atom/user) if(is_operating) return + if(foam_level) + return if(isliving(user)) var/mob/living/M = user if(M.client) @@ -216,3 +220,29 @@ /obj/structure/mineral_door/wood/Initialize() . = ..() AddComponent(/datum/component/debris, DEBRIS_WOOD, -20, 10) + +#define MAX_FOAM_LEVEL 5 +// Adds foam to the airlock, which will block it from being opened +/obj/structure/mineral_door/proc/foam_up() + if(!foam_level) + new /obj/structure/barricade/foam(get_turf(src)) + foam_level++ + return + + if(foam_level == MAX_FOAM_LEVEL) + return + + for(var/obj/structure/barricade/foam/blockage in loc.contents) + blockage.foam_level = min(++blockage.foam_level, 5) + // The last level will increase the integrity by 50 instead of 25 + if(foam_level == 4) + blockage.obj_integrity += 50 + blockage.max_integrity += 50 + else + blockage.obj_integrity += 25 + blockage.max_integrity += 25 + foam_level++ + blockage.icon_state = "foamed_[foam_level]" + blockage.update_icon_state() + +#undef MAX_FOAM_LEVEL diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 360d5ee184f6..f84af512c5ea 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -76,7 +76,7 @@ if(!has_buckled_mobs()) return var/mob/living/buckled_mob = buckled_mobs[1] - if(istype(A, /obj/machinery/door)) + if(isairlock(A)) A.Bumped(buckled_mob) if(propelled) diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 05a56c19eb22..a2ac6103dfb9 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -18,8 +18,14 @@ anchored = FALSE layer = PROJECTILE_HIT_THRESHHOLD_LAYER max_integrity = 100 + ///The resource dropped when the table frame is destroyed or deconstructed var/framestack = /obj/item/stack/rods + ///How many of framestack resource are dropped var/framestackamount = 2 + ///How long the table takes to make + var/construction_time = 5 SECONDS + ///What stacks can be used to make the table, and if it will result in a unique table + var/list/restrict_table_types = list() //ex: list(/obj/item/stack/tile/carpet = /obj/structure/table/wood/poker, /obj/item/stack/sheet/wood = /obj/item/stack/sheet/wood::table_type), carpet will make poker table, wood will result in standard table_type. If the list is empty, any material can be used for its default table_type. /obj/structure/table_frame/attackby(obj/item/I, mob/user, params) if(!try_make_table(I, user)) @@ -30,7 +36,18 @@ if(!istype(stack)) return FALSE - if(!stack.table_type) + var/obj/structure/table/new_table_type = stack.table_type + if(length(restrict_table_types)) + var/valid_stack_type = FALSE + for(var/obj/item/stack/current_stack as anything in restrict_table_types) + if(istype(stack, current_stack)) + new_table_type = restrict_table_types[current_stack] + valid_stack_type = TRUE + break + if(!valid_stack_type) + return FALSE + + if(!new_table_type) return FALSE if(stack.get_amount() < 1) @@ -38,13 +55,24 @@ return TRUE to_chat(user, "You start adding [stack] to [src]...") + if(!do_after(user, construction_time, target = src)) + return TRUE + + if(!stack.use(1)) + to_chat(user, "You need at least one sheet of [stack] to do this!") + return TRUE - if(!(do_after(user, 50, target = src) && stack.use(1))) + var/obj/structure/table/table_already_there = locate(/obj/structure/table) in get_turf(src) + if(table_already_there) //check again after to make sure one wasnt added since + to_chat(user, "There is already [table_already_there] here.") return TRUE - if(stack.table_type) - make_new_table(stack.table_type) + if(!istype(new_table_type, /obj/structure/table)) //if its something unique, skip the table parts + new new_table_type(loc) + qdel(src) return TRUE + make_new_table(new_table_type) + return TRUE /obj/structure/table_frame/wrench_act(mob/user, obj/item/I) . = TRUE @@ -83,26 +111,7 @@ framestack = /obj/item/stack/sheet/wood framestackamount = 2 resistance_flags = FLAMMABLE - -/obj/structure/table_frame/wood/try_make_table(obj/item/stack/stack, mob/user) - if(!istype(stack, /obj/item/stack/tile/carpet) && !istype(stack, /obj/item/stack/sheet/wood)) - return FALSE - - if(stack.get_amount() < 1) //no need for safeties as we did an istype earlier - to_chat(user, "You need at least one sheet of [stack] to do this!") - return TRUE - - to_chat(user, "You start adding [stack] to [src]...") - - if(!(do_after(user, 50, target = src) && stack.use(1))) - return TRUE - - if(istype(stack, /obj/item/stack/tile/carpet)) - make_new_table(/obj/structure/table/wood/poker) - return TRUE - - make_new_table(stack.table_type) - return TRUE + restrict_table_types = list(/obj/item/stack/tile/carpet = /obj/structure/table/wood/poker, /obj/item/stack/sheet/wood = /obj/item/stack/sheet/wood::table_type) /obj/structure/table_frame/brass name = "brass table frame" @@ -113,21 +122,8 @@ anchored = TRUE framestack = /obj/item/stack/tile/brass framestackamount = 1 - -/obj/structure/table_frame/brass/try_make_table(obj/item/stack/stack, mob/user) - if(!istype(stack, /obj/item/stack/tile/brass)) - return FALSE - - if(stack.get_amount() < 1) //no need for safeties as we did an istype earlier - to_chat(user, "You need at least one sheet of [stack] to do this!") - return TRUE - - to_chat(user, "You start adding [stack] to [src]...") - - if(do_after(user, 20, target = src) && stack.use(1)) - make_new_table(stack.table_type) - - return TRUE + construction_time = 2 SECONDS + restrict_table_types = list(/obj/item/stack/tile/brass = /obj/item/stack/tile/brass::table_type) /obj/structure/table_frame/brass/narsie_act() ..() diff --git a/code/modules/antagonists/vampire/vamp_datum.dm b/code/modules/antagonists/vampire/vamp_datum.dm index 45625ed31214..e9ba8c78bba0 100644 --- a/code/modules/antagonists/vampire/vamp_datum.dm +++ b/code/modules/antagonists/vampire/vamp_datum.dm @@ -114,7 +114,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire) owner.current.set_nutrition(min(NUTRITION_LEVEL_WELL_FED, owner.current.nutrition + 5)) continue - if(H.stat != DEAD || H.has_status_effect(STATUS_EFFECT_RECENTLY_SUCCUMBED)) + if((H.stat != DEAD || H.has_status_effect(STATUS_EFFECT_RECENTLY_SUCCUMBED)) && !HAS_MIND_TRAIT(H, TRAIT_XENOBIO_SPAWNED_HUMAN)) if(H.ckey || H.player_ghosted) //Requires ckey regardless if monkey or humanoid, or the body has been ghosted before it died blood = min(20, H.blood_volume) adjust_blood(H, blood * BLOOD_GAINED_MODIFIER) @@ -130,7 +130,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire) else to_chat(owner.current, "You have bled your victim dry!") break - if(!H.ckey && !H.player_ghosted)//Only runs if there is no ckey and the body has not being ghosted while alive + if((!H.ckey && !H.player_ghosted) || HAS_MIND_TRAIT(H, TRAIT_XENOBIO_SPAWNED_HUMAN)) //Only runs if there is no ckey and the body has not being ghosted while alive, also runs if the victim is an evolved caterpillar or diona nymph. to_chat(owner.current, "Feeding on [H] reduces your thirst, but you get no usable blood from them.") owner.current.set_nutrition(min(NUTRITION_LEVEL_WELL_FED, owner.current.nutrition + 5)) else diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 1c1810d2cdae..681856dc6833 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -76,3 +76,7 @@ if(!affecting) //bruh where's your chest return FALSE apply_damage(damage, BRUTE, affecting) + +// Adds the foam status effect to the carbon, which will slow it's movement speed and attack speed +/mob/living/carbon/proc/foam_up(amount) + apply_status_effect(STATUS_EFFECT_C_FOAMED) diff --git a/code/modules/mob/living/carbon/carbon_procs.dm b/code/modules/mob/living/carbon/carbon_procs.dm index 1c92114c7582..b242413c0e31 100644 --- a/code/modules/mob/living/carbon/carbon_procs.dm +++ b/code/modules/mob/living/carbon/carbon_procs.dm @@ -355,7 +355,7 @@ var/obj/item/organ/internal/eyes/E = get_int_organ(/obj/item/organ/internal/eyes) . = ..() - if((E && (E.status & ORGAN_DEAD)) || !.) + if((E && (E.status & ORGAN_DEAD)) || !. || E.is_broken()) return FALSE /mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, laser_pointer = FALSE, type = /atom/movable/screen/fullscreen/stretch/flash) @@ -1207,10 +1207,13 @@ so that different stomachs can handle things in different ways VB*/ var/tinttotal = get_total_tint() if(tinttotal >= TINT_BLIND) overlay_fullscreen("tint", /atom/movable/screen/fullscreen/stretch/blind) + ADD_TRAIT(src, TRAIT_BLIND, "tint") else if(tinttotal >= TINT_IMPAIR) overlay_fullscreen("tint", /atom/movable/screen/fullscreen/stretch/impaired, 2) + REMOVE_TRAIT(src, TRAIT_BLIND, "tint") else clear_fullscreen("tint", 0) + REMOVE_TRAIT(src, TRAIT_BLIND, "tint") /mob/living/carbon/proc/get_total_tint() . = 0 diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm index d607ee114848..c182f2bd41cb 100644 --- a/code/modules/mob/living/silicon/ai/ai_mob.dm +++ b/code/modules/mob/living/silicon/ai/ai_mob.dm @@ -1251,7 +1251,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( . = TRUE if(anchored) user.visible_message("[user] starts to unbolt [src] from the plating...") - if(I.use_tool(src, user, 4 SECONDS, 0, 50)) + if(!I.use_tool(src, user, 4 SECONDS, 0, 50)) user.visible_message("[user] decides not to unbolt [src].") return user.visible_message("[user] finishes unfastening [src]!") diff --git a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm index 1637a02c8ce3..77c8b8aeb0ac 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm @@ -205,6 +205,8 @@ adult.real_name = adult.name adult.ckey = ckey adult.real_name = adult.dna.species.get_random_name() //I hate this being here of all places but unfortunately dna is based on real_name! + // [Nymph -> Diona] is from xenobio (or botany) and does not give vampires usuble blood and cannot be converted by cult. + ADD_TRAIT(adult.mind, TRAIT_XENOBIO_SPAWNED_HUMAN, ROUNDSTART_TRAIT) for(var/obj/item/W in contents) unEquip(W) diff --git a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm index 166b06f23e36..14a22fce199e 100644 --- a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm +++ b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm @@ -83,6 +83,8 @@ // Mind transfer to new worme. M.transfer_to(adult) + // [Caterpillar -> worme -> nian] is from xenobio (or cargo) and does not give vampires usuble blood and cannot be converted by cult. + ADD_TRAIT(adult.mind, TRAIT_XENOBIO_SPAWNED_HUMAN, ROUNDSTART_TRAIT) // Worme is placed into cacoon. adult.forceMove(C) diff --git a/code/modules/mod/mod_core.dm b/code/modules/mod/mod_core.dm index 62a214ce072c..c2ce61cab7e7 100644 --- a/code/modules/mod/mod_core.dm +++ b/code/modules/mod/mod_core.dm @@ -153,10 +153,12 @@ cell = new_cell cell.forceMove(src) RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + RegisterSignal(cell, COMSIG_PARENT_QDELETING, PROC_REF(remove_cell)) /obj/item/mod/core/standard/proc/uninstall_cell() if(!cell) return + UnregisterSignal(cell, COMSIG_PARENT_QDELETING) cell = null UnregisterSignal(src, COMSIG_ATOM_EXITED) @@ -167,6 +169,11 @@ return uninstall_cell() +/obj/item/mod/core/standard/proc/remove_cell() + SIGNAL_HANDLER // COMSIG_PARENT_QDELETING + UnregisterSignal(cell, COMSIG_PARENT_QDELETING) + cell = null + /obj/item/mod/core/standard/proc/on_examine(datum/source, mob/examiner, list/examine_text) SIGNAL_HANDLER diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index e94b02f1d272..d8f6535a23b8 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -128,6 +128,7 @@ message_admins("LOG: Rigged power cell explosion, last touched by [fingerprintslast]") explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range) + charge = 0 //Extra safety in the event the cell does not QDEL right qdel(src) /obj/item/stock_parts/cell/proc/corrupt() diff --git a/code/modules/power/engines/singularity/emitter.dm b/code/modules/power/engines/singularity/emitter.dm index 7cd160a97c16..bf657702d7d8 100644 --- a/code/modules/power/engines/singularity/emitter.dm +++ b/code/modules/power/engines/singularity/emitter.dm @@ -147,7 +147,7 @@ step(src, get_dir(M, src)) /obj/machinery/power/emitter/attackby(obj/item/I, mob/user, params) - if(!istype(I, /obj/item/card/id) || !istype(I, /obj/item/pda)) + if(!istype(I, /obj/item/card/id) && !istype(I, /obj/item/pda)) return ..() if(emagged) diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 1f3d72d994dd..20d383224e12 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -508,3 +508,12 @@ muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL muzzle_flash_color = LIGHT_COLOR_DARKRED icon_state = "lasercasing" + +/obj/item/ammo_casing/caseless/c_foam + name = "\improper C-Foam blob" + desc = "You shouldn't see this! Make an issue report on Github!" + caliber = "c_foam" + projectile_type = /obj/item/projectile/c_foam + muzzle_flash_strength = MUZZLE_FLASH_RANGE_WEAK + muzzle_flash_range = MUZZLE_FLASH_RANGE_WEAK + muzzle_flash_color = LIGHT_COLOR_DARKRED diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index f1e7fe2fd483..b764ae1ce094 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -624,3 +624,13 @@ /obj/item/ammo_box/magazine/detective/speedcharger/attackby() return + +/obj/item/ammo_box/magazine/c_foam + name = "\improper C-Foam canister" + desc = "A canister containing inert foam for the C-Foam launcher." + icon_state = "foam_canister" + ammo_type = /obj/item/ammo_casing/caseless/c_foam + max_ammo = 12 + +/obj/item/ammo_box/magazine/c_foam/attack_self(mob/user) + return diff --git a/code/modules/projectiles/projectile/magic_projectiles.dm b/code/modules/projectiles/projectile/magic_projectiles.dm index 8ccc59ffc307..99c40d5929c3 100644 --- a/code/modules/projectiles/projectile/magic_projectiles.dm +++ b/code/modules/projectiles/projectile/magic_projectiles.dm @@ -149,7 +149,7 @@ else if(isturf(T) && T.density) if(!(istype(T, /turf/simulated/wall/indestructible))) CreateDoor(T) - else if(istype(target, /obj/machinery/door)) + else if(isairlock(target)) OpenDoor(target) else if(istype(target, /obj/structure/closet)) OpenCloset(target) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index f0bdda2848e4..2ec5338c3348 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -729,7 +729,6 @@ build_path = /obj/item/flamethrower/full category = list("hacked", "Security") - /datum/design/electropack name = "Electropack" id = "electropack" @@ -842,6 +841,14 @@ build_path = /obj/item/ammo_box/c9mm category = list("hacked", "Security") +/datum/design/c_foam_ammo + name = "C-Foam cartridge" + id = "c_foam" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) + build_path = /obj/item/ammo_box/magazine/c_foam + category = list("hacked", "Security") + /datum/design/cleaver name = "Butcher's Cleaver" id = "cleaver" diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index 96d276aa5042..b62ee6a76cfa 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -209,7 +209,7 @@ return FALSE . = ..() if(auto_door_open) - if(istype(M, /obj/machinery/door) && has_buckled_mobs()) + if(isairlock(M) && has_buckled_mobs()) for(var/m in buckled_mobs) M.Bumped(m) diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index 6ba217d1d510..b69abf841339 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index 1aee6bb9652e..5a63844e0fa3 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index c1175b0c242c..301305fcac10 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/foam_blobs.dmi b/icons/obj/foam_blobs.dmi new file mode 100644 index 000000000000..679ce893f522 Binary files /dev/null and b/icons/obj/foam_blobs.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index de9e8b650287..d510c4fa9af5 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 8164d961ab5f..f56034e9cca1 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/paradise.dme b/paradise.dme index 3bac9fef86b5..96959d4b08dd 100644 --- a/paradise.dme +++ b/paradise.dme @@ -103,8 +103,8 @@ #include "code\__DEFINES\pipes.dm" #include "code\__DEFINES\power_defines.dm" #include "code\__DEFINES\preferences_defines.dm" -#include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\proc_refs.dm" +#include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\qdel_defines.dm" #include "code\__DEFINES\radiation_defines.dm" #include "code\__DEFINES\radio_defines.dm" @@ -1128,6 +1128,7 @@ #include "code\game\objects\items\weapons\alien_specific.dm" #include "code\game\objects\items\weapons\batons.dm" #include "code\game\objects\items\weapons\bee_briefcase.dm" +#include "code\game\objects\items\weapons\c_foam_launcher.dm" #include "code\game\objects\items\weapons\cards_ids.dm" #include "code\game\objects\items\weapons\cash.dm" #include "code\game\objects\items\weapons\caution.dm"