diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index 25e22cf696d..5fbfeeb5ba3 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -26340,7 +26340,7 @@ /turf/simulated/floor/plasteel/dark, /area/station/turret_protected/ai) "bwG" = ( -/obj/machinery/porta_turret, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -31977,7 +31977,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, -/obj/machinery/porta_turret, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -34279,7 +34279,7 @@ /turf/simulated/floor/plating, /area/station/turret_protected/aisat) "bPI" = ( -/obj/machinery/porta_turret, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -37501,7 +37501,7 @@ }, /area/station/turret_protected/aisat) "bXL" = ( -/obj/machinery/porta_turret, +/obj/machinery/porta_turret/ai_turret, /obj/machinery/firealarm{ dir = 4; name = "east bump"; @@ -40268,7 +40268,7 @@ }, /area/station/maintenance/electrical) "ceP" = ( -/obj/machinery/porta_turret, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/bluegrid, /area/station/telecomms/chamber) "ceQ" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 868ae93f7c8..d22b7612e43 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3724,9 +3724,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/auxsolarstarboard) "avN" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, +/obj/machinery/porta_turret/ai_turret, /obj/machinery/computer/security/telescreen/minisat{ dir = 4; pixel_x = -29 @@ -12338,9 +12336,7 @@ }, /area/station/engineering/atmos/distribution) "aXK" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, +/obj/machinery/porta_turret/ai_turret, /obj/machinery/computer/security/telescreen/minisat{ dir = 8; pixel_x = 29 @@ -18397,9 +18393,7 @@ }, /area/station/maintenance/fsmaint) "bmT" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ icon_state = "darkgrey" }, @@ -19049,9 +19043,7 @@ }, /area/station/command/bridge) "boH" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, +/obj/machinery/porta_turret/ai_turret, /obj/machinery/flasher{ id = "AI"; pixel_y = 21 @@ -77251,9 +77243,7 @@ }, /area/station/engineering/tech_storage) "qfR" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/cerestation/cerestation.dmm b/_maps/map_files/cerestation/cerestation.dmm index 7502f1e6a27..633ab64862e 100644 --- a/_maps/map_files/cerestation/cerestation.dmm +++ b/_maps/map_files/cerestation/cerestation.dmm @@ -875,25 +875,6 @@ "afd" = ( /turf/simulated/wall/r_wall, /area/station/security/permabrig) -"afg" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/mapping_helpers/airlock/polarized{ - id = "Interrogation" - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/interrogation) "afn" = ( /obj/structure/cable{ d1 = 4; @@ -1371,6 +1352,34 @@ icon_state = "asteroidplating" }, /area/station/security/permabrig) +"aiY" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/window/classic/normal{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/general{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{ + dir = 1 + }, +/obj/machinery/door/window/classic/normal{ + name = "Chemistry Desk" + }, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/chemistry, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/station/medical/chemistry) "aja" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel, @@ -1610,25 +1619,6 @@ icon_state = "bcircuit" }, /area/station/turret_protected/ai) -"aks" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/porta_turret{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/ai) "akt" = ( /obj/structure/cable{ d1 = 2; @@ -1650,20 +1640,6 @@ icon_state = "bcircuit" }, /area/station/turret_protected/ai) -"aku" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/porta_turret{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/ai) "akv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -1748,11 +1724,6 @@ icon_state = "dark" }, /area/station/security/execution) -"akG" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/turf/simulated/floor/plasteel, -/area/station/public/fitness) "akK" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -1932,14 +1903,6 @@ icon_state = "cafeteria" }, /area/station/command/office/rd) -"alJ" = ( -/obj/machinery/porta_turret{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/ai) "alM" = ( /obj/structure/disposalpipe/sortjunction/reversed{ dir = 8; @@ -2151,6 +2114,25 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, /area/station/maintenance/disposal/north) +"ang" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/classic/normal{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics{ + dir = 4 + }, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/station/service/hydroponics) "anm" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -2478,6 +2460,19 @@ }, /turf/simulated/floor/plasteel, /area/station/security/prisonlockers) +"apf" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/station/security/prisonlockers) "apg" = ( /obj/structure/chair/office/dark, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -2607,22 +2602,6 @@ }, /turf/simulated/floor/plating, /area/station/turret_protected/aisat/interior/secondary) -"aqc" = ( -/obj/machinery/porta_turret{ - dir = 4; - installation = /obj/item/gun/energy/gun; - name = "hallway turret" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/aisat/interior/secondary) "aqd" = ( /obj/machinery/door/airlock/maintenance{ name = "Disposals Maintenance" @@ -2742,6 +2721,18 @@ /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, /area/station/maintenance/disposal/northeast) +"aqY" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/station/security/prisonlockers) "ara" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 @@ -2900,6 +2891,19 @@ /obj/item/clothing/under/color/orange/prison, /turf/simulated/floor/plasteel, /area/station/security/prisonlockers) +"asc" = ( +/obj/machinery/door/airlock/security/glass{ + security_level = 1 + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/permabrig) "asd" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; @@ -3444,6 +3448,22 @@ /obj/machinery/ai_status_display, /turf/simulated/wall/r_wall, /area/station/telecomms/computer) +"avr" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/turret_protected/aisat/interior/secondary) "avu" = ( /obj/effect/turf_decal/stripes/corner{ dir = 2 @@ -5085,6 +5105,17 @@ icon_state = "red" }, /area/station/security/processing) +"aGL" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "Brig" + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/processing) "aGP" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ @@ -5231,6 +5262,20 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/station/public/locker) +"aIv" = ( +/obj/machinery/door/window/classic/reversed{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/command/general{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "rampbottom" + }, +/area/station/command/bridge) "aIx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, @@ -5410,19 +5455,6 @@ icon_state = "dark" }, /area/station/security/evidence) -"aJF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/public/quantum/cargo) "aJG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/landmark/start/shaft_miner, @@ -6699,6 +6731,12 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel, /area/station/public/locker) +"aRj" = ( +/obj/machinery/porta_turret/ai_turret/disable, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/aisat/interior/secondary) "aRn" = ( /obj/machinery/power/apc{ dir = 8; @@ -7139,20 +7177,6 @@ }, /turf/simulated/floor/plasteel/freezer, /area/station/public/locker) -"aUd" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/classic/normal{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/station/service/hydroponics) "aUe" = ( /obj/structure/cable/orange{ d1 = 1; @@ -7598,6 +7622,16 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/fore) +"aWw" = ( +/obj/machinery/door/airlock, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/janitor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/station/service/janitor) "aWx" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ @@ -7770,6 +7804,33 @@ /obj/structure/lattice/catwalk, /turf/space, /area/station/engineering/solar/auxport) +"aXd" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/turret_protected/aisat/interior) +"aXe" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/turret_protected/aisat/interior) "aXi" = ( /obj/machinery/power/tracker, /obj/structure/lattice/catwalk, @@ -8455,6 +8516,21 @@ icon_state = "whiteblue" }, /area/station/medical/cloning) +"baE" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/station/security/range) "baF" = ( /turf/simulated/wall, /area/station/service/kitchen) @@ -11159,6 +11235,25 @@ icon_state = "dark" }, /area/station/security/evidence) +"bnx" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/mapping_helpers/airlock/polarized{ + id = "Interrogation" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/interrogation) "bnz" = ( /obj/effect/spawner/window/reinforced/polarized{ id = "Interrogation" @@ -11320,6 +11415,12 @@ }, /turf/simulated/floor/plasteel, /area/station/public/locker) +"boy" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "boC" = ( /obj/item/clothing/head/cone, /obj/item/pickaxe/mini, @@ -12962,6 +13063,21 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/maintcentral) +"bvr" = ( +/obj/machinery/door/airlock/command, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/carpet/black, +/area/station/command/office/captain) "bvt" = ( /turf/simulated/floor/plasteel{ icon_state = "neutralfull" @@ -13532,6 +13648,20 @@ icon_state = "white" }, /area/station/medical/reception) +"bxQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/classic/normal{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/station/service/hydroponics) "bxR" = ( /obj/structure/table/glass, /obj/item/reagent_containers/glass/bottle/epinephrine, @@ -16588,6 +16718,29 @@ icon_state = "dark" }, /area/station/engineering/gravitygenerator) +"bKV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/reinforced/normal{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/security/armory{ + dir = 4 + }, +/obj/machinery/door/window/reinforced/normal{ + dir = 8; + name = "Secure Armory" + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/security/general{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/armory/secure) "bKZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -17114,6 +17267,20 @@ }, /turf/simulated/floor/carpet/black, /area/station/command/bridge) +"bNj" = ( +/obj/machinery/door/window/classic/normal{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/command/general{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "rampbottom" + }, +/area/station/command/bridge) "bNl" = ( /turf/simulated/floor/engine{ name = "n2 floor"; @@ -18801,22 +18968,6 @@ "bUc" = ( /turf/simulated/floor/plasteel/freezer, /area/station/public/toilet) -"bUg" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "barber" - }, -/area/station/service/barber) "bUj" = ( /turf/simulated/floor/engine{ name = "air floor"; @@ -20184,6 +20335,22 @@ }, /turf/simulated/floor/plating, /area/station/supply/miningdock) +"cbN" = ( +/obj/machinery/door/airlock/mining, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/station/supply/miningdock) "cbP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -22408,6 +22575,21 @@ /obj/machinery/ai_status_display, /turf/simulated/wall, /area/station/command/bridge) +"cpk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id_tag = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/command/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/command/bridge) "cpm" = ( /obj/structure/railing{ dir = 4 @@ -22494,29 +22676,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/fsmaint) -"cpD" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/reinforced/normal{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/security/armory{ - dir = 4 - }, -/obj/machinery/door/window/reinforced/normal{ - dir = 8; - name = "Secure Armory" - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/security/general{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/armory/secure) "cpF" = ( /obj/machinery/alarm{ dir = 8; @@ -23501,30 +23660,6 @@ /mob/living/simple_animal/slime, /turf/simulated/floor/engine, /area/station/science/xenobiology) -"cwa" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id_tag = "atmodesk" - }, -/obj/machinery/door/window/classic/reversed{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/engineering/atmos{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel{ - icon_state = "darkyellowfull" - }, -/area/station/engineering/atmos) "cwh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26443,24 +26578,6 @@ /obj/structure/sign/barsign, /turf/simulated/wall, /area/station/maintenance/gambling_den) -"cMD" = ( -/obj/machinery/porta_turret{ - dir = 4; - installation = /obj/item/gun/energy/gun; - name = "hallway turret" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/aisat/interior/secondary) "cME" = ( /obj/structure/cable/orange{ d1 = 2; @@ -29483,13 +29600,6 @@ icon_state = "neutralfull" }, /area/station/hallway/secondary/entry/south) -"dbh" = ( -/obj/machinery/door/airlock/mining, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/effect/spawner/random_spawners/dirt_frequent, -/turf/simulated/floor/plating, -/area/station/supply/miningdock) "dby" = ( /obj/effect/spawner/window/reinforced/polarized{ id = "IAA" @@ -29498,19 +29608,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/legal/lawoffice) -"dbK" = ( -/obj/machinery/door/airlock/glass{ - id_tag = "magistrateofficedoor" - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/command/magistrate, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/polarized{ - id = "Magistrate" - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/wood, -/area/station/legal/magistrate) "dcv" = ( /obj/effect/landmark/spawner/carp, /turf/space, @@ -29600,6 +29697,15 @@ /obj/structure/lattice/catwalk, /turf/space, /area/station/engineering/solar/auxstarboard) +"dcW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/turf/simulated/floor/plasteel, +/area/station/public/storage/tools) "dda" = ( /obj/machinery/chem_dispenser/soda{ dir = 4 @@ -30305,6 +30411,16 @@ "dgg" = ( /turf/simulated/floor/wood, /area/station/service/clown) +"dgl" = ( +/obj/machinery/door/airlock/mining/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/supply/mail_sorting, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "darkbrownfull" + }, +/area/station/supply/office) "dgr" = ( /obj/machinery/alarm{ dir = 4; @@ -31158,12 +31274,25 @@ /obj/structure/sign/pods, /turf/simulated/mineral/ancient, /area/station/maintenance/fore2) +"dlL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/station/public/locker) "dlT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/public/locker) +"dmb" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/station/public/locker) "dmd" = ( /obj/machinery/economy/vending/cigarette, /turf/simulated/floor/plasteel, @@ -31427,6 +31556,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/station/public/quantum/cargo) +"dob" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/public/quantum/cargo) "dod" = ( /obj/machinery/status_display{ layer = 4 @@ -32733,6 +32875,13 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/green, /area/station/service/library) +"dvt" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/station/security/main) "dvD" = ( /obj/structure/cable/orange{ d1 = 1; @@ -33875,6 +34024,19 @@ icon_state = "whiteblue" }, /area/station/medical/cloning) +"dBn" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/station/medical/medbay) "dBq" = ( /obj/machinery/power/apc{ dir = 1; @@ -34747,6 +34909,20 @@ icon_state = "darkblue" }, /area/station/command/bridge) +"dMd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/bananium, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/wood, +/area/station/service/clown) "dMk" = ( /obj/structure/cable{ d2 = 8; @@ -35563,6 +35739,23 @@ icon_state = "wood-broken" }, /area/station/maintenance/gambling_den) +"dXT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/classic/normal, +/obj/effect/mapping_helpers/airlock/windoor/autoname, +/obj/machinery/door/window/classic/normal{ + name = "Kitchen"; + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics, +/turf/simulated/floor/plasteel{ + icon_state = "neutralfull" + }, +/area/station/service/hydroponics) "dXV" = ( /turf/simulated/wall/r_wall, /area/station/hallway/primary/aft/east) @@ -35686,21 +35879,6 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/aft/west) -"ebQ" = ( -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/public/quantum/docking) "ebV" = ( /obj/structure/cable{ d1 = 1; @@ -35848,18 +36026,6 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/fore/east) -"eeO" = ( -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/effect/mapping_helpers/airlock/polarized{ - id = "Courtroom" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/firedoor, -/turf/simulated/floor/wood, -/area/station/legal/courtroom) "eeZ" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, @@ -35919,20 +36085,6 @@ icon_state = "dark" }, /area/station/public/fitness) -"ege" = ( -/obj/machinery/door/airlock/medical/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "whitebluefull" - }, -/area/station/medical/medbay) "egm" = ( /turf/simulated/wall/r_wall, /area/mine/unexplored/cere/medical) @@ -36279,6 +36431,28 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plating, /area/station/maintenance/fore2) +"enw" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/classic/normal{ + name = "Kitchen"; + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ + dir = 1 + }, +/obj/machinery/door/window/classic/normal, +/obj/effect/mapping_helpers/airlock/windoor/autoname, +/obj/machinery/door/firedoor, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics, +/turf/simulated/floor/plasteel{ + icon_state = "neutralfull" + }, +/area/station/service/hydroponics) "enx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -36631,24 +36805,6 @@ /obj/structure/closet/emcloset, /turf/simulated/floor/plating/asteroid/ancient, /area/station/maintenance/maintcentral) -"euH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id_tag = "kitchen1" - }, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "euP" = ( /obj/structure/railing, /turf/space, @@ -36789,20 +36945,6 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/fore/west) -"exB" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "kitchen2" - }, -/obj/machinery/door/window/classic/reversed, -/obj/effect/mapping_helpers/airlock/windoor/autoname, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "exK" = ( /turf/simulated/wall, /area/station/security/processing) @@ -36815,16 +36957,6 @@ /obj/item/wrench, /turf/simulated/floor/plating, /area/station/maintenance/disposal/east) -"eyo" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/armory, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/warden) "eyx" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, @@ -36950,21 +37082,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/fore2) -"eAR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id_tag = "bridge"; - layer = 2.6; - name = "Emergency Blast Door" - }, -/obj/machinery/door/airlock/command/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/command/bridge) "eAS" = ( /turf/simulated/floor/plating{ icon_state = "asteroidplating" @@ -37367,20 +37484,6 @@ slowdown = -0.3 }, /area/station/hallway/spacebridge/dockmed) -"eIn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/bananium, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/wood, -/area/station/service/clown) "eIs" = ( /obj/machinery/firealarm{ dir = 1; @@ -38332,31 +38435,6 @@ icon_state = "darkblue" }, /area/station/command/bridge) -"fcI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id_tag = "kitchen1" - }, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/obj/machinery/door/window/classic/normal{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "fcO" = ( /obj/machinery/light{ dir = 4 @@ -38561,16 +38639,6 @@ icon_state = "dark" }, /area/station/security/armory/secure) -"fho" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plating, -/area/station/public/vacant_office) "fhu" = ( /obj/structure/cable{ d1 = 1; @@ -38647,31 +38715,6 @@ /obj/structure/lattice, /turf/space, /area/space/nearstation) -"fjH" = ( -/obj/machinery/door/airlock/medical, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Biohazard_medi"; - name = "Quarantine Lockdown"; - opacity = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/medical/morgue) "fka" = ( /obj/structure/cable{ d1 = 2; @@ -40308,6 +40351,22 @@ /obj/structure/lattice/catwalk, /turf/space, /area/station/engineering/solar/auxstarboard) +"fRS" = ( +/obj/machinery/door/airlock/security/glass{ + security_level = 1 + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/permabrig) "fRZ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -40658,6 +40717,32 @@ icon_state = "darkpurplecorners" }, /area/station/science/robotics) +"fXS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + id_tag = "blueshieldofficedoor" + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/command/blueshield, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/wood, +/area/station/command/office/blueshield) "fYb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40911,6 +40996,18 @@ "gch" = ( /turf/simulated/wall, /area/station/command/office/ntrep) +"gck" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/effect/mapping_helpers/airlock/polarized{ + id = "Courtroom" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor, +/turf/simulated/floor/wood, +/area/station/legal/courtroom) "gcN" = ( /obj/machinery/hydroponics/constructable{ desc = "These are connected with an irrigation tube. You see a little pipe connecting the trays."; @@ -41793,23 +41890,6 @@ icon_state = "wood-broken" }, /area/station/maintenance/starboard) -"gvL" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/classic/normal, -/obj/effect/mapping_helpers/airlock/windoor/autoname, -/obj/machinery/door/window/classic/normal{ - name = "Kitchen"; - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics, -/turf/simulated/floor/plasteel{ - icon_state = "neutralfull" - }, -/area/station/service/hydroponics) "gvO" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/structure/cable{ @@ -42249,19 +42329,6 @@ icon_state = "escape" }, /area/station/hallway/primary/port/south) -"gCD" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/station/public/fitness) "gCG" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -42840,6 +42907,24 @@ icon_state = "dark" }, /area/station/security/armory/secure) +"gLY" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id_tag = "kitchen1" + }, +/obj/machinery/door/window/classic/normal{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/station/service/kitchen) "gMb" = ( /obj/effect/spawner/window/reinforced, /obj/structure/sign/securearea{ @@ -43951,6 +44036,19 @@ }, /turf/simulated/wall, /area/station/maintenance/maintcentral) +"hhc" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/station/public/fitness) "hhs" = ( /obj/structure/fence{ dir = 4 @@ -44461,21 +44559,6 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/station/science/storage) -"hrm" = ( -/obj/machinery/door/poddoor/preopen{ - id_tag = "bridge"; - layer = 2.6; - name = "Emergency Blast Door" - }, -/obj/machinery/door/airlock/command/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/command/bridge) "hrn" = ( /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ @@ -44595,15 +44678,6 @@ /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, /area/station/maintenance/apmaint) -"hte" = ( -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/station/public/storage/tools) "htf" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -44825,32 +44899,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/external/southwest) -"hwH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - id_tag = "blueshieldofficedoor" - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/command/blueshield, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/wood, -/area/station/command/office/blueshield) "hwM" = ( /obj/structure/girder, /obj/structure/grille, @@ -45336,6 +45384,21 @@ icon_state = "asteroidplating" }, /area/station/hallway/primary/fore/west) +"hGp" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/public/quantum/security) "hGq" = ( /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plating{ @@ -45718,22 +45781,6 @@ /obj/machinery/light, /turf/simulated/floor/wood, /area/station/maintenance/starboard) -"hMu" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/porta_turret{ - dir = 4 - }, -/obj/machinery/camera/motion{ - c_tag = "AI Core North"; - dir = 6; - start_active = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/ai) "hMY" = ( /obj/structure/closet/secure_closet/RD, /obj/item/cartridge/signal/toxins, @@ -46488,6 +46535,11 @@ }, /turf/simulated/floor/plating, /area/station/turret_protected/aisat/interior/secondary) +"hZp" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/turf/simulated/floor/plasteel, +/area/station/public/fitness) "hZq" = ( /obj/machinery/light_switch{ dir = 8; @@ -47225,20 +47277,6 @@ }, /turf/space, /area/space) -"ilS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "kitchen2" - }, -/obj/machinery/door/window/classic/normal, -/obj/effect/mapping_helpers/airlock/windoor/autoname, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "ilV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -49232,6 +49270,16 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/starboard) +"iTd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/medical/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/station/medical/medbay) "iTn" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -50132,6 +50180,18 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/storage) +"jhe" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/porta_turret/ai_turret, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/ai) "jhj" = ( /obj/structure/sink{ dir = 4; @@ -50488,6 +50548,18 @@ }, /turf/simulated/wall, /area/station/hallway/secondary/entry/north) +"jnZ" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "red" + }, +/area/station/security/main) "joj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ @@ -50557,6 +50629,30 @@ }, /turf/simulated/wall, /area/station/hallway/secondary/exit) +"jps" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id_tag = "atmodesk" + }, +/obj/machinery/door/window/classic/reversed{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/engineering/atmos{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkyellowfull" + }, +/area/station/engineering/atmos) "jpz" = ( /obj/machinery/light, /obj/structure/chair/comfy/corp{ @@ -51265,6 +51361,16 @@ icon_state = "asteroidplating" }, /area/station/maintenance/port) +"jAr" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/doors, +/obj/effect/mapping_helpers/airlock/polarized{ + id = "Courtroom" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/wood, +/area/station/legal/courtroom) "jAy" = ( /obj/machinery/door_control{ id = "researchlockdown"; @@ -51644,24 +51750,6 @@ icon_state = "whitepurple" }, /area/station/science/hallway) -"jFv" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id_tag = "kitchen1" - }, -/obj/machinery/door/window/classic/normal{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/station/service/kitchen) "jFG" = ( /obj/structure/closet/secure_closet/blueshield, /turf/simulated/floor/wood, @@ -52119,21 +52207,6 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/central) -"jMI" = ( -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/public/quantum/security) "jNk" = ( /obj/structure/sign/chinese{ pixel_x = -32; @@ -53297,16 +53370,6 @@ /obj/machinery/ai_status_display, /turf/simulated/mineral/ancient, /area/station/hallway/primary/starboard/north) -"khD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/airlock/medical/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "whitebluefull" - }, -/area/station/medical/medbay) "khM" = ( /obj/structure/cable{ d1 = 1; @@ -53600,25 +53663,6 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/port/east) -"klI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/classic/normal{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics{ - dir = 4 - }, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/turf/simulated/floor/plating, -/area/station/service/hydroponics) "klJ" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/spawner/random_spawners/dirt_frequent, @@ -53636,6 +53680,14 @@ }, /turf/simulated/floor/plating, /area/station/hallway/primary/fore/east) +"kmk" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/service/chapel) "kmp" = ( /obj/structure/cable/orange{ d1 = 4; @@ -54470,19 +54522,6 @@ "kzq" = ( /turf/simulated/floor/wood, /area/station/maintenance/asmaint) -"kzu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/medical/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "whitebluefull" - }, -/area/station/medical/medbay) "kzI" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -55149,6 +55188,21 @@ /obj/item/storage/fancy/cigarettes/cigpack_robustgold, /turf/simulated/floor/wood, /area/station/command/office/ntrep) +"kLh" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/station/service/theatre) "kLk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -55298,6 +55352,46 @@ icon_state = "neutralcorner" }, /area/station/hallway/spacebridge/sercom) +"kMC" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/research, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/science/tox, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplefull" + }, +/area/station/science/toxins/mixing) +"kMH" = ( +/obj/machinery/door/airlock/tranquillite, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/station/service/mime) "kMZ" = ( /obj/structure/cable/orange{ d1 = 2; @@ -58615,27 +58709,6 @@ icon_state = "whitegreen" }, /area/station/medical/virology) -"lOb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/poddoor/preopen{ - id_tag = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/airlock/engineering, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "darkyellowfull" - }, -/area/station/engineering/break_room) "lOc" = ( /obj/structure/disposalpipe/segment/corner, /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -59023,6 +59096,23 @@ icon_state = "white" }, /area/station/science/misc_lab) +"lTy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/porta_turret/ai_turret, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/ai) "lTH" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel, @@ -59121,21 +59211,6 @@ icon_state = "dark" }, /area/station/command/bridge) -"lVl" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "darkgreenfull" - }, -/area/station/service/hydroponics) "lVq" = ( /obj/structure/cable, /obj/structure/cable{ @@ -59146,6 +59221,25 @@ /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, /area/station/engineering/tech_storage) +"lVs" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id_tag = "kitchen2" + }, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/obj/machinery/door/window/classic/reversed, +/obj/effect/mapping_helpers/airlock/windoor/autoname, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "lVB" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -59518,6 +59612,27 @@ }, /turf/simulated/floor/plating, /area/station/hallway/primary/starboard/south) +"mbZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/poddoor/preopen{ + id_tag = "engineeringlockdown"; + layer = 2.6; + name = "Emergency Lockdown Blastdoor" + }, +/obj/machinery/door/airlock/engineering, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "darkyellowfull" + }, +/area/station/engineering/break_room) "mco" = ( /obj/machinery/conveyor/auto{ dir = 8 @@ -59724,6 +59839,20 @@ /obj/item/trash/candle, /turf/simulated/floor/wood, /area/station/maintenance/starboard) +"mgI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id_tag = "kitchen2" + }, +/obj/machinery/door/window/classic/normal, +/obj/effect/mapping_helpers/airlock/windoor/autoname, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "mgO" = ( /obj/machinery/door/poddoor/shutters{ dir = 8; @@ -60136,22 +60265,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/fore2) -"moU" = ( -/obj/machinery/door/airlock/security/glass{ - security_level = 1 - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/permabrig) "moY" = ( /obj/structure/closet/secure_closet/medical3, /obj/machinery/light, @@ -60570,6 +60683,18 @@ icon_state = "darkyellow" }, /area/station/engineering/break_room) +"mwF" = ( +/obj/machinery/porta_turret/ai_turret/disable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/aisat/interior/secondary) "mxd" = ( /obj/machinery/door/airlock/maintenance{ name = "Docking Asteroid SMES Access" @@ -60864,6 +60989,31 @@ }, /turf/simulated/floor/plating, /area/station/science/explab/chamber) +"mCe" = ( +/obj/machinery/door/airlock/medical, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "Biohazard_medi"; + name = "Quarantine Lockdown"; + opacity = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/medical/morgue) "mCg" = ( /obj/effect/spawner/random_spawners/fungus_maybe, /turf/simulated/wall/r_wall, @@ -61388,6 +61538,18 @@ /obj/structure/lattice/catwalk, /turf/space, /area/station/engineering/solar/starboard) +"mNc" = ( +/obj/machinery/door/airlock/research, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "darkpurplefull" + }, +/area/station/science/robotics) "mNd" = ( /obj/machinery/constructable_frame/machine_frame, /turf/simulated/floor/plating, @@ -61610,6 +61772,21 @@ slowdown = -0.3 }, /area/station/hallway/spacebridge/sercom) +"mQN" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/public/quantum/docking) "mQU" = ( /obj/structure/cable{ d1 = 1; @@ -62314,16 +62491,6 @@ icon_state = "dark" }, /area/station/maintenance/port2) -"nbN" = ( -/obj/machinery/door/airlock/mining/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/supply/mail_sorting, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "darkbrownfull" - }, -/area/station/supply/office) "nbT" = ( /obj/machinery/door/airlock/maintenance{ name = "Medical Asteroid Solars" @@ -62950,6 +63117,20 @@ icon_state = "asteroidplating" }, /area/station/maintenance/port) +"nlZ" = ( +/obj/machinery/porta_turret/ai_turret/disable, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/aisat/interior/secondary) "nmk" = ( /obj/structure/cable/orange{ d2 = 8; @@ -63159,19 +63340,6 @@ icon_state = "whiteblue" }, /area/station/medical/medbay) -"nqJ" = ( -/obj/machinery/door/airlock/security/glass{ - security_level = 1 - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/permabrig) "nqK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -64507,26 +64675,6 @@ /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel/white, /area/station/science/robotics) -"nNW" = ( -/obj/machinery/door/airlock/engineering, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/obj/machinery/door/firedoor, -/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{ - icon_state = "dark" - }, -/area/station/engineering/gravitygenerator) "nNY" = ( /obj/structure/railing/corner{ dir = 8 @@ -65449,20 +65597,6 @@ /obj/structure/closet/emcloset, /turf/simulated/floor/plating, /area/station/maintenance/disposal/east) -"ohm" = ( -/obj/machinery/door/airlock/command, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel/dark/telecomms, -/area/station/science/server) "ohr" = ( /turf/simulated/floor/plasteel{ dir = 8; @@ -66141,6 +66275,20 @@ icon_state = "escape" }, /area/station/hallway/secondary/entry) +"opm" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/porta_turret/ai_turret, +/obj/machinery/camera/motion{ + c_tag = "AI Core North"; + dir = 6; + start_active = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/ai) "opo" = ( /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry/south) @@ -66165,20 +66313,6 @@ /obj/effect/decal/cleanable/blood/gibs/old, /turf/simulated/floor/plasteel/freezer, /area/station/service/kitchen) -"opU" = ( -/obj/machinery/door/window/classic/reversed{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/command/general{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "rampbottom" - }, -/area/station/command/bridge) "oqc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -66188,15 +66322,6 @@ }, /turf/simulated/floor/carpet/black, /area/station/service/chapel) -"oqj" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/armory, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/warden) "oql" = ( /obj/structure/lattice, /obj/machinery/camera{ @@ -66706,21 +66831,6 @@ icon_state = "cafeteria" }, /area/station/service/kitchen) -"oAb" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/station/security/range) "oAs" = ( /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/freezer, @@ -66977,12 +67087,6 @@ }, /turf/simulated/floor/carpet, /area/station/medical/psych) -"oFx" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/carpet/arcade, -/area/station/public/arcade) "oFB" = ( /obj/machinery/power/solar_control{ name = "Medical Asteroid Solar Control" @@ -67103,21 +67207,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/starboardsolar) -"oId" = ( -/obj/machinery/door/airlock/command, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/carpet/black, -/area/station/command/office/captain) "oIu" = ( /obj/structure/cable{ d1 = 1; @@ -67372,6 +67461,22 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/port) +"oMr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "barber" + }, +/area/station/service/barber) "oMs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67985,6 +68090,16 @@ icon_state = "darkredcorners" }, /area/station/security/prison/cell_block/A) +"oVj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/station/public/vacant_office) "oVA" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -68163,16 +68278,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/starboard) -"oXJ" = ( -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/effect/mapping_helpers/airlock/polarized{ - id = "Courtroom" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/wood, -/area/station/legal/courtroom) "oXX" = ( /obj/structure/showcase{ density = 0; @@ -68267,6 +68372,15 @@ /obj/effect/turf_decal/delivery/white/hollow, /turf/simulated/floor/plasteel, /area/station/maintenance/electrical_shop) +"oZD" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/warden) "oZE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -68502,18 +68616,6 @@ icon_state = "dark" }, /area/station/service/library) -"pdI" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, -/obj/effect/mapping_helpers/airlock/access/any/science/minisat, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/turret_protected/aisat/interior) "ped" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ @@ -68845,6 +68947,16 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/port/east) +"pkp" = ( +/obj/machinery/door/airlock/security/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/security/warden) "pkt" = ( /obj/effect/spawner/window/shuttle, /turf/simulated/floor/plating, @@ -68906,28 +69018,6 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plating, /area/station/maintenance/starboard) -"pkS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/classic/normal{ - name = "Kitchen"; - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ - dir = 1 - }, -/obj/machinery/door/window/classic/normal, -/obj/effect/mapping_helpers/airlock/windoor/autoname, -/obj/machinery/door/firedoor, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics, -/turf/simulated/floor/plasteel{ - icon_state = "neutralfull" - }, -/area/station/service/hydroponics) "pli" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -70073,21 +70163,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/southwest) -"pEE" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/station/service/theatre) "pEH" = ( /obj/structure/girder, /turf/simulated/floor/plating/asteroid/ancient, @@ -70379,13 +70454,6 @@ }, /turf/simulated/floor/plasteel, /area/station/supply/qm) -"pJy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/station/public/locker) "pJG" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "BrigEast"; @@ -70715,6 +70783,21 @@ icon_state = "barber" }, /area/station/service/barber) +"pOl" = ( +/obj/machinery/door/poddoor/preopen{ + id_tag = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/command/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/command/bridge) "pOG" = ( /obj/structure/lattice/catwalk, /obj/structure/cable/orange{ @@ -70915,6 +70998,15 @@ icon_state = "dark" }, /area/station/engineering/atmos) +"pRF" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/station/public/storage/tools) "pRR" = ( /obj/structure/disposalpipe/segment, /obj/structure/girder, @@ -70951,15 +71043,6 @@ icon_state = "dark" }, /area/station/service/chapel/office) -"pSc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/multi_tile/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/carpet, -/area/station/service/bar) "pSr" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel, @@ -71335,13 +71418,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/north) -"pYj" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/station/security/main) "pYs" = ( /obj/structure/window{ dir = 4 @@ -71521,6 +71597,37 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plating, /area/station/hallway/primary/central) +"qba" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 2; + id_tag = "chemisttop"; + name = "Chemistry Lobby Shutters" + }, +/obj/machinery/door/window/classic/normal, +/obj/effect/mapping_helpers/airlock/windoor/autoname/desk, +/obj/item/folder/yellow, +/obj/machinery/door/window/classic/normal{ + name = "Chemistry Desk"; + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "Biohazard_medi"; + name = "Quarantine Lockdown"; + opacity = 0 + }, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/chemistry, +/turf/simulated/floor/plasteel, +/area/station/medical/chemistry) "qbb" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, @@ -71651,34 +71758,6 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/starboard/south) -"qcU" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/window/classic/normal{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/general{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{ - dir = 1 - }, -/obj/machinery/door/window/classic/normal{ - name = "Chemistry Desk" - }, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/chemistry, -/turf/simulated/floor/plasteel{ - icon_state = "white" - }, -/area/station/medical/chemistry) "qdf" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -71766,6 +71845,26 @@ }, /turf/simulated/wall, /area/station/hallway/primary/starboard/south) +"qeR" = ( +/obj/machinery/door/airlock/engineering, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/firedoor, +/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{ + icon_state = "dark" + }, +/area/station/engineering/gravitygenerator) "qeX" = ( /obj/item/reagent_containers/food/drinks/bottle/patron, /obj/structure/table/wood, @@ -73691,15 +73790,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/starboard) -"qIX" = ( -/obj/machinery/door/airlock/security{ - security_level = 1 - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/obj/effect/spawner/random_spawners/dirt_frequent, -/turf/simulated/floor/plating, -/area/station/security/range) "qJm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -74911,12 +75001,6 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/port/north) -"rhX" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/station/public/locker) "ril" = ( /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel, @@ -75119,37 +75203,6 @@ icon_state = "neutralcorner" }, /area/station/turret_protected/aisat/interior) -"rlO" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 2; - id_tag = "chemisttop"; - name = "Chemistry Lobby Shutters" - }, -/obj/machinery/door/window/classic/normal, -/obj/effect/mapping_helpers/airlock/windoor/autoname/desk, -/obj/item/folder/yellow, -/obj/machinery/door/window/classic/normal{ - name = "Chemistry Desk"; - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Biohazard_medi"; - name = "Quarantine Lockdown"; - opacity = 0 - }, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/chemistry, -/turf/simulated/floor/plasteel, -/area/station/medical/chemistry) "rlX" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ dir = 8; @@ -75793,15 +75846,6 @@ /obj/effect/spawner/window/reinforced/plasma/grilled, /turf/simulated/floor/plating, /area/station/turret_protected/aisat/interior/secondary) -"ryb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/turf/simulated/floor/plasteel, -/area/station/public/storage/tools) "ryn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -76265,22 +76309,6 @@ }, /turf/simulated/floor/wood, /area/station/service/theatre) -"rGj" = ( -/obj/machinery/door/airlock/mining, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/station/supply/miningdock) "rGm" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -76314,18 +76342,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/gambling_den) -"rGC" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "red" - }, -/area/station/security/main) "rGY" = ( /obj/item/radio/intercom{ pixel_x = -28; @@ -76536,18 +76552,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/fore2) -"rJS" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "kitchen2" - }, -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "rKr" = ( /obj/structure/table/wood, /turf/simulated/floor/plating, @@ -76566,6 +76570,31 @@ }, /turf/simulated/floor/plasteel, /area/station/security/lobby) +"rKE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id_tag = "kitchen1" + }, +/obj/item/desk_bell{ + pixel_x = 7; + pixel_y = 7; + anchored = 1 + }, +/obj/machinery/door/window/classic/normal{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "rLb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/alarm{ @@ -76995,16 +77024,6 @@ slowdown = -0.3 }, /area/station/hallway/spacebridge/servsci) -"rRy" = ( -/obj/machinery/door/airlock, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/janitor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/station/service/janitor) "rRD" = ( /obj/machinery/atmospherics/pipe/simple/visible/red, /turf/simulated/floor/plasteel{ @@ -77761,26 +77780,6 @@ icon_state = "bluecorner" }, /area/station/hallway/primary/starboard/south) -"sfc" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id_tag = "kitchen1" - }, -/obj/machinery/door/window/classic/reversed{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "sfi" = ( /obj/structure/chair{ dir = 8 @@ -78281,23 +78280,6 @@ icon_state = "cafeteria" }, /area/station/science/hallway) -"smx" = ( -/obj/machinery/door/airlock/tranquillite, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel{ - icon_regular_floor = "yellowsiding"; - icon_state = "tranquillite" - }, -/area/station/service/mime) "smz" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/closet/emcloset, @@ -78492,6 +78474,15 @@ icon_state = "dark" }, /area/station/engineering/control) +"srt" = ( +/obj/machinery/door/airlock/security{ + security_level = 1 + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/spawner/random_spawners/dirt_frequent, +/turf/simulated/floor/plating, +/area/station/security/range) "srw" = ( /obj/structure/closet/firecloset/full, /turf/simulated/floor/plating, @@ -79137,6 +79128,24 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/engine, /area/station/science/test_chamber) +"sAH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id_tag = "kitchen1" + }, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "sAI" = ( /obj/structure/sign/security{ pixel_x = 32 @@ -79486,21 +79495,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/external/east) -"sGS" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/door/airlock/medical/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/medical/paramedic, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "whitebluefull" - }, -/area/station/medical/paramedic) "sGY" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -79663,17 +79657,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/apmaint) -"sKT" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/service/chapel) "sLb" = ( /obj/machinery/navbeacon{ codes_txt = "delivery"; @@ -79850,6 +79833,18 @@ icon_state = "asteroidplating" }, /area/station/maintenance/port) +"sNy" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id_tag = "kitchen2" + }, +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "sNz" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -80025,6 +80020,20 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/station/science/rnd) +"sPL" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id_tag = "kitchen2" + }, +/obj/machinery/door/window/classic/reversed, +/obj/effect/mapping_helpers/airlock/windoor/autoname, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "sQc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -81237,20 +81246,6 @@ icon_state = "dark" }, /area/station/security/prison/cell_block/A) -"tkW" = ( -/obj/machinery/door/window/classic/normal{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/windoor/access/any/command/general{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "rampbottom" - }, -/area/station/command/bridge) "tla" = ( /obj/structure/lattice, /obj/item/storage/toolbox/electrical, @@ -81738,6 +81733,21 @@ icon_state = "dark" }, /area/station/security/execution) +"ttV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/medical/paramedic, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/station/medical/paramedic) "tug" = ( /obj/structure/cable{ d1 = 4; @@ -82801,6 +82811,15 @@ icon_state = "dark" }, /area/station/engineering/control) +"tPw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/simulated/floor/plasteel{ + icon_state = "darkgreenfull" + }, +/area/station/service/hydroponics) "tPV" = ( /obj/machinery/door/airlock{ name = "Bathroom" @@ -82897,6 +82916,20 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/external/southeast) +"tRV" = ( +/obj/machinery/door/airlock/medical/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/station/medical/medbay) "tSt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -83619,6 +83652,26 @@ "udk" = ( /turf/simulated/wall, /area/station/medical/patients_rooms) +"udq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id_tag = "kitchen1" + }, +/obj/machinery/door/window/classic/reversed{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/autoname{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/station/service/kitchen) "uep" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plating, @@ -84919,18 +84972,6 @@ icon_state = "rampbottom" }, /area/station/public/fitness) -"uzq" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/station/security/prisonlockers) "uzy" = ( /obj/structure/table, /turf/simulated/floor/plasteel, @@ -85481,14 +85522,6 @@ icon_state = "whitegreen" }, /area/station/medical/virology) -"uKh" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/service/chapel) "uKs" = ( /obj/machinery/computer/mech_bay_power_console{ dir = 4 @@ -85587,25 +85620,6 @@ icon_state = "bcircuit" }, /area/station/science/server/coldroom) -"uLV" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "kitchen2" - }, -/obj/item/desk_bell{ - pixel_x = 7; - pixel_y = 7; - anchored = 1 - }, -/obj/machinery/door/window/classic/reversed, -/obj/effect/mapping_helpers/airlock/windoor/autoname, -/obj/effect/mapping_helpers/airlock/windoor/access/any/service/kitchen, -/turf/simulated/floor/plasteel{ - icon_state = "cafeteria" - }, -/area/station/service/kitchen) "uMe" = ( /obj/effect/spawner/random_spawners/blood_maybe, /obj/item/toy/plushie/robo_corgi, @@ -86185,15 +86199,6 @@ icon_state = "whiteyellow" }, /area/station/science/robotics/chargebay) -"uTF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/turf/simulated/floor/plasteel{ - icon_state = "darkgreenfull" - }, -/area/station/service/hydroponics) "uTR" = ( /obj/machinery/door/airlock/command{ name = "Teleport Access" @@ -86398,21 +86403,6 @@ icon_state = "asteroidplating" }, /area/station/maintenance/port) -"uVT" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, -/obj/effect/mapping_helpers/airlock/access/any/science/minisat, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/turret_protected/aisat/interior) "uWc" = ( /obj/machinery/light/small{ dir = 8 @@ -87094,18 +87084,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/fore2) -"viW" = ( -/obj/machinery/door/airlock/research, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "darkpurplefull" - }, -/area/station/science/robotics) "viX" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, @@ -87625,6 +87603,19 @@ icon_state = "darkyellowfull" }, /area/station/public/quantum/docking) +"vqN" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "magistrateofficedoor" + }, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/command/magistrate, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/polarized{ + id = "Magistrate" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/wood, +/area/station/legal/magistrate) "vrf" = ( /obj/structure/cable/orange{ d1 = 4; @@ -87823,6 +87814,15 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/starboard/south) +"vtG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/multi_tile/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/turf/simulated/floor/carpet, +/area/station/service/bar) "vtO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -88216,6 +88216,17 @@ /obj/machinery/light, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry/south) +"vAx" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/service/chapel) "vBa" = ( /obj/structure/chair/sofa/pew/left{ dir = 8 @@ -88979,6 +88990,13 @@ }, /turf/simulated/floor/plasteel, /area/station/science/toxins/launch) +"vLi" = ( +/obj/machinery/door/airlock/mining, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/effect/spawner/random_spawners/dirt_frequent, +/turf/simulated/floor/plating, +/area/station/supply/miningdock) "vLm" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -89397,6 +89415,20 @@ slowdown = -0.3 }, /area/station/hallway/spacebridge/medcargo) +"vSg" = ( +/obj/machinery/door/airlock/command, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel/dark/telecomms, +/area/station/science/server) "vSk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/yellow{ dir = 6 @@ -92894,6 +92926,21 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/public/vacant_office) +"wSh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass, +/obj/effect/mapping_helpers/airlock/autoname, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkgreenfull" + }, +/area/station/service/hydroponics) "wSk" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/carpet, @@ -93110,16 +93157,6 @@ }, /turf/simulated/floor/engine, /area/station/science/test_chamber) -"wWf" = ( -/obj/machinery/porta_turret{ - dir = 4; - installation = /obj/item/gun/energy/gun; - name = "hallway turret" - }, -/turf/simulated/floor/plasteel{ - icon_state = "bcircuit" - }, -/area/station/turret_protected/aisat/interior/secondary) "wWm" = ( /obj/structure/cable{ d1 = 4; @@ -93508,19 +93545,6 @@ icon_state = "whiteyellow" }, /area/station/medical/reception) -"xbz" = ( -/obj/machinery/door/airlock/security/glass, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/station/security/prisonlockers) "xbJ" = ( /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/arrival/station) @@ -94271,29 +94295,6 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plating, /area/station/maintenance/maintcentral) -"xqh" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/research, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/science/tox, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "whitepurplefull" - }, -/area/station/science/toxins/mixing) "xqt" = ( /obj/structure/cable{ d1 = 4; @@ -94420,17 +94421,6 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/gambling_den) -"xsg" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "Brig" - }, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/all/security/doors, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/security/processing) "xsS" = ( /turf/simulated/floor/plasteel{ icon_state = "neutralfull" @@ -95647,22 +95637,6 @@ icon_state = "dark" }, /area/station/science/robotics) -"xNM" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/mapping_helpers/airlock/autoname, -/obj/effect/mapping_helpers/airlock/access/any/science/minisat, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/station/turret_protected/aisat/interior/secondary) "xNT" = ( /obj/structure/cable/orange{ d1 = 4; @@ -95875,6 +95849,12 @@ icon_state = "purple" }, /area/station/hallway/primary/aft/west) +"xRp" = ( +/obj/machinery/porta_turret/ai_turret, +/turf/simulated/floor/plasteel{ + icon_state = "bcircuit" + }, +/area/station/turret_protected/ai) "xRy" = ( /obj/machinery/atmospherics/binary/valve{ dir = 4 @@ -109237,7 +109217,7 @@ xhk xhk xhk cch -oXJ +jAr uTo yaN yaN @@ -109494,7 +109474,7 @@ dxE dxE dxE oPb -eeO +gck lyS jMr dyS @@ -110527,7 +110507,7 @@ qGR rKD yaN tsf -dbK +vqN sOm ude cKY @@ -111132,7 +111112,7 @@ oeN rNT wjk aXq -smx +kMH vnV adb ceV @@ -111790,7 +111770,7 @@ drz mCL xQS xQS -uzq +aqY xQS xQS aum @@ -111903,7 +111883,7 @@ mfk qdP ped oxo -eIn +dMd oRH odg wqN @@ -112057,7 +112037,7 @@ xrZ aAy pnf bdy -afg +bnx aFw pjD loa @@ -112451,7 +112431,7 @@ cpz wbT cxg oGS -xqh +kMC dCc xnA llN @@ -112667,7 +112647,7 @@ uZZ bVS glz uNH -uKh +kmk btg fNK jQF @@ -112710,7 +112690,7 @@ coy pOU ssD buE -ohm +vSg emA jvJ tlj @@ -112830,10 +112810,10 @@ vRQ dvH exK exK -xsg +aGL dUb uSW -xsg +aGL exK tYz nZi @@ -112924,7 +112904,7 @@ uUT tKJ pvH kSB -sKT +vAx kQX mLe xnH @@ -113137,7 +113117,7 @@ uSv ezi cMT lVP -pEE +kLh lVP cMT wFq @@ -113145,7 +113125,7 @@ mWM eiB bkU eMc -hte +pRF bkU vUJ bkU @@ -113153,7 +113133,7 @@ iLL bkU vUJ bkU -ryb +dcW bkU nQA uDy @@ -113845,7 +113825,7 @@ afd afd afd xQS -xbz +apf xQS xQS xQS @@ -114205,11 +114185,11 @@ ohY fAD btd lJR -uTF -lVl +tPw +wSh lJR -aUd -klI +bxQ +ang lJR uQa hVt @@ -114451,11 +114431,11 @@ jXC baF baF dBV -euH -jFv -sfc -fcI -sfc +sAH +gLY +udq +rKE +udq baF nYB tOx @@ -114650,7 +114630,7 @@ xla dru dMN pZt -jMI +hGp nla mmY hYD @@ -114875,7 +114855,7 @@ qpk duG hdv bkA -nqJ +asc pqs auG uii @@ -114947,7 +114927,7 @@ wSt boQ aap iiV -bUg +oMr lBA xhr uSS @@ -115132,7 +115112,7 @@ aPx vLd gBX drA -moU +fRS dsy shH cHH @@ -115653,7 +115633,7 @@ dtr uqz uqz rCG -pYj +dvt rCG uqz tNT @@ -115662,7 +115642,7 @@ tNT hcb qHa rJj -oqj +oZD lgu nto rJj @@ -116001,7 +115981,7 @@ idv mrt mrt mrt -pkS +enw prN biB biB @@ -116258,7 +116238,7 @@ eBQ mrt mrt mrt -gvL +dXT prN biB biB @@ -116935,7 +116915,7 @@ wvl yfX dnd cMx -rGC +jnZ duu aAI eFw @@ -116999,7 +116979,7 @@ ggt pQe hTf qNe -gCD +hhc xfm pkc iqL @@ -117020,7 +117000,7 @@ idC uIG bjr bjr -rJS +sNy mrt juY hpJ @@ -117277,7 +117257,7 @@ vaT qoN onO bjr -ilS +mgI mrt juY mrt @@ -117513,13 +117493,13 @@ cFF cFF cFF cFF -akG +hZp boJ tzW abq tHP sIP -pSc +vtG xWa cLl nMe @@ -117534,7 +117514,7 @@ nMe rAG bjr bjr -exB +sPL mrt juY mOA @@ -117791,7 +117771,7 @@ ukS jPM qQJ uGY -ilS +mgI pFC ptP lRt @@ -117835,7 +117815,7 @@ uQE jWb fAm sYa -viW +mNc fZs ovQ jTe @@ -117974,12 +117954,12 @@ bAl fEL iZY dti -eyo +pkp pIR fjm xzK aOI -oqj +oZD eWZ ddk aEn @@ -118048,7 +118028,7 @@ chb jLS gaf fqu -uLV +lVs mrt eBV lpZ @@ -118480,12 +118460,12 @@ evh azW azu uJY -oAb +baE hmc azu azu qQO -cpD +bKV mgO jnu qQO @@ -120794,7 +120774,7 @@ fqh swq swq swq -qIX +srt sLb swq uXj @@ -123388,7 +123368,7 @@ aqC xas tSt vpK -rRy +aWw gML hOn iAF @@ -124393,7 +124373,7 @@ tXQ tXQ tXQ bhy -oFx +boy buw bBB aKW @@ -124412,7 +124392,7 @@ cGn cPA cTD cGn -pJy +dlL hRA oTb mcK @@ -124926,7 +124906,7 @@ cLN cPI qSK qSK -rhX +dmb dtF dPq mcK @@ -127551,7 +127531,7 @@ kmt nxa bDR bFf -cwa +jps cQl cQl bKE @@ -128056,7 +128036,7 @@ hZy brW eob buP -lOb +mbZ bxu bDX bDX @@ -130050,7 +130030,7 @@ aEU aEU eTm bDy -opU +aIv bRp bYj tpA @@ -130570,7 +130550,7 @@ imn xLP hor chM -eAR +cpk chM cyO cBp @@ -130819,7 +130799,7 @@ aCg aCg bjh cLr -oId +bvr lnf lGj plu @@ -131084,7 +131064,7 @@ fxL xLP rMM chM -hrm +pOl chM vvZ txk @@ -131592,7 +131572,7 @@ uER hzs eTm aHm -tkW +bNj isr bYO tpA @@ -133668,7 +133648,7 @@ dmA dyC dWE gDe -hwH +fXS hab hXC iKW @@ -135826,7 +135806,7 @@ pQS cfG qlJ rAB -ebQ +mQN aIb ebV nDe @@ -139276,7 +139256,7 @@ vBu acO sYg adt -alJ +xRp peQ sYg sYg @@ -140054,7 +140034,7 @@ akr sYg ajS okP -wWf +aRj jzg oyx buv @@ -140307,7 +140287,7 @@ vTo vTo aiO vTo -aks +lTy sYg jEQ okP @@ -140316,7 +140296,7 @@ jzg oyx buv jzg -aqc +mwF jzg asE oyx @@ -140324,7 +140304,7 @@ okP kVY aCy gcR -uVT +aXd bcr bkj cXU @@ -140556,7 +140536,7 @@ aaf aaf vBu vBu -hMu +opm xxt kDE agQ @@ -140577,7 +140557,7 @@ aZL kTL btr atK -xNM +avr axP aDi aPA @@ -140821,7 +140801,7 @@ vTo vTo aiQ vTo -aku +jhe sYg dBu okP @@ -140830,7 +140810,7 @@ jzg oyx asE jzg -cMD +nlZ jzg buv oyx @@ -140838,7 +140818,7 @@ okP dgb aDl aPB -pdI +aXe bcG bkl cXB @@ -141082,7 +141062,7 @@ akv sYg ajS okP -wWf +aRj jzg oyx asE @@ -141686,7 +141666,7 @@ wZv rMf wZv wZv -sGS +ttV hfR eCB vXn @@ -141725,7 +141705,7 @@ gzv gzv gzv gzv -nNW +qeR gzv gzv gzv @@ -141846,7 +141826,7 @@ vBu qRI sYg adu -alJ +xRp sYg sYg sYg @@ -143225,7 +143205,7 @@ sBp bzK bBc xby -rlO +qba rfM wlV xTL @@ -144201,7 +144181,7 @@ cMV cSs cWZ dkH -aJF +dob dBI fmI oRs @@ -144310,7 +144290,7 @@ ljv dmP wRM vmb -fho +oVj mjG lqQ jPk @@ -145018,13 +144998,13 @@ whm wVF gxG uTX -ege +tRV qyk dqL vOe sfu bEC -qcU +aiY bDj bFH dBL @@ -147024,7 +147004,7 @@ cAb aRE aSj wnI -nbN +dgl cSC aov aov @@ -148102,7 +148082,7 @@ tWy qFq kpn uYZ -kzu +dBn nNN kpn kpn @@ -148359,7 +148339,7 @@ tKm uyp bFU vaY -khD +iTd vKQ ttB bFU @@ -149902,7 +149882,7 @@ oiL nZp biN biN -fjH +mCe biN biN biN @@ -151126,7 +151106,7 @@ uKL hWG nlE lEr -rGj +cbN uKL uKL any @@ -151642,7 +151622,7 @@ uoi aIB cbP mdl -dbh +vLi tKI cpC dgV diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index be2ad7f6b47..70019065609 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -168,9 +168,7 @@ /turf/simulated/floor/plasteel, /area/station/security/range) "acj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -1594,9 +1592,7 @@ }, /area/station/security/armory/secure) "ahU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -1605,9 +1601,7 @@ }, /area/station/security/armory/secure) "ahV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Armory_North"; location = "Armory_South" @@ -2155,9 +2149,7 @@ }, /area/station/security/brig) "ajn" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -12112,9 +12104,7 @@ dir = 1 }, /obj/machinery/atmospherics/portable/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aMC" = ( @@ -12127,9 +12117,7 @@ layer = 4; pixel_y = -32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aME" = ( @@ -13572,18 +13560,14 @@ /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aRd" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aRe" = ( /obj/structure/sign/vacuum/external{ pixel_y = -32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aRf" = ( @@ -13888,9 +13872,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aRU" = ( @@ -14715,9 +14697,7 @@ /area/station/maintenance/electrical) "aUk" = ( /obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aUl" = ( @@ -14740,9 +14720,7 @@ dir = 1 }, /obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "aUo" = ( @@ -15807,9 +15785,7 @@ name = "Chapel Mass Driver"; pixel_x = 25 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -16577,9 +16553,7 @@ }, /area/station/service/chapel) "aZm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -16723,9 +16697,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ icon_state = "darkbluecorners" }, @@ -18259,9 +18231,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, @@ -18329,9 +18299,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -18350,9 +18318,7 @@ d2 = 4; icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, @@ -18384,9 +18350,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -30740,30 +30704,22 @@ /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "bLZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "bMa" = ( /obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "bMb" = ( /obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "bMc" = ( /obj/machinery/hologram/holopad, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "bMd" = ( @@ -34717,9 +34673,7 @@ /turf/simulated/floor/plasteel, /area/station/supply/office) "bXl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, /area/station/command/teleporter) "bXm" = ( @@ -48535,9 +48489,7 @@ d2 = 4; icon_state = "0-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -48750,9 +48702,7 @@ dir = 4 }, /obj/machinery/atmospherics/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "cRh" = ( @@ -50117,9 +50067,7 @@ dir = 4 }, /obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "cVy" = ( @@ -50131,9 +50079,7 @@ /obj/structure/disaster_counter/supermatter{ pixel_y = -32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "cVB" = ( @@ -50728,9 +50674,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating, /area/station/engineering/secure_storage) "cXQ" = ( @@ -51426,9 +51370,7 @@ d2 = 8; icon_state = "0-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -52579,9 +52521,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -52610,9 +52550,7 @@ name = "south bump"; pixel_y = -24 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "deB" = ( @@ -52625,9 +52563,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "deD" = ( @@ -54656,9 +54592,7 @@ }, /area/station/turret_protected/aisat/interior) "dlu" = ( -/obj/machinery/porta_turret{ - dir = 1 - }, +/obj/machinery/porta_turret/ai_turret, /obj/structure/sign/securearea{ pixel_x = 32 }, @@ -55872,9 +55806,7 @@ /turf/simulated/wall, /area/station/aisat/hall) "dqq" = ( -/obj/machinery/porta_turret{ - dir = 4 - }, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -55888,9 +55820,7 @@ /turf/simulated/floor/plating, /area/station/aisat/hall) "dqx" = ( -/obj/machinery/porta_turret{ - dir = 1 - }, +/obj/machinery/porta_turret/ai_turret, /obj/item/radio/intercom/locked/ai_private{ broadcasting = 1; listening = 0; @@ -55914,18 +55844,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/simulated/floor/plating, /area/station/aisat/hall) -"dqE" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" - }, -/area/station/aisat/service) "dqL" = ( /obj/structure/lattice, /obj/machinery/camera{ @@ -55939,22 +55857,14 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/porta_turret{ - dir = 4; - installation = /obj/item/gun/energy/gun; - name = "hallway turret" - }, +/obj/machinery/porta_turret/ai_turret/disable, /turf/simulated/floor/bluegrid, /area/station/aisat/hall) "dqO" = ( /obj/machinery/light{ dir = 4 }, -/obj/machinery/porta_turret{ - dir = 8; - installation = /obj/item/gun/energy/gun; - name = "hallway turret" - }, +/obj/machinery/porta_turret/ai_turret/disable, /turf/simulated/floor/bluegrid, /area/station/aisat/hall) "dqQ" = ( @@ -56082,9 +55992,7 @@ /turf/simulated/floor/bluegrid, /area/station/turret_protected/ai) "drI" = ( -/obj/machinery/porta_turret{ - dir = 4 - }, +/obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/bluegrid, /area/station/turret_protected/ai) "drK" = ( @@ -56095,12 +56003,6 @@ icon_state = "dark" }, /area/station/turret_protected/ai) -"drM" = ( -/obj/machinery/porta_turret{ - dir = 8 - }, -/turf/simulated/floor/bluegrid, -/area/station/turret_protected/ai) "drN" = ( /turf/simulated/wall, /area/station/turret_protected/ai) @@ -56537,9 +56439,7 @@ d2 = 4; icon_state = "0-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating, /area/station/engineering/secure_storage) "dtt" = ( @@ -56556,9 +56456,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/landmark/spawner/nukedisc_respawn, /turf/simulated/floor/plating, /area/station/engineering/secure_storage) @@ -57562,9 +57460,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "darkred" @@ -58457,9 +58353,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 4 @@ -61685,9 +61579,7 @@ }, /area/station/public/toilet) "fXt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/binary/valve{ dir = 4; name = "Output to Waste" @@ -62059,9 +61951,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -65354,9 +65244,7 @@ /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "hRq" = ( @@ -65750,9 +65638,7 @@ dir = 8; filter_type = -1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "iek" = ( @@ -66904,9 +66790,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/electrical) "iOY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/camera{ c_tag = "Disposals"; dir = 1 @@ -69247,9 +69131,7 @@ /turf/simulated/floor/plating, /area/station/science/xenobiology) "khB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door_control{ id = "teleshutter"; name = "Teleporter Shutters Access Control"; @@ -70627,9 +70509,7 @@ /turf/simulated/floor/plasteel, /area/station/maintenance/assembly_line) "kSn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, /turf/simulated/floor/plasteel, @@ -71586,9 +71466,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/universal{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "lqu" = ( @@ -72331,6 +72209,16 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/port) +"lKI" = ( +/obj/machinery/porta_turret/ai_turret, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/station/aisat/service) "lKP" = ( /obj/structure/reflector/single{ anchored = 1; @@ -72643,9 +72531,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, @@ -73575,9 +73461,7 @@ }, /area/station/medical/virology) "muD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/disposal) @@ -74596,9 +74480,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 6 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/engine, /area/station/engineering/control) "mZf" = ( @@ -77291,9 +77173,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "oBf" = ( @@ -78201,9 +78081,7 @@ /turf/simulated/floor/plasteel, /area/station/engineering/atmos) "oYC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ name = "south bump"; @@ -81448,9 +81326,7 @@ /obj/machinery/atmospherics/unary/tank/air{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating, /area/station/maintenance/apmaint2) "qGT" = ( @@ -83445,9 +83321,7 @@ pixel_y = -24; req_access_txt = "10" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "rQp" = ( @@ -85794,9 +85668,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/asmaint) "tlR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -86677,9 +86549,7 @@ /turf/simulated/floor/engine, /area/station/science/misc_lab) "tMs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/spawner/random_spawners/blood_often, /obj/random/mech, /turf/simulated/floor/plating, @@ -88147,9 +88017,7 @@ "uBJ" = ( /obj/machinery/atmospherics/pipe/manifold/visible/red, /obj/machinery/atmospherics/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/engine, /area/station/engineering/control) "uBQ" = ( @@ -89512,9 +89380,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, @@ -91119,9 +90985,7 @@ /turf/simulated/floor/plasteel, /area/station/public/dorms) "why" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /turf/simulated/floor/plating, @@ -91169,9 +91033,7 @@ d2 = 2; icon_state = "0-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating, /area/station/security/permabrig) "wjQ" = ( @@ -94685,9 +94547,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, @@ -132483,10 +132343,10 @@ drf drf dry drO -drM +drI dry drE -drM +drI drO dry drf @@ -132980,7 +132840,7 @@ dpq dpA dkK dlo -dqE +lKI dqp dqA dqD diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 96206c5f551..9e475ab6e9e 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -75,6 +75,7 @@ #define LYING_MOB_LAYER 3.8 //#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define #define ABOVE_MOB_LAYER 4.1 +#define HITSCAN_LAYER 4.2 #define WALL_OBJ_LAYER 4.25 #define EDGED_TURF_LAYER 4.3 #define ON_EDGED_TURF_LAYER 4.35 diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 31d8c66207d..ce60b238e61 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -95,7 +95,7 @@ var/BT = get_turf(B) if(AT == BT) return 1 - var/list/line = getline(A, B) + var/list/line = get_line(A, B) for(var/turf/T in line) if(T == AT || T == BT) break diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 22cc060d2f2..b2400d0f7aa 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -173,43 +173,49 @@ Turf and target are seperate in case you want to teleport some distance from a t ///////////////////////////////////////////////////////////////////////// /** - * Gets the turfs which are between the two given atoms. Including their positions - * Only works for atoms on the same Z level which is not 0. So an atom located in a non turf won't work - * Arguments: - * * M - The source atom - * * N - The target atom + * Get a list of turfs in a line from `starting_atom` to `ending_atom`. + * + * Uses the ultra-fast [Bresenham Line-Drawing Algorithm](https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm). */ -/proc/getline(atom/M, atom/N)//Ultra-Fast Bresenham Line-Drawing Algorithm - if(!M.z || M.z != N.z) // Same Z level and not 0. Else all below breaks - return list() - var/px=M.x //starting x - var/py=M.y - var/line[] = list(locate(px,py,M.z)) - var/dx=N.x-px //x distance - var/dy=N.y-py - var/dxabs=abs(dx)//Absolute value of x distance - var/dyabs=abs(dy) - var/sdx=SIGN(dx) //Sign of x distance (+ or -) - var/sdy=SIGN(dy) - var/x=dxabs>>1 //Counters for steps taken, setting to distance/2 - var/y=dyabs>>1 //Bit-shifting makes me l33t. It also makes getline() unnessecarrily fast. - var/j //Generic integer for counting - if(dxabs>=dyabs) //x distance is greater than y - for(j=0;j=dxabs) //Every dyabs steps, step once in y direction - y-=dxabs - py+=sdy - px+=sdx //Step on in x direction - line+=locate(px,py,M.z)//Add the turf to the list +/proc/get_line(atom/starting_atom, atom/ending_atom) + var/current_x_step = starting_atom.x//start at x and y, then add 1 or -1 to these to get every turf from starting_atom to ending_atom + var/current_y_step = starting_atom.y + var/starting_z = starting_atom.z + + var/list/line = list(get_step(starting_atom, 0))//get_turf(atom) is faster than locate(x, y, z) //Get turf isn't defined yet so we use get step + + var/x_distance = ending_atom.x - current_x_step //x distance + var/y_distance = ending_atom.y - current_y_step + + var/abs_x_distance = abs(x_distance)//Absolute value of x distance + var/abs_y_distance = abs(y_distance) + + var/x_distance_sign = SIGN(x_distance) //Sign of x distance (+ or -) + var/y_distance_sign = SIGN(y_distance) + + var/x = abs_x_distance >> 1 //Counters for steps taken, setting to distance/2 + var/y = abs_y_distance >> 1 //Bit-shifting makes me l33t. It also makes get_line() unnessecarrily fast. + + if(abs_x_distance >= abs_y_distance) //x distance is greater than y + for(var/distance_counter in 0 to (abs_x_distance - 1))//It'll take abs_x_distance steps to get there + y += abs_y_distance + + if(y >= abs_x_distance) //Every abs_y_distance steps, step once in y direction + y -= abs_x_distance + current_y_step += y_distance_sign + + current_x_step += x_distance_sign //Step on in x direction + line += locate(current_x_step, current_y_step, starting_z)//Add the turf to the list else - for(j=0;j=dyabs) - x-=dyabs - px+=sdx - py+=sdy - line+=locate(px,py,M.z) + for(var/distance_counter in 0 to (abs_y_distance - 1)) + x += abs_x_distance + + if(x >= abs_y_distance) + x -= abs_y_distance + current_x_step += x_distance_sign + + current_y_step += y_distance_sign + line += locate(current_x_step, current_y_step, starting_z) return line //Same as the thing below just for density and without support for atoms. diff --git a/code/datums/spell_targeting/spell_targeting.dm b/code/datums/spell_targeting/spell_targeting.dm index ff656f493f9..37a379a8acb 100644 --- a/code/datums/spell_targeting/spell_targeting.dm +++ b/code/datums/spell_targeting/spell_targeting.dm @@ -96,7 +96,7 @@ //Checks for obstacles from A to B var/obj/dummy = new(source.loc) dummy.pass_flags |= PASSTABLE - for(var/turf/turf as anything in getline(source, target)) + for(var/turf/turf as anything in get_line(source, target)) for(var/atom/movable/AM in turf) if(!AM.CanPass(dummy, turf, 1)) qdel(dummy) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 24bf862a9da..37db37cd824 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -335,11 +335,11 @@ unlock_sound = 'sound/items/rped.ogg' /datum/AI_Module/upgrade_turrets/upgrade(mob/living/silicon/ai/AI) - for(var/obj/machinery/porta_turret/turret in GLOB.machines) + for(var/obj/machinery/porta_turret/ai_turret/turret in GLOB.machines) var/turf/T = get_turf(turret) if(is_station_level(T.z)) turret.health += 30 - turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. + turret.eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser //Once you see it, you will know what it means to FEAR. turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg' //Hostile Station Lockdown: Locks, bolts, and electrifies every airlock on the station. After 90 seconds, the doors reset. diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm index d3fcfe40ca6..07a7735affa 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm @@ -137,7 +137,7 @@ return FALSE playsound(T, 'sound/magic/lightningshock.ogg', 50, TRUE) O.Beam(target, icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 1 SECONDS) - for(var/turf/working in getline(O, T)) + for(var/turf/working in get_line(O, T)) for(var/mob/living/L in working) if(!electrocute_mob(L, C.powernet, user)) // give a little bit of non-lethal counterplay against insuls L.Jitter(5 SECONDS) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index e892a9cef44..6e913b03149 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -67,6 +67,10 @@ var/has_cover = TRUE //Hides the cover /// Deployment override to allow turret popup on/under dense turfs/objects, for admin/CC turrets var/deployment_override = FALSE + /// What lethal mode projectile with the turret start with? + var/initial_eprojectile = null + /// What non-lethal mode projectile with the turret start with? + var/initial_projectile = null /obj/machinery/porta_turret/Initialize(mapload) @@ -142,8 +146,12 @@ egun = 1 if(/obj/item/gun/energy/pulse/turret) - eprojectile = /obj/item/projectile/beam/pulse + eprojectile = /obj/item/projectile/beam/pulse/hitscan eshot_sound = 'sound/weapons/pulse.ogg' + if(initial_eprojectile) + eprojectile = initial_eprojectile + if(initial_projectile) + projectile = initial_projectile GLOBAL_LIST_EMPTY(turret_icons) /obj/machinery/porta_turret/update_icon_state() @@ -761,6 +769,13 @@ GLOBAL_LIST_EMPTY(turret_icons) A.throw_at(target, scan_range, 1) return A +/obj/machinery/porta_turret/ai_turret + initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret + +/obj/machinery/porta_turret/ai_turret/disable + name = "hallway turret" + initial_projectile = /obj/item/projectile/beam/disabler + /obj/machinery/porta_turret/centcom name = "\improper Centcomm turret" enabled = FALSE diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 5afaeadb9d8..675f127937d 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -156,17 +156,18 @@ icon_state = "mecha_pulse" energy_drain = 120 origin_tech = "materials=3;combat=6;powerstorage=4" - projectile = /obj/item/projectile/beam/pulse/heavy + projectile = /obj/item/projectile/beam/pulse/hitscan/heavy fire_sound = 'sound/weapons/marauder.ogg' harmful = TRUE -/obj/item/projectile/beam/pulse/heavy +/obj/item/projectile/beam/pulse/hitscan/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" var/life = 20 -/obj/item/projectile/beam/pulse/heavy/Bump(atom/A) + +/obj/item/projectile/beam/pulse/hitscan/heavy/Bump(atom/A) A.bullet_act(src, def_zone) life -= 10 if(ismob(A)) diff --git a/code/game/objects/effects/temporary_visuals/projectile/impact.dm b/code/game/objects/effects/temporary_visuals/projectile/impact.dm new file mode 100644 index 00000000000..b4ab549f620 --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/projectile/impact.dm @@ -0,0 +1,54 @@ +//These are directional impact effects used by hitscan projectiles. Unlike current impact effect, they rotate to face the point the hitscan beam came from. + +/obj/effect/projectile/impact + name = "beam impact" + icon = 'icons/obj/projectiles_impact.dmi' + +/obj/effect/projectile/impact/laser + name = "laser impact" + icon_state = "impact_laser" + +/obj/effect/projectile/impact/laser/blue + name = "laser impact" + icon_state = "impact_blue" + +/obj/effect/projectile/impact/disabler + name = "disabler impact" + icon_state = "impact_omni" + +/obj/effect/projectile/impact/xray + name = "\improper X-ray impact" + icon_state = "impact_xray" + +/obj/effect/projectile/impact/pulse + name = "pulse impact" + icon_state = "impact_u_laser" + +/obj/effect/projectile/impact/plasma_cutter + name = "plasma impact" + icon_state = "impact_plasmacutter" + +/obj/effect/projectile/impact/stun + name = "stun impact" + icon_state = "impact_stun" + +/obj/effect/projectile/impact/heavy_laser + name = "heavy laser impact" + icon_state = "impact_beam_heavy" + +/obj/effect/projectile/impact/wormhole + icon_state = "wormhole_g" + +/obj/effect/projectile/impact/laser/emitter + name = "emitter impact" + icon_state = "impact_emitter" + +/obj/effect/projectile/impact/solar + name = "solar impact" + icon_state = "impact_solar" + +/obj/effect/projectile/impact/sniper + icon_state = "sniper" + +/obj/effect/projectile/impact/death + icon_state = "impact_hcult" diff --git a/code/game/objects/effects/temporary_visuals/projectile/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectile/muzzle.dm new file mode 100644 index 00000000000..2a04276658e --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/projectile/muzzle.dm @@ -0,0 +1,48 @@ +//These are directional muzzle effects used by hitscan projectiles. Unlike current muzzle effect, they rotate to face the point the hitscan beam came from. + +/obj/effect/projectile/muzzle + name = "muzzle flash" + icon = 'icons/obj/projectiles_muzzle.dmi' + +/obj/effect/projectile/muzzle/laser + icon_state = "muzzle_laser" + +/obj/effect/projectile/muzzle/laser/blue + icon_state = "muzzle_blue" + +/obj/effect/projectile/muzzle/disabler + icon_state = "muzzle_omni" + +/obj/effect/projectile/muzzle/xray + icon_state = "muzzle_xray" + +/obj/effect/projectile/muzzle/pulse + icon_state = "muzzle_u_laser" + +/obj/effect/projectile/muzzle/plasma_cutter + icon_state = "muzzle_plasmacutter" + +/obj/effect/projectile/muzzle/stun + icon_state = "muzzle_stun" + +/obj/effect/projectile/muzzle/heavy_laser + icon_state = "muzzle_beam_heavy" + +/obj/effect/projectile/muzzle/wormhole + icon_state = "wormhole_g" + +/obj/effect/projectile/muzzle/laser/emitter + name = "emitter flash" + icon_state = "muzzle_emitter" + +/obj/effect/projectile/muzzle/solar + icon_state = "muzzle_solar" + +/obj/effect/projectile/muzzle/sniper + icon_state = "sniper" + +/obj/effect/projectile/muzzle/bullet + icon_state = "muzzle_bullet" + +/obj/effect/projectile/muzzle/death + icon_state = "muzzle_hcult" diff --git a/code/game/objects/effects/temporary_visuals/projectile/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectile/projectile_effects.dm new file mode 100644 index 00000000000..5ced8280dba --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/projectile/projectile_effects.dm @@ -0,0 +1,66 @@ +//This is the parent of all projectile effects, impact muzzle and tracer. + +/obj/effect/projectile + name = "pew" + icon = 'icons/obj/projectiles.dmi' + icon_state = "nothing" + layer = HITSCAN_LAYER + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + appearance_flags = LONG_GLIDE + +/obj/effect/projectile/singularity_pull() + return + +/obj/effect/projectile/singularity_act() + return + +/obj/effect/projectile/proc/scale_to(nx,ny,override=TRUE) + var/matrix/M + if(!override) + M = transform + else + M = new + M.Scale(nx, ny) + transform = M + +/obj/effect/projectile/proc/turn_to(angle,override=TRUE) + var/matrix/M + if(!override) + M = transform + else + M = new + M.Turn(angle) + transform = M + +/obj/effect/projectile/New(angle_override, p_x, p_y, color_override, scaling = 1) + if(angle_override && p_x && p_y && color_override && scaling) + apply_vars(angle_override, p_x, p_y, color_override, scaling) + return ..() + +/obj/effect/projectile/proc/apply_vars(angle_override, p_x = 0, p_y = 0, color_override, scaling = 1, new_loc, increment = 0) + var/mutable_appearance/look = new(src) + look.appearance_flags = RESET_COLOR | RESET_ALPHA + look.pixel_x = p_x + look.pixel_y = p_y + if(color_override) + look.color = color_override + look.appearance_flags = RESET_ALPHA + else + look.appearance_flags = RESET_COLOR | RESET_ALPHA + icon_state = null + add_overlay(look) + scale_to(1, scaling, FALSE) + turn_to(angle_override, FALSE) + if(!isnull(new_loc)) //If you want to null it just delete it... + forceMove(new_loc) + for(var/i in 1 to increment) + pixel_x += round((sin(angle_override) + 16 * sin(angle_override) * 2), 1) + pixel_y += round((cos(angle_override) + 16 * cos(angle_override) * 2), 1) + +/obj/effect/projectile_lighting + var/owner + +/obj/effect/projectile_lighting/Initialize(mapload, color, range, intensity, owner_key) + . = ..() + set_light(range, intensity, color) + owner = owner_key diff --git a/code/game/objects/effects/temporary_visuals/projectile/tracer.dm b/code/game/objects/effects/temporary_visuals/projectile/tracer.dm new file mode 100644 index 00000000000..079fbf6c6c2 --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/projectile/tracer.dm @@ -0,0 +1,99 @@ +//These are the visual tracers, the beams you see with hitscan effects. This is the proc that generates said tracer + +/proc/generate_tracer_between_points(datum/position/starting, datum/position/ending, beam_type, color, qdel_in = 5, light_range = 2, light_color_override, light_intensity = 1, instance_key) //Do not pass z-crossing points as that will not be properly (and likely will never be properly until it's absolutely needed) supported! + if(isnull(starting)) + return + if(isnull(ending)) + return + if(isnull(beam_type)) + return + var/datum/position/midpoint = point_midpoint_points(starting, ending) + var/performance_counter + for(var/obj/effect/projectile/tracer/counter in midpoint.return_turf()) + performance_counter++ + if(performance_counter >= 3) + return //Damage still happens, this should stop engineers with looping emitters doing shenanigins that makes the server cry + + var/obj/effect/projectile/tracer/PB = new beam_type + if(isnull(light_color_override)) + light_color_override = color + PB.apply_vars(angle_between_points(starting, ending), midpoint.return_px(), midpoint.return_py(), color, pixel_length_between_points(starting, ending) / world.icon_size, midpoint.return_turf(), 0) + . = PB + if(light_range > 0 && light_intensity > 0) + var/list/turf/line = get_line(starting.return_turf(), ending.return_turf()) + tracing_line: + for(var/i in line) + var/turf/T = i + for(var/obj/effect/projectile_lighting/PL in T) + if(PL.owner == locateUID(instance_key)) + continue tracing_line + QDEL_IN(new /obj/effect/projectile_lighting(T, light_color_override, light_range, light_intensity, instance_key), qdel_in > 0? qdel_in : 5) + line = null + if(qdel_in) + QDEL_IN(PB, qdel_in) + +/obj/effect/projectile/tracer + name = "beam" + icon = 'icons/obj/projectiles_tracer.dmi' + +/obj/effect/projectile/tracer/laser + name = "laser" + icon_state = "beam" + +/obj/effect/projectile/tracer/laser/blue + icon_state = "beam_blue" + +/obj/effect/projectile/tracer/disabler + name = "disabler" + icon_state = "beam_omni" + +/obj/effect/projectile/tracer/xray + name = "\improper X-ray laser" + icon_state = "xray" + +/obj/effect/projectile/tracer/pulse + name = "pulse laser" + icon_state = "u_laser" + +/obj/effect/projectile/tracer/plasma_cutter + name = "plasma blast" + icon_state = "plasmacutter" + +/obj/effect/projectile/tracer/stun + name = "stun beam" + icon_state = "stun" + +/obj/effect/projectile/tracer/heavy_laser + name = "heavy laser" + icon_state = "beam_heavy" + +/obj/effect/projectile/tracer/solar + name = "solar beam" + icon_state = "solar" + +/obj/effect/projectile/tracer/solar/thin + icon_state = "solar_thin" + +/obj/effect/projectile/tracer/solar/thinnest + icon_state = "solar_thinnest" + +//BEAM RIFLE +/obj/effect/projectile/tracer/tracer/beam_rifle + icon_state = "tracer_beam" + +/obj/effect/projectile/tracer/tracer/aiming + icon_state = "pixelbeam_greyscale" + plane = ABOVE_LIGHTING_PLANE + +/obj/effect/projectile/tracer/wormhole + icon_state = "wormhole_g" + +/obj/effect/projectile/tracer/laser/emitter + name = "emitter beam" + icon_state = "emitter" + +/obj/effect/projectile/tracer/sniper + icon_state = "sniper" + +/obj/effect/projectile/tracer/death + icon_state = "hcult" diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 6dd9c5813f2..ac626199b33 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -89,7 +89,7 @@ if(user.get_active_hand() == src) // Make sure our user is still holding us var/turf/target_turf = get_turf(target) if(target_turf) - var/turflist = getline(user, target_turf) + var/turflist = get_line(user, target_turf) add_attack_logs(user, target, "Flamethrowered at [target.x],[target.y],[target.z]") flame_turf(turflist) diff --git a/code/game/turfs/simulated/floor/chasm.dm b/code/game/turfs/simulated/floor/chasm.dm index 8b73f6610cc..c4c6928ab72 100644 --- a/code/game/turfs/simulated/floor/chasm.dm +++ b/code/game/turfs/simulated/floor/chasm.dm @@ -30,6 +30,8 @@ /obj/effect/spawner, /obj/structure/railing, /obj/machinery/atmospherics/pipe/simple, + /obj/effect/projectile, + /obj/effect/projectile_lighting, /mob/living/simple_animal/hostile/megafauna //failsafe )) var/drop_x = 1 diff --git a/code/modules/antagonists/vampire/vampire_powers/hemomancer_powers.dm b/code/modules/antagonists/vampire/vampire_powers/hemomancer_powers.dm index 9bde4fb3a18..4051c4c039f 100644 --- a/code/modules/antagonists/vampire/vampire_powers/hemomancer_powers.dm +++ b/code/modules/antagonists/vampire/vampire_powers/hemomancer_powers.dm @@ -195,7 +195,7 @@ should_recharge_after_cast = TRUE return var/wall_count - for(var/turf/T in getline(target_turf, start_turf)) + for(var/turf/T in get_line(target_turf, start_turf)) if(max_walls <= wall_count) break new /obj/structure/blood_barrier(T) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index f461f00e5f5..b61d7eabd93 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -368,7 +368,7 @@ alert_admins_on_craft = TRUE /datum/crafting_recipe/pulseslug - name = "Pulse Slug Shell" + name = "Proto Pulse Slug Shell" result = list(/obj/item/ammo_casing/shotgun/pulseslug) reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /obj/item/stock_parts/capacitor/adv = 2, diff --git a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm index e3fcbc1080a..1da49658b65 100644 --- a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm +++ b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm @@ -305,7 +305,7 @@ if(STAGE_ATTACK) if(!eating) - for(var/I in getline(src, get_turf(H))) + for(var/I in get_line(src, get_turf(H))) var/turf/T = I for(var/obj/structure/O in T) if(istype(O, /obj/structure/closet)) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 54685786b5f..e57f21ab13e 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -370,7 +370,7 @@ /mob/living/simple_animal/hostile/proc/CheckFriendlyFire(atom/A) if(check_friendly_fire) - for(var/turf/T in getline(src,A)) // Not 100% reliable but this is faster than simulating actual trajectory + for(var/turf/T in get_line(src,A)) // Not 100% reliable but this is faster than simulating actual trajectory for(var/mob/living/L in T) if(L == src || L == A) continue diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 903fec945d9..3515e72c788 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -239,7 +239,7 @@ Difficulty: Medium turf_dist_to_target += get_dist(dash_target, O) if(get_dist(src, O) >= MINER_DASH_RANGE && turf_dist_to_target <= self_dist_to_target && !islava(O) && !ischasm(O)) var/valid = TRUE - for(var/turf/T in getline(own_turf, O)) + for(var/turf/T in get_line(own_turf, O)) if(is_blocked_turf(T, TRUE)) valid = FALSE continue diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 13f26c9e8da..a848cad5d24 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -267,7 +267,7 @@ Difficulty: Medium if(!check) break T = check - return (getline(src, T) - get_turf(src)) + return (get_line(src, T) - get_turf(src)) /mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_line(list/turfs) SLEEP_CHECK_DEATH(0) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index e64b128c812..e31d3b1e61a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -168,7 +168,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/legion/proc/fire_disintegration_laser(location) playsound(loc, 'sound/weapons/marauder.ogg', 200, TRUE) Beam(location, icon_state = "death_laser", time = 2 SECONDS, maxdistance = INFINITY, beam_type = /obj/effect/ebeam/disintegration) - for(var/turf/t in getline(src, location)) + for(var/turf/t in get_line(src, location)) if(ismineralturf(t)) var/turf/simulated/mineral/M = t M.gets_drilled(src) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm index ac8f0cb7531..38e012c6fc8 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm @@ -23,7 +23,7 @@ health = 200 maxHealth = 200 speed = 8 - projectiletype = /obj/item/projectile/beam/immolator/weak + projectiletype = /obj/item/projectile/beam/immolator/weak/hitscan projectilesound = 'sound/weapons/laser3.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 9c8e33e5a94..764244207c3 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -94,7 +94,7 @@ for(var/mob/living/L in view(grasp_range, src)) if(L == src || faction_check_mob(L) || (L in grasping) || L == target) continue - for(var/t in getline(src,L)) + for(var/t in get_line(src,L)) for(var/a in t) var/atom/A = a if(A.density && A != L) @@ -107,7 +107,7 @@ /mob/living/simple_animal/hostile/venus_human_trap/OpenFire(atom/the_target) - for(var/turf/T in getline(src,target)) + for(var/turf/T in get_line(src,target)) if (T.density) return for(var/obj/O in T) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 206c93a1fbe..84f98dc5701 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -282,7 +282,7 @@ L.forceMove(locate(locx,locy,mobloc.z)) spawn(0) var/limit = 2//For only two trailing shadows. - for(var/turf/T in getline(mobloc, L.loc)) + for(var/turf/T in get_line(mobloc, L.loc)) new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) limit-- if(limit<=0) diff --git a/code/modules/power/engines/singularity/emitter.dm b/code/modules/power/engines/singularity/emitter.dm index eea4120f2b9..f3a35d0d969 100644 --- a/code/modules/power/engines/singularity/emitter.dm +++ b/code/modules/power/engines/singularity/emitter.dm @@ -34,7 +34,7 @@ /// Locked by an ID card var/locked = FALSE - var/projectile_type = /obj/item/projectile/beam/emitter + var/projectile_type = /obj/item/projectile/beam/emitter/hitscan var/projectile_sound = 'sound/weapons/emitter.ogg' var/datum/effect_system/spark_spread/sparks diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 1875458d1c0..4c29c02f3d4 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -209,7 +209,7 @@ projectile_type = /obj/item/projectile/bullet/meteorshot /obj/item/ammo_casing/shotgun/pulseslug - name = "pulse slug" + name = "proto pulse slug" desc = "A delicate device which can be loaded into a shotgun. The primer acts as a button which triggers the gain medium and fires a powerful \ energy blast. While the heat and power drain limit it to one use, it can still allow an operator to engage targets that ballistic ammunition \ would have difficulty with." diff --git a/code/modules/projectiles/ammunition/energy_lens.dm b/code/modules/projectiles/ammunition/energy_lens.dm index 93f700959ae..2e1e28853aa 100644 --- a/code/modules/projectiles/ammunition/energy_lens.dm +++ b/code/modules/projectiles/ammunition/energy_lens.dm @@ -42,14 +42,14 @@ fire_sound = 'sound/weapons/lasercannonfire.ogg' /obj/item/ammo_casing/energy/laser/pulse - projectile_type = /obj/item/projectile/beam/pulse + projectile_type = /obj/item/projectile/beam/pulse/hitscan muzzle_flash_color = LIGHT_COLOR_DARKBLUE e_cost = 200 select_name = "DESTROY" fire_sound = 'sound/weapons/pulse.ogg' /obj/item/ammo_casing/energy/laser/scatter/pulse - projectile_type = /obj/item/projectile/beam/pulse + projectile_type = /obj/item/projectile/beam/pulse/hitscan e_cost = 200 select_name = "ANNIHILATE" fire_sound = 'sound/weapons/pulse.ogg' @@ -286,7 +286,7 @@ select_name = "clown" /obj/item/ammo_casing/energy/emitter - projectile_type = /obj/item/projectile/beam/emitter + projectile_type = /obj/item/projectile/beam/emitter/hitscan muzzle_flash_color = LIGHT_COLOR_GREEN fire_sound = 'sound/weapons/emitter.ogg' e_cost = 100 diff --git a/code/modules/projectiles/guns/energy/special_eguns.dm b/code/modules/projectiles/guns/energy/special_eguns.dm index de148915581..b43f8efb62d 100644 --- a/code/modules/projectiles/guns/energy/special_eguns.dm +++ b/code/modules/projectiles/guns/energy/special_eguns.dm @@ -417,42 +417,11 @@ reset_overloaded() do_sparks(2, 1, src) update_icon() - if(prob(25)) - visible_message("[src] vents heated plasma!") - var/turf/simulated/T = get_turf(src) - if(istype(T)) - T.atmos_spawn_air(LINDA_SPAWN_TOXINS|LINDA_SPAWN_20C,15) - return - if(prob(50)) - var/list/mob_targets = list() - for(var/mob/living/M in oview(get_turf(src), 7)) - mob_targets += M - if(length(mob_targets)) - var/mob/living/target = pick(mob_targets) - shootAt(target) - visible_message("[src] discharges a plasma bolt!") - return + visible_message("[src] vents heated plasma!") + var/turf/simulated/T = get_turf(src) + if(istype(T)) + T.atmos_spawn_air(LINDA_SPAWN_HEAT | LINDA_SPAWN_TOXINS|LINDA_SPAWN_20C, 20) - visible_message("[src] discharges a plasma bolt!") - var/list/turf_targets = list() - for(var/turf/T in orange(get_turf(src), 7)) - turf_targets += T - if(length(turf_targets)) - var/turf/target = pick(turf_targets) - shootAt(target) - - -/obj/item/gun/energy/plasma_pistol/proc/shootAt(atom/movable/target) - var/turf/T = get_turf(src) - var/turf/U = get_turf(target) - if(!T || !U) - return - var/obj/item/projectile/energy/charged_plasma/O = new /obj/item/projectile/energy/charged_plasma(T) - playsound(get_turf(src), 'sound/weapons/marauder.ogg', 75, 1) - O.current = T - O.yo = U.y - T.y - O.xo = U.x - T.x - O.fire() /obj/item/gun/energy/bsg name = "\improper B.S.G" diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index 94af166ade4..a61932cafdf 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -88,7 +88,7 @@ return FALSE var/obj/dummy = new(user_turf) dummy.pass_flags |= PASSTABLE | PASSGLASS | PASSGRILLE | PASSFENCE //Grille/Glass so it can be used through common windows - for(var/turf/turf in getline(user_turf,target)) + for(var/turf/turf in get_line(user_turf,target)) if(turf.density) qdel(dummy) return FALSE diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 5328cd1d8a3..86464da459a 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -33,6 +33,39 @@ icon_state = "heavylaser" damage = 40 +/obj/item/projectile/beam/laser/ai_turret + damage = 17.5 //Slight loss in damage because hitscan + forcedodge = 1 + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/laser + tracer_type = /obj/effect/projectile/tracer/laser + impact_type = /obj/effect/projectile/impact/laser + impact_effect_type = null + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_DARKRED + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_DARKRED + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_DARKRED + +/obj/item/projectile/beam/laser/ai_turret/prehit(atom/target) + if(isAI(target)) + damage = 0 //cheater cheater I don't want AI to die to stupid placement eater + nodamage = 1 + if(isliving(target)) + forcedodge = 0 //no peircing after hitting a mob to avoid rooms destroying itself. If someone does monkey chair on AI sat though, I swear to god + ..() + +/obj/item/projectile/beam/laser/ai_turret/heavylaser + damage = 35 + muzzle_type = /obj/effect/projectile/muzzle/heavy_laser + tracer_type = /obj/effect/projectile/tracer/heavy_laser + impact_type = /obj/effect/projectile/impact/heavy_laser + + /obj/item/projectile/beam/practice name = "practice laser" damage = 0 @@ -73,12 +106,31 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_DARKBLUE +/obj/item/projectile/beam/pulse/hitscan + impact_effect_type = null + light_color = null + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/pulse + tracer_type = /obj/effect/projectile/tracer/pulse + impact_type = /obj/effect/projectile/impact/pulse + impact_effect_type = null + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_DARKBLUE + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_DARKBLUE + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_DARKBLUE + /obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = 0) if(isturf(target) || isstructure(target) || ismachinery(target)) target.ex_act(2) ..() /obj/item/projectile/beam/pulse/shot + name = "proto pulse" damage = 40 /obj/item/projectile/beam/emitter @@ -88,6 +140,22 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN +/obj/item/projectile/beam/emitter/hitscan + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/laser/emitter + tracer_type = /obj/effect/projectile/tracer/laser/emitter + impact_type = /obj/effect/projectile/impact/laser/emitter + impact_effect_type = null + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_GREEN + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_GREEN + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_GREEN + /obj/item/projectile/beam/emitter/singularity_pull() return //don't want the emitters to miss @@ -141,6 +209,23 @@ damage = 8 icon_state = "scatterlaser" +/obj/item/projectile/beam/immolator/weak/hitscan + color = LIGHT_COLOR_FIRE + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/laser + tracer_type = /obj/effect/projectile/tracer/laser + impact_type = /obj/effect/projectile/impact/laser + impact_effect_type = null + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_FIRE + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_FIRE + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_FIRE + /obj/item/projectile/beam/immolator/on_hit(atom/target, blocked = 0) . = ..() if(isliving(target)) diff --git a/code/modules/projectiles/projectile/magic_projectiles.dm b/code/modules/projectiles/projectile/magic_projectiles.dm index 127f8a10fd4..ae210e6a014 100644 --- a/code/modules/projectiles/projectile/magic_projectiles.dm +++ b/code/modules/projectiles/projectile/magic_projectiles.dm @@ -9,7 +9,20 @@ /obj/item/projectile/magic/death name = "bolt of death" - icon_state = "pulse1_bl" + icon_state = null + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/death + tracer_type = /obj/effect/projectile/tracer/death + impact_type = /obj/effect/projectile/impact/death + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_PURPLE + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_PURPLE + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_PURPLE /obj/item/projectile/magic/fireball name = "bolt of fireball" diff --git a/code/modules/projectiles/projectile/special_projectiles.dm b/code/modules/projectiles/projectile/special_projectiles.dm index a2b5d607a6f..fe9be67164c 100644 --- a/code/modules/projectiles/projectile/special_projectiles.dm +++ b/code/modules/projectiles/projectile/special_projectiles.dm @@ -240,7 +240,20 @@ range = 3 dismemberment = 20 sharp = TRUE - impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser + hitscan = TRUE + muzzle_type = /obj/effect/projectile/muzzle/plasma_cutter + tracer_type = /obj/effect/projectile/tracer/plasma_cutter + impact_type = /obj/effect/projectile/impact/plasma_cutter + impact_effect_type = null + hitscan_light_intensity = 3 + hitscan_light_range = 0.75 + hitscan_light_color_override = LIGHT_COLOR_CYAN + muzzle_flash_intensity = 6 + muzzle_flash_range = 2 + muzzle_flash_color_override = LIGHT_COLOR_CYAN + impact_light_intensity = 7 + impact_light_range = 2.5 + impact_light_color_override = LIGHT_COLOR_CYAN /obj/item/projectile/plasma/prehit(atom/target) . = ..() diff --git a/code/modules/projectiles/projectile_base.dm b/code/modules/projectiles/projectile_base.dm index ac0d0e905e2..ddbe7edc5ef 100644 --- a/code/modules/projectiles/projectile_base.dm +++ b/code/modules/projectiles/projectile_base.dm @@ -1,3 +1,8 @@ +/// Is this a hitscan projectile or not, if so move like one +#define MOVES_HITSCAN -1 +/// How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers. +#define MUZZLE_EFFECT_PIXEL_INCREMENT 17 + /obj/item/projectile name = "projectile" icon = 'icons/obj/projectiles.dmi' @@ -26,6 +31,7 @@ var/p_y = 16 // the pixel location of the tile that the player clicked. Default is the center var/speed = 1 //Amount of deciseconds it takes for projectile to travel var/Angle = null + var/original_angle = null //Angle at firing var/spread = 0 //amount (in degrees) of projectile spread animate_movement = 0 @@ -80,6 +86,32 @@ var/shield_buster = FALSE var/forced_accuracy = FALSE + ///Has the projectile been fired? + var/has_been_fired = FALSE + + //Hitscan + var/hitscan = FALSE //Whether this is hitscan. If it is, speed is basically ignored. + var/list/beam_segments //assoc list of datum/point_precise or datum/point_precise/vector, start = end. Used for hitscan effect generation. + /// Last turf an angle was changed in for hitscan projectiles. + var/turf/last_angle_set_hitscan_store + var/datum/point_precise/beam_index + var/turf/hitscan_last //last turf touched during hitscanning. + var/tracer_type + var/muzzle_type + var/impact_type + + //Fancy hitscan lighting effects! + var/hitscan_light_intensity = 1.5 + var/hitscan_light_range = 0.75 + var/hitscan_light_color_override + var/muzzle_flash_intensity = 3 + var/muzzle_flash_range = 1.5 + var/muzzle_flash_color_override + var/impact_light_intensity = 3 + var/impact_light_range = 2 + var/impact_light_color_override + var/hitscan_duration = 0.3 SECONDS + /obj/item/projectile/New() return ..() @@ -112,7 +144,7 @@ hity = target.pixel_y + rand(-8, 8) if(!nodamage && (damage_type == BRUTE || damage_type == BURN) && iswallturf(target_loca) && prob(75)) var/turf/simulated/wall/W = target_loca - if(impact_effect_type) + if(impact_effect_type && !hitscan) new impact_effect_type(target_loca, hitx, hity) W.add_dent(WALL_DENT_SHOT, hitx, hity) @@ -120,7 +152,7 @@ if(alwayslog) add_attack_logs(firer, target, "Shot with a [type]") if(!isliving(target)) - if(impact_effect_type) + if(impact_effect_type && !hitscan) new impact_effect_type(target_loca, hitx, hity) return 0 var/mob/living/L = target @@ -152,7 +184,7 @@ M.bloody_hands(H) /* Uncomment when bloody_body stops randomly not transferring blood colour. M.bloody_body(H) */ - else if(impact_effect_type) + else if(impact_effect_type && !hitscan) new impact_effect_type(target_loca, hitx, hity) var/organ_hit_text = "" if(L.has_limbs) @@ -199,11 +231,18 @@ else return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume +/obj/item/projectile/proc/store_hitscan_collision(datum/point_precise/point_cache) + beam_segments[beam_index] = point_cache + beam_index = point_cache + beam_segments[beam_index] = null + /obj/item/projectile/Bump(atom/A, yes) if(!yes) //prevents double bumps. return if(check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max && is_reflectable(REFLECTABILITY_PHYSICAL)) + if(hitscan && ricochets_max > 10) + ricochets_max = 10 //I do not want a chucklefuck editing this higher, sorry. ricochets++ if(A.handle_ricochet(src)) on_ricochet(A) @@ -265,7 +304,9 @@ return var/elapsed_time_deciseconds = (world.time - last_projectile_move) + time_offset time_offset = 0 - var/required_moves = FLOOR(elapsed_time_deciseconds / speed, 1) + var/required_moves = hitscan ? MOVES_HITSCAN : FLOOR(elapsed_time_deciseconds / speed, 1) + if(required_moves == MOVES_HITSCAN) + required_moves = SSprojectiles.global_max_tick_moves if(required_moves > SSprojectiles.global_max_tick_moves) var/overrun = required_moves - SSprojectiles.global_max_tick_moves required_moves = SSprojectiles.global_max_tick_moves @@ -275,14 +316,15 @@ for(var/i in 1 to required_moves) pixel_move(1) -/obj/item/projectile/proc/pixel_move(trajectory_multiplier) +/obj/item/projectile/proc/pixel_move(trajectory_multiplier, hitscanning = FALSE) if(!loc || !trajectory) return last_projectile_move = world.time // Keep on course - var/matrix/M = new - M.Turn(Angle) - transform = M + if(!hitscanning) + var/matrix/M = new + M.Turn(Angle) + transform = M // Iterate var/forcemoved = FALSE for(var/i in 1 to SSprojectiles.global_iterations_per_move) @@ -297,17 +339,20 @@ trajectory_ignore_forcemove = TRUE forceMove(T) trajectory_ignore_forcemove = FALSE - pixel_x = trajectory.return_px() - pixel_y = trajectory.return_py() + if(!hitscanning) + pixel_x = trajectory.return_px() + pixel_y = trajectory.return_py() forcemoved = TRUE + hitscan_last = loc else if(T != loc) step_towards(src, T) + hitscan_last = loc if(original && (original.layer >= PROJECTILE_HIT_THRESHHOLD_LAYER || ismob(original))) if(loc == get_turf(original) && !(original in permutated)) Bump(original, TRUE) if(QDELETED(src)) //deleted on last move return - if(!forcemoved) + if(!hitscanning && !forcemoved) pixel_x = trajectory.return_px() - trajectory.mpx * trajectory_multiplier * SSprojectiles.global_iterations_per_move pixel_y = trajectory.return_py() - trajectory.mpy * trajectory_multiplier * SSprojectiles.global_iterations_per_move animate(src, pixel_x = trajectory.return_px(), pixel_y = trajectory.return_py(), time = 1, flags = ANIMATION_END_NOW) @@ -320,6 +365,7 @@ current = locate(clamp(x + xo, 1, world.maxx), clamp(y + yo, 1, world.maxy), z) if(isnull(Angle)) Angle = round(get_angle(src, current)) + original_angle = Angle if(spread) Angle += (rand() - 0.5) * spread // Turn right away @@ -329,6 +375,9 @@ // Start flying trajectory = new(x, y, z, pixel_x, pixel_y, Angle, SSprojectiles.global_pixel_speed) last_projectile_move = world.time + has_been_fired = TRUE + if(hitscan) + process_hitscan() START_PROCESSING(SSprojectiles, src) pixel_move(1, FALSE) @@ -358,6 +407,8 @@ Bump(AM, 1) /obj/item/projectile/Destroy() + if(hitscan) + finalize_hitscan_and_generate_tracers() STOP_PROCESSING(SSprojectiles, src) ammo_casing = null firer_source_atom = null @@ -386,11 +437,22 @@ ..() Angle = new_angle trajectory.set_angle(new_angle) + if(has_been_fired && hitscan && isloc(loc) && (loc != last_angle_set_hitscan_store)) + last_angle_set_hitscan_store = loc + var/datum/point/point_cache = new (src) + point_cache = trajectory.copy_to() + store_hitscan_collision(point_cache) /obj/item/projectile/proc/set_angle_centered(new_angle) set_angle(new_angle) var/list/coordinates = trajectory.return_coordinates() trajectory.set_location(coordinates[1], coordinates[2], coordinates[3]) // Sets the trajectory to the center of the tile it bounced at + if(has_been_fired && hitscan && isloc(loc))// Handles hitscan projectiles + last_angle_set_hitscan_store = loc + var/datum/point_precise/point_cache = new (src) + point_cache.initialize_location(coordinates[1], coordinates[2], coordinates[3]) // Take the center of the hitscan collision tile + store_hitscan_collision(point_cache) + return TRUE /obj/item/projectile/experience_pressure_difference() return @@ -400,7 +462,11 @@ if(QDELETED(src)) // we coulda bumped something return if(trajectory && !trajectory_ignore_forcemove && isturf(target)) + if(hitscan) + finalize_hitscan_and_generate_tracers(FALSE) trajectory.initialize_location(target.x, target.y, target.z, 0, 0) + if(hitscan) + record_hitscan_start(RETURN_PRECISE_POINT(src)) /obj/item/projectile/proc/is_reflectable(desired_reflectability_level) if(reflectability == REFLECTABILITY_NEVER) //You'd trust coders not to try and override never reflectable things, but heaven help us I do not @@ -408,3 +474,67 @@ if(reflectability < desired_reflectability_level) return FALSE return TRUE + +/obj/item/projectile/proc/record_hitscan_start(datum/point_precise/point_cache) + if(point_cache) + beam_segments = list() + beam_index = point_cache + beam_segments[beam_index] = null //record start. + +/obj/item/projectile/proc/process_hitscan() + //Safety here is to make hitscan stop if something goes wrong. Why is it equal to range * 10, when range is the maximum amount of tiles it can go? No clue. + var/safety = range * 10 + record_hitscan_start(RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1)) + while(loc && !QDELETED(src)) + if(paused) + stoplag(1) + continue + if(safety-- <= 0) + if(loc) + Bump(loc) + if(!QDELETED(src)) + qdel(src) + return //Kill! + pixel_move(1, TRUE) + +/obj/item/projectile/proc/finalize_hitscan_and_generate_tracers(impacting = TRUE) + if(trajectory && beam_index) + var/datum/point_precise/point_cache = trajectory.copy_to() + beam_segments[beam_index] = point_cache + generate_hitscan_tracers(null, hitscan_duration, impacting) + +/obj/item/projectile/proc/generate_hitscan_tracers(cleanup = TRUE, duration = 3, impacting = TRUE) + if(!length(beam_segments)) + return + if(tracer_type) + var/tempuid = UID() + for(var/datum/point_precise/p in beam_segments) + generate_tracer_between_points(p, beam_segments[p], tracer_type, color, duration, hitscan_light_range, hitscan_light_color_override, hitscan_light_intensity, tempuid) + if(muzzle_type && duration > 0) + var/datum/point_precise/p = beam_segments[1] + var/atom/movable/thing = new muzzle_type + p.move_atom_to_src(thing) + var/matrix/matrix = new + matrix.Turn(original_angle) + thing.transform = matrix + thing.color = color + thing.set_light(muzzle_flash_range, muzzle_flash_intensity, muzzle_flash_color_override? muzzle_flash_color_override : color) + QDEL_IN(thing, duration) + if(impacting && impact_type && duration > 0) + var/datum/point_precise/p = beam_segments[beam_segments[beam_segments.len]] + var/atom/movable/thing = new impact_type + p.move_atom_to_src(thing) + var/matrix/matrix = new + matrix.Turn(Angle) + thing.transform = matrix + thing.color = color + thing.set_light(impact_light_range, impact_light_intensity, impact_light_color_override? impact_light_color_override : color) + QDEL_IN(thing, duration) + if(cleanup) + cleanup_beam_segments() + +/obj/item/projectile/proc/cleanup_beam_segments() + QDEL_LIST_ASSOC(beam_segments) + +#undef MOVES_HITSCAN +#undef MUZZLE_EFFECT_PIXEL_INCREMENT diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 041e9bbacfb..0b4bcd81114 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -214,7 +214,7 @@ /obj/machinery/bsa/full/proc/fire(mob/user, turf/bullseye, target) var/turf/point = get_front_turf() - for(var/turf/T in getline(get_step(point,dir),get_target_turf())) + for(var/turf/T in get_line(get_step(point,dir),get_target_turf())) T.ex_act(1) for(var/atom/A in T) A.ex_act(1) diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 62b4ce1e37f..729fef7a1b6 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -154,7 +154,7 @@ var/kill_range = 14 /obj/machinery/satellite/meteor_shield/proc/space_los(meteor) - for(var/turf/T in getline(src,meteor)) + for(var/turf/T in get_line(src,meteor)) if(!isspaceturf(T)) return FALSE return TRUE diff --git a/icons/obj/projectiles_impact.dmi b/icons/obj/projectiles_impact.dmi new file mode 100644 index 00000000000..710507d4c85 Binary files /dev/null and b/icons/obj/projectiles_impact.dmi differ diff --git a/icons/obj/projectiles_muzzle.dmi b/icons/obj/projectiles_muzzle.dmi new file mode 100644 index 00000000000..9bf78ba4a53 Binary files /dev/null and b/icons/obj/projectiles_muzzle.dmi differ diff --git a/icons/obj/projectiles_tracer.dmi b/icons/obj/projectiles_tracer.dmi new file mode 100644 index 00000000000..ba3bd1f9377 Binary files /dev/null and b/icons/obj/projectiles_tracer.dmi differ diff --git a/paradise.dme b/paradise.dme index 809fe396388..c06d751792c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -939,6 +939,10 @@ #include "code\game\objects\effects\temporary_visuals\misc_visuals.dm" #include "code\game\objects\effects\temporary_visuals\muzzle_flashes.dm" #include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\effects\temporary_visuals\projectile\impact.dm" +#include "code\game\objects\effects\temporary_visuals\projectile\muzzle.dm" +#include "code\game\objects\effects\temporary_visuals\projectile\projectile_effects.dm" +#include "code\game\objects\effects\temporary_visuals\projectile\tracer.dm" #include "code\game\objects\items\ashtray.dm" #include "code\game\objects\items\blueprints.dm" #include "code\game\objects\items\bodybag.dm"