diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b5975725c0..f60633cb9b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,9 @@ jobs: unit_tests_and_sql: name: Unit Tests + SQL Validation runs-on: ubuntu-20.04 + strategy: + matrix: + maptype: ['/datum/map/cyberiad', '/datum/map/delta', '/datum/map/metastation'] services: mariadb: image: mariadb:latest @@ -86,6 +89,7 @@ jobs: tools/ci/install_byond.sh source $HOME/BYOND/byond/bin/byondsetup tools/ci/dm.sh -DCIBUILDING paradise.dme + echo '${{ matrix.maptype }}' > data/next_map.txt tools/ci/run_server.sh windows_dll_tests: diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index 2235fa4e24b..422dcb38598 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -131,7 +131,7 @@ /obj/machinery/access_button{ command = "cycle_exterior"; frequency = 1379; - master_tag = "tradedock"; + master_tag = "tradedock_outer"; name = "exterior access button"; pixel_x = 24; pixel_y = 4 @@ -211,12 +211,13 @@ /turf/simulated/floor/plating, /area/shuttle/pod_1) "adg" = ( -/turf/simulated/wall/mineral/titanium, -/area/shuttle/pod_2) -"adh" = ( -/obj/effect/spawner/window/shuttle, +/obj/structure/closet/emcloset, /turf/simulated/floor/plating, -/area/shuttle/pod_2) +/area/hallway/secondary/entry) +"adh" = ( +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/plating, +/area/hallway/secondary/entry) "adt" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 5 @@ -257,18 +258,11 @@ /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/pod_1) "adz" = ( -/obj/machinery/status_display{ - layer = 4; - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/chair/comfy/shuttle{ +/obj/machinery/light/small{ dir = 1 }, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/simulated/floor/plating, +/area/hallway/secondary/entry) "adK" = ( /obj/machinery/light/small{ dir = 4 @@ -300,20 +294,6 @@ }, /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/pod_1) -"adP" = ( -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 28 - }, -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"adQ" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/simulated/wall/mineral/titanium, -/area/shuttle/pod_2) "adT" = ( /obj/docking_port/stationary{ dir = 2; @@ -378,16 +358,8 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "aeg" = ( -/obj/docking_port/mobile/pod{ - id = "pod2"; - name = "escape pod 2" - }, -/obj/machinery/door/airlock/titanium{ - id_tag = "s_docking_airlock"; - name = "Escape Pod Hatch" - }, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/pod_2) +/turf/simulated/floor/plating, +/area/hallway/secondary/entry) "aey" = ( /obj/machinery/light/small{ dir = 8 @@ -428,10 +400,11 @@ }, /area/hallway/secondary/entry) "aeK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external, -/turf/simulated/floor/plasteel, -/area/hallway/secondary/entry) +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 8 + }, +/turf/simulated/wall/mineral/titanium, +/area/shuttle/pod_4) "aeL" = ( /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ @@ -1363,8 +1336,8 @@ /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/arrival/station) "ahW" = ( -/obj/machinery/hologram/holopad, /obj/machinery/light, +/obj/machinery/hologram/holopad, /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/arrival/station) "ahX" = ( @@ -3028,6 +3001,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -3121,10 +3095,10 @@ "aoe" = ( /obj/structure/table, /obj/random/toolbox, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "aof" = ( @@ -3135,13 +3109,13 @@ /area/maintenance/fore2) "aog" = ( /obj/effect/decal/cleanable/cobweb2, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; - pixel_y = 28 + pixel_y = 25 + }, +/obj/machinery/newscaster{ + pixel_x = 32 }, /turf/simulated/floor/plasteel{ icon_state = "red" @@ -3160,7 +3134,7 @@ /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; - pixel_y = 28 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ @@ -3903,7 +3877,6 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -3911,6 +3884,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -4265,8 +4239,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -4466,10 +4440,10 @@ /turf/simulated/floor/carpet, /area/security/vacantoffice) "arD" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/wood, /area/security/vacantoffice) "arE" = ( @@ -4619,13 +4593,13 @@ }, /area/hallway/secondary/entry) "arP" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/carpet, /area/hallway/secondary/entry) "arQ" = ( @@ -5221,7 +5195,7 @@ /area/engine/controlroom) "ate" = ( /obj/structure/table/wood, -/obj/item/circuitboard/arcade, +/obj/item/circuitboard/arcade/battle, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -5477,10 +5451,10 @@ }, /area/hallway/secondary/entry) "atG" = ( +/obj/structure/closet/wardrobe/red, /obj/machinery/newscaster/security_unit{ pixel_x = -30 }, -/obj/structure/closet/wardrobe/red, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "red" @@ -5758,10 +5732,10 @@ /area/maintenance/electrical_shop) "aui" = ( /obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -5825,11 +5799,11 @@ /area/maintenance/electrical_shop) "aup" = ( /obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/lighter/zippo, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/item/folder/red, -/obj/item/lighter/zippo, /turf/simulated/floor/wood, /area/maintenance/electrical_shop) "auq" = ( @@ -6736,16 +6710,16 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall1"; - location = "hall15" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall1"; + location = "hall15" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -8041,7 +8015,7 @@ /turf/simulated/floor/plating, /area/engine/controlroom) "ayV" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 2; d2 = 4; icon_state = "2-4" @@ -8196,8 +8170,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -8345,6 +8318,13 @@ /area/quartermaster/sorting) "azF" = ( /obj/effect/decal/cleanable/cobweb2, +/obj/machinery/door_control{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = 24; + pixel_y = -3; + req_access_txt = "31" + }, /turf/simulated/floor/plating, /area/quartermaster/sorting) "azG" = ( @@ -8352,6 +8332,13 @@ /obj/item/stack/packageWrap, /obj/item/hand_labeler, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/door_control{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -3; + req_access_txt = "31" + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "brown" @@ -8471,7 +8458,7 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "azT" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" @@ -8492,7 +8479,7 @@ }, /area/engine/controlroom) "azV" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 2; d2 = 8; icon_state = "2-8" @@ -8516,7 +8503,7 @@ dir = 4 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 8; icon_state = "0-8" }, @@ -8545,14 +8532,14 @@ dir = 8 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 4; icon_state = "0-4" }, /turf/simulated/floor/engine, /area/engine/supermatter) "aAd" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" @@ -8690,11 +8677,11 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -8953,6 +8940,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/door/poddoor/shutters{ + id_tag = "qm_warehouse"; + name = "Warehouse Shutters" + }, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aAT" = ( @@ -9015,7 +9006,7 @@ /area/quartermaster/storage) "aBa" = ( /obj/machinery/conveyor/south{ - id = "QMLoad2" + id = "QMLoad" }, /turf/simulated/floor/plating, /area/quartermaster/storage) @@ -9029,7 +9020,7 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aBf" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" @@ -9060,7 +9051,7 @@ dir = 4 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 8; icon_state = "0-8" }, @@ -9088,7 +9079,7 @@ dir = 8 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 4; icon_state = "0-4" }, @@ -9202,8 +9193,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -9232,10 +9222,12 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/reagent_dispensers/spacecleanertank{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel, /area/janitor) "aBx" = ( @@ -9392,6 +9384,10 @@ name = "Cargo Bay"; req_access_txt = "31" }, +/obj/machinery/door/poddoor/shutters{ + id_tag = "qm_warehouse"; + name = "Warehouse Shutters" + }, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aBP" = ( @@ -9526,7 +9522,7 @@ dir = 4 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 8; icon_state = "0-8" }, @@ -9538,7 +9534,7 @@ dir = 8 }, /obj/machinery/power/rad_collector, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 4; icon_state = "0-4" }, @@ -9641,13 +9637,13 @@ /area/maintenance/fore) "aCu" = ( /obj/machinery/light/small, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/structure/toilet{ dir = 8 }, /obj/effect/decal/cleanable/vomit, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plating, /area/crew_quarters/toilet) "aCv" = ( @@ -9752,12 +9748,12 @@ /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aCJ" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; location = "QM #1" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aCK" = ( @@ -9786,7 +9782,7 @@ /area/quartermaster/storage) "aCO" = ( /obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2" + id = "QMLoad" }, /turf/simulated/floor/plasteel{ dir = 4; @@ -9815,12 +9811,12 @@ }, /area/maintenance/fore) "aCS" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 2; d2 = 4; icon_state = "2-4" }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -9836,12 +9832,12 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aCU" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 2; d2 = 8; icon_state = "2-8" }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -9932,7 +9928,7 @@ /turf/simulated/floor/plating, /area/engine/controlroom) "aDh" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -10290,8 +10286,8 @@ /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aDS" = ( -/obj/structure/plasticflaps, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps, /turf/simulated/floor/plasteel, /area/quartermaster/sorting) "aDT" = ( @@ -10299,12 +10295,12 @@ home_destination = "QM #2"; suffix = "#2" }, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; location = "QM #2" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aDW" = ( @@ -10325,7 +10321,7 @@ /area/quartermaster/storage) "aDY" = ( /obj/machinery/conveyor/southeast/ccw{ - id = "QMLoad2" + id = "QMLoad" }, /turf/simulated/floor/plating, /area/quartermaster/storage) @@ -10372,7 +10368,7 @@ }, /area/engine/controlroom) "aEe" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -10407,6 +10403,10 @@ pixel_x = -24; shock_proof = 1 }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, /turf/simulated/floor/engine, /area/engine/supermatter) "aEi" = ( @@ -10426,7 +10426,7 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aEk" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" @@ -10453,7 +10453,7 @@ }, /area/engine/controlroom) "aEn" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 4; icon_state = "1-4" @@ -10490,7 +10490,7 @@ /turf/simulated/floor/plasteel, /area/hydroponics/abandoned_garden) "aEs" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" @@ -10857,28 +10857,28 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aFe" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, /obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/engine/controlroom) -"aFf" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/simulated/floor/plasteel, +/area/engine/controlroom) +"aFf" = ( /obj/machinery/atmospherics/trinary/filter{ dir = 8; filter_type = "n2" }, /obj/effect/decal/warning_stripes/north, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aFg" = ( @@ -10890,13 +10890,13 @@ /turf/simulated/wall/r_wall, /area/engine/supermatter) "aFi" = ( -/obj/structure/cable{ +/obj/machinery/atmospherics/pipe/manifold/visible, +/obj/effect/decal/warning_stripes/north, +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/visible, -/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aFj" = ( @@ -10921,7 +10921,7 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aFl" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -10964,12 +10964,12 @@ /obj/machinery/light{ dir = 8 }, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; location = "QM #3" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aFq" = ( @@ -11167,7 +11167,8 @@ name = "Cargo Docking Hatch"; req_access_txt = "31" }, -/turf/simulated/floor/plasteel, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, /area/quartermaster/storage) "aFO" = ( /obj/effect/decal/cleanable/dirt, @@ -11183,9 +11184,6 @@ /area/hydroponics/abandoned_garden) "aFQ" = ( /obj/machinery/light/small, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/structure/toilet{ dir = 8 }, @@ -11194,6 +11192,9 @@ name = "Civilian" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel, /area/crew_quarters/toilet) "aFR" = ( @@ -11205,7 +11206,7 @@ /turf/simulated/wall, /area/quartermaster/storage) "aFV" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -11222,25 +11223,25 @@ }, /area/engine/controlroom) "aFX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/binary/pump{ dir = 8; name = "Gas to Filter"; on = 1 }, /obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/engine/controlroom) -"aFY" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plasteel, +/area/engine/controlroom) +"aFY" = ( /obj/machinery/atmospherics/pipe/manifold/visible, /obj/machinery/camera{ c_tag = "Supermatter South"; @@ -11251,47 +11252,52 @@ icon_state = "0-4" }, /obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/engine/supermatter) -"aFZ" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/simulated/floor/plasteel, +/area/engine/supermatter) +"aFZ" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, /obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/engine/supermatter) -"aGa" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/turf/simulated/floor/plasteel, +/area/engine/supermatter) +"aGa" = ( /obj/machinery/atmospherics/pipe/manifold/visible, /obj/machinery/meter, /obj/effect/decal/warning_stripes/north, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aGb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, /obj/effect/decal/warning_stripes/northwestcorner, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aGc" = ( @@ -11325,8 +11331,7 @@ "aGe" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/structure/sign/nosmoking_2{ pixel_x = -32 @@ -11337,10 +11342,10 @@ /area/hydroponics/abandoned_garden) "aGf" = ( /obj/machinery/conveyor/east{ - id = "QMLoad2" + id = "QMLoad" }, /obj/machinery/door/poddoor{ - id_tag = "QMLoaddoor2"; + id_tag = "QMLoaddoor"; name = "supply dock loading door" }, /turf/simulated/floor/plating, @@ -11373,6 +11378,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -11513,7 +11519,7 @@ /area/crew_quarters/bar) "aGx" = ( /obj/structure/sink/kitchen{ - pixel_y = 28 + pixel_y = 25 }, /obj/machinery/camera{ c_tag = "Bar Backroom" @@ -11707,7 +11713,7 @@ /area/quartermaster/sorting) "aGP" = ( /obj/machinery/conveyor/east{ - id = "QMLoad2" + id = "QMLoad" }, /obj/structure/plasticflaps/mining, /turf/simulated/floor/plating, @@ -11788,7 +11794,7 @@ "aHb" = ( /obj/structure/sink{ dir = 4; - pixel_x = 9 + pixel_x = 12 }, /obj/structure/sign/botany{ pixel_x = 32 @@ -11797,7 +11803,7 @@ /turf/simulated/floor/plasteel, /area/hydroponics/abandoned_garden) "aHc" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -11875,7 +11881,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -12062,7 +12068,9 @@ }, /area/crew_quarters/sleep) "aHI" = ( -/obj/structure/plasticflaps, +/obj/structure/plasticflaps{ + opacity = 1 + }, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; @@ -12132,13 +12140,13 @@ }, /area/crew_quarters/bar) "aHP" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -12184,13 +12192,13 @@ }, /area/crew_quarters/sleep) "aHT" = ( -/obj/structure/plasticflaps{ - opacity = 1 - }, /obj/machinery/conveyor{ dir = 4; id = "cargodelivery" }, +/obj/structure/plasticflaps{ + opacity = 1 + }, /turf/simulated/floor/plating, /area/quartermaster/office) "aHU" = ( @@ -12306,14 +12314,14 @@ /area/quartermaster/storage) "aIf" = ( /obj/machinery/door_control{ - id = "QMLoaddoor2"; + id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = 24; pixel_y = 8 }, /obj/machinery/door_control{ - id = "QMLoaddoor"; + id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = 24; @@ -12346,23 +12354,23 @@ /area/quartermaster/office) "aIi" = ( /obj/machinery/conveyor/southwest/ccw{ - id = "QMLoad" + id = "QMLoad2" }, /turf/simulated/floor/plating, /area/quartermaster/storage) "aIj" = ( /obj/machinery/conveyor/west{ - id = "QMLoad" + id = "QMLoad2" }, /obj/machinery/door/poddoor{ - id_tag = "QMLoaddoor"; + id_tag = "QMLoaddoor2"; name = "supply dock loading door" }, /turf/simulated/floor/plating, /area/quartermaster/storage) "aIk" = ( /obj/machinery/conveyor/west{ - id = "QMLoad" + id = "QMLoad2" }, /obj/structure/plasticflaps/mining, /turf/simulated/floor/plating, @@ -12600,11 +12608,6 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aIH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -12612,6 +12615,11 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aII" = ( @@ -12648,7 +12656,7 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aIL" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -12711,11 +12719,11 @@ dir = 4; pixel_y = -22 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -12952,18 +12960,18 @@ }, /area/quartermaster/storage) "aJs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/visible, /obj/effect/decal/warning_stripes/north, /obj/machinery/door_control{ id = "engsm"; name = "Radiation Shutters Control"; pixel_y = 24; - req_access_txt = "10" + req_access_txt = "10; 24" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel, /area/engine/controlroom) @@ -13034,7 +13042,7 @@ /area/engine/controlroom) "aJE" = ( /obj/machinery/conveyor/south{ - id = "QMLoad" + id = "QMLoad2" }, /turf/simulated/floor/plating, /area/quartermaster/storage) @@ -13154,6 +13162,11 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/northwest, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel, /area/maintenance/incinerator) "aJO" = ( @@ -13517,6 +13530,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -13531,6 +13545,8 @@ dir = 4 }, /obj/effect/decal/warning_stripes/northeast, +/obj/structure/table, +/obj/machinery/recharger, /turf/simulated/floor/plasteel, /area/quartermaster/office) "aKw" = ( @@ -13694,7 +13710,7 @@ /turf/simulated/wall, /area/security/execution) "aKX" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" @@ -13815,11 +13831,6 @@ }, /area/maintenance/incinerator) "aLj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -13922,6 +13933,11 @@ name = "Fore Port Solar Access"; req_access_txt = "32" }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel, /area/maintenance/auxsolarport) "aLs" = ( @@ -13946,14 +13962,14 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aLw" = ( -/obj/structure/cable, -/obj/structure/cable{ +/obj/machinery/power/terminal, +/obj/effect/decal/warning_stripes/south, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ d1 = 1; d2 = 4; icon_state = "1-4" }, -/obj/machinery/power/terminal, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/engine/controlroom) "aLx" = ( @@ -14147,12 +14163,12 @@ home_destination = "QM #4"; suffix = "#4" }, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; dir = 4; location = "QM #4" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aLW" = ( @@ -14255,13 +14271,13 @@ }, /area/quartermaster/storage) "aMd" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -14383,7 +14399,7 @@ }, /area/medical/medbay) "aMx" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ d2 = 8; icon_state = "0-8" }, @@ -14499,6 +14515,11 @@ /area/engine/controlroom) "aMO" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -14556,7 +14577,10 @@ }, /obj/machinery/light/small, /obj/machinery/power/smes, -/turf/simulated/floor/greengrid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, /area/engine/controlroom) "aMU" = ( /obj/structure/cable{ @@ -14688,7 +14712,7 @@ /area/crew_quarters/bar) "aNk" = ( /obj/machinery/conveyor_switch/oneway{ - id = "QMLoad" + id = "QMLoad2" }, /turf/simulated/floor/plasteel{ dir = 4; @@ -15398,10 +15422,10 @@ }, /area/quartermaster/office) "aOL" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -15412,10 +15436,10 @@ /turf/simulated/wall, /area/quartermaster/office) "aON" = ( -/obj/structure/plasticflaps, /obj/machinery/conveyor{ id = "cargodisposals" }, +/obj/structure/plasticflaps, /turf/simulated/floor/plating, /area/quartermaster/office) "aOO" = ( @@ -15794,12 +15818,19 @@ /turf/simulated/floor/plasteel, /area/engine/controlroom) "aPF" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 4 }, -/obj/effect/decal/warning_stripes/north, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, /area/atmos) "aPG" = ( /obj/machinery/light{ @@ -15877,13 +15908,13 @@ }, /area/maintenance/gambling_den) "aPP" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/machinery/status_display{ pixel_x = -32 }, /obj/structure/closet/secure_closet/clown, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "redbluefull" }, @@ -16073,8 +16104,8 @@ }, /area/quartermaster/office) "aQi" = ( -/obj/structure/plasticflaps, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps, /turf/simulated/floor/plasteel, /area/quartermaster/office) "aQj" = ( @@ -16089,7 +16120,7 @@ dir = 4 }, /obj/machinery/door/firedoor, -/turf/simulated/floor/plating, +/turf/simulated/floor/wood, /area/medical/psych) "aQk" = ( /obj/structure/table, @@ -16171,15 +16202,15 @@ dir = 4 }, /obj/machinery/conveyor/southwest{ - id = "QMLoad" + id = "QMLoad2" }, /turf/simulated/floor/plating, /area/quartermaster/storage) "aQt" = ( +/obj/structure/chair/stool/bar, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/structure/chair/stool/bar, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -16816,7 +16847,13 @@ "aRM" = ( /obj/structure/table, /obj/item/folder/yellow, -/obj/item/destTagger, +/obj/item/destTagger{ + pixel_x = -4 + }, +/obj/item/rcs{ + pixel_x = 8; + pixel_y = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, @@ -16952,11 +16989,8 @@ /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -17085,7 +17119,7 @@ /area/security/execution) "aSw" = ( /obj/machinery/conveyor/west{ - id = "QMLoad" + id = "QMLoad2" }, /turf/simulated/floor/plating, /area/quartermaster/storage) @@ -17198,9 +17232,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -17281,7 +17313,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" + req_access_txt = "46" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -17297,12 +17329,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/crew_quarters/theatre) "aSU" = ( @@ -17380,6 +17412,7 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance{ + name = "Entertainment Office"; req_access_txt = "46" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -17440,11 +17473,11 @@ }, /area/crew_quarters/sleep) "aTb" = ( -/obj/machinery/hologram/holopad, /obj/item/radio/intercom{ pixel_y = -28 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/security/permabrig) "aTc" = ( @@ -17481,13 +17514,13 @@ }, /area/crew_quarters/bar/atrium) "aTf" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/carpet, /area/crew_quarters/bar/atrium) "aTg" = ( @@ -17621,6 +17654,11 @@ /area/quartermaster/storage) "aTw" = ( /obj/structure/table/reinforced, +/obj/item/stamp/granted, +/obj/item/stamp/granted{ + pixel_x = 3; + pixel_y = 3 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -17964,6 +18002,9 @@ }, /obj/item/stack/packageWrap, /obj/item/hand_labeler, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "caution" @@ -17974,6 +18015,9 @@ dir = 6 }, /obj/effect/decal/warning_stripes/west, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/atmos) "aTZ" = ( @@ -17996,9 +18040,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -18362,10 +18403,6 @@ }, /obj/structure/table/reinforced, /obj/item/paper_bin, -/obj/machinery/newscaster{ - layer = 3.3; - pixel_x = -27 - }, /obj/item/stack/sheet/metal{ amount = 50 }, @@ -18374,6 +18411,10 @@ pixel_x = 3; pixel_y = 3 }, +/obj/machinery/newscaster{ + layer = 3.3; + pixel_x = -27 + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "brown" @@ -18403,13 +18444,9 @@ }, /area/quartermaster/office) "aUQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -18417,10 +18454,10 @@ }, /area/atmos) "aUR" = ( -/obj/machinery/ai_status_display{ +/obj/machinery/photocopier, +/obj/machinery/status_display/supply_display{ pixel_y = 32 }, -/obj/machinery/photocopier, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "brown" @@ -18929,29 +18966,24 @@ }, /area/atmos) "aVN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/atmos) "aVO" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/visible/green{ - dir = 4 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -19507,10 +19539,10 @@ }, /area/security/permabrig) "aWN" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/security/permabrig) "aWO" = ( @@ -19596,12 +19628,12 @@ }, /area/security/execution) "aWV" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 5 }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "darkred" }, @@ -19763,6 +19795,7 @@ dir = 4 }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -19808,12 +19841,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/atmos) -"aXs" = ( /obj/structure/cable{ d1 = 1; d2 = 2; @@ -19824,7 +19851,7 @@ icon_state = "neutralfull" }, /area/atmos) -"aXt" = ( +"aXs" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 6; initialize_directions = 6 @@ -19920,11 +19947,11 @@ /area/crew_quarters/sleep) "aXB" = ( /obj/structure/table/wood, +/obj/item/twohanded/staff/broom, +/obj/item/clothing/head/witchwig, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/staff/broom, -/obj/item/clothing/head/witchwig, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -19964,10 +19991,13 @@ }, /area/crew_quarters/bar/atrium) "aXG" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, +/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{ dir = 8; icon_state = "neutralfull" @@ -20005,10 +20035,10 @@ }, /area/maintenance/fore) "aXK" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/plasticflaps{ opacity = 1 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/office) "aXL" = ( @@ -20019,7 +20049,6 @@ }, /area/quartermaster/office) "aXM" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -20027,19 +20056,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/quartermaster/office) "aXN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -20066,6 +20092,7 @@ "aXS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/quartermaster/miningdock) "aXT" = ( @@ -20449,11 +20476,11 @@ "aYH" = ( /obj/structure/table/reinforced, /obj/item/wrench, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "caution" @@ -20472,6 +20499,11 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -21357,7 +21389,6 @@ /obj/machinery/atmospherics/unary/portables_connector{ dir = 4 }, -/obj/machinery/portable_atmospherics/canister, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 8; @@ -21416,6 +21447,11 @@ "bau" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -21433,20 +21469,6 @@ icon_state = "dark" }, /area/construction/hallway) -"baw" = ( -/obj/machinery/atmospherics/trinary/mixer{ - dir = 1; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/atmos) "bax" = ( /obj/structure/window/reinforced{ dir = 4 @@ -21635,16 +21657,16 @@ /area/security/permabrig) "baQ" = ( /obj/structure/sink/kitchen{ - pixel_y = 30 + pixel_y = 25 }, /obj/effect/decal/warning_stripes/southwest, /turf/simulated/floor/plasteel, /area/crew_quarters/kitchen) "baR" = ( +/obj/item/twohanded/required/kirbyplants, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -21773,14 +21795,14 @@ pixel_x = -4; pixel_y = 4 }, -/obj/machinery/newscaster{ - layer = 3.3; - pixel_y = -27 - }, /obj/item/radio/intercom{ dir = 4; pixel_x = 28 }, +/obj/machinery/newscaster{ + layer = 3.3; + pixel_y = -27 + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "brown" @@ -21799,7 +21821,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Quartermaster" }, @@ -21810,6 +21831,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -21847,7 +21869,6 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -21855,6 +21876,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -22246,14 +22268,13 @@ /turf/simulated/floor/plasteel, /area/atmos) "bbV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/landmark/start{ name = "Life Support Specialist" }, +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -22412,8 +22433,15 @@ }, /area/crew_quarters/sleep) "bcn" = ( -/obj/structure/plasticflaps, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + dir = 4; + location = "Kitchen" + }, /turf/simulated/floor/plasteel, /area/crew_quarters/kitchen) "bcp" = ( @@ -22448,7 +22476,7 @@ c_tag = "Kitchen Backroom" }, /obj/structure/sink/kitchen{ - pixel_y = 30 + pixel_y = 25 }, /obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel, @@ -22617,12 +22645,12 @@ /area/quartermaster/storage) "bcL" = ( /obj/machinery/light, +/obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/vending/cargodrobe, /obj/machinery/newscaster{ layer = 3.3; pixel_y = -27 }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/obj/machinery/vending/cargodrobe, /turf/simulated/floor/plasteel{ icon_state = "purple" }, @@ -23306,6 +23334,7 @@ /area/construction/hallway) "bea" = ( /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -23394,10 +23423,10 @@ }, /area/quartermaster/miningdock) "bel" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/plasticflaps{ opacity = 1 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/quartermaster/miningdock) "bem" = ( @@ -23599,19 +23628,15 @@ /turf/simulated/floor/plasteel, /area/atmos) "beP" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/visible/yellow, /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/atmos) "beQ" = ( -/obj/machinery/atmospherics/binary/pump{ - dir = 8; - name = "N2 to Pure"; - target_pressure = 101 - }, /obj/machinery/atmospherics/pipe/simple/visible/green, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -23701,8 +23726,15 @@ /turf/simulated/floor/plasteel, /area/hydroponics) "bfb" = ( -/obj/structure/plasticflaps, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + dir = 8; + location = "Hydroponics" + }, /turf/simulated/floor/plasteel, /area/hydroponics) "bfc" = ( @@ -23772,11 +23804,11 @@ }, /area/crew_quarters/kitchen) "bfj" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ icon_state = "redfull" }, @@ -24199,7 +24231,7 @@ /area/atmos) "bgg" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 5 + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -24233,7 +24265,10 @@ }, /area/atmos) "bgj" = ( -/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" @@ -24317,11 +24352,11 @@ }, /area/crew_quarters/kitchen) "bgv" = ( -/obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Chef" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -24598,7 +24633,7 @@ /area/security/medbay) "bhc" = ( /obj/structure/sink{ - pixel_y = 26 + pixel_y = 25 }, /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ @@ -24693,6 +24728,7 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + cell_type = 25000; dir = 1; name = "north bump"; pixel_y = 24 @@ -24835,10 +24871,10 @@ /obj/structure/table/glass, /obj/item/clipboard, /obj/item/toy/figure/crew/botanist, +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/hydroponics) "bhC" = ( @@ -24904,7 +24940,7 @@ /area/storage/primary) "bhK" = ( /obj/structure/sink/kitchen{ - pixel_y = 30 + pixel_y = 25 }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -25422,10 +25458,10 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/newscaster{ +/obj/structure/closet/secure_closet/security, +/obj/machinery/newscaster/security_unit{ pixel_y = 32 }, -/obj/structure/closet/secure_closet/security, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -25651,7 +25687,6 @@ }, /area/atmos) "biU" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -25664,6 +25699,7 @@ dir = 2; icon_state = "pipe-c" }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -25676,6 +25712,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -25690,9 +25731,9 @@ }, /area/storage/primary) "biX" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -25766,8 +25807,7 @@ "bje" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/machinery/alarm{ dir = 4; @@ -25857,10 +25897,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/crew_quarters/sleep) "bjo" = ( @@ -25968,7 +26008,7 @@ dir = 1; icon_state = "pipe-j2s"; name = "Kitchen Junction"; - sortType = 21 + sortType = 20 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -26153,7 +26193,6 @@ }, /area/security/medbay) "bka" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, @@ -26169,6 +26208,7 @@ d2 = 4; icon_state = "1-4" }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -26341,6 +26381,9 @@ dir = 4; network = list("Interrogation") }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -26572,21 +26615,21 @@ /area/atmos) "bkK" = ( /obj/structure/cable{ - d1 = 4; + d1 = 1; d2 = 8; - icon_state = "4-8" + icon_state = "1-8" }, /obj/effect/decal/warning_stripes/southeastcorner, /turf/simulated/floor/plasteel, /area/atmos) "bkL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, /area/atmos) "bkM" = ( /obj/effect/decal/warning_stripes/south, @@ -26604,12 +26647,13 @@ }, /area/atmos) "bkP" = ( -/obj/machinery/atmospherics/binary/valve{ - name = "SM coolant loop" - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/binary/pump{ + dir = 0; + name = "Pure to SM" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" @@ -27084,7 +27128,7 @@ /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; - pixel_y = 28 + pixel_y = 25 }, /obj/machinery/camera{ c_tag = "Perma-Brig Garden"; @@ -27273,12 +27317,12 @@ /area/crew_quarters/heads/hos) "bml" = ( /obj/structure/dresser, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/machinery/light_switch{ pixel_x = -26 }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -27520,14 +27564,14 @@ }, /obj/item/grenade/chem_grenade/metalfoam, /obj/item/grenade/chem_grenade/metalfoam, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/visible/purple{ dir = 4 }, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel, /area/atmos) "bmK" = ( @@ -28170,9 +28214,9 @@ }, /area/tcommsat/chamber) "boi" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -28398,6 +28442,9 @@ dir = 4; icon_state = "pipe-c" }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -28711,10 +28758,10 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -29299,10 +29346,10 @@ /area/maintenance/fore) "bqh" = ( /obj/machinery/hydroponics/constructable, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/hydroponics) "bqi" = ( @@ -29446,14 +29493,15 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall15"; - location = "hall14" - }, /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, +/obj/machinery/hologram/holopad, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall15"; + location = "hall14" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -29522,15 +29570,15 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall14"; - location = "hall13" - }, /obj/structure/disposalpipe/sortjunction{ dir = 8; name = "Quartermaster Junction"; sortType = 3 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall14"; + location = "hall13" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -29558,8 +29606,8 @@ /turf/simulated/wall/rust, /area/maintenance/starboard) "bqJ" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -30217,11 +30265,11 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/disposalpipe/segment, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=engi3"; location = "engi2" }, -/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -30634,9 +30682,6 @@ /area/security/hos) "bsY" = ( /obj/structure/table/wood, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/structure/extinguisher_cabinet{ pixel_x = 28; pixel_y = -30 @@ -30645,6 +30690,9 @@ pixel_y = -32 }, /obj/machinery/computer/med_data/laptop, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "vault" @@ -31047,8 +31095,8 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -31191,8 +31239,17 @@ }, /area/hallway/primary/central) "buc" = ( -/turf/simulated/wall, -/area/security/interrogation) +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 1379; + master_tag = "tradedock_inner"; + name = "exterior access button"; + pixel_x = 4; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel, +/area/hallway/secondary/entry) "bud" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -31216,11 +31273,11 @@ }, /area/security/interrogation) "buf" = ( -/obj/machinery/hologram/holopad, /obj/machinery/light{ dir = 1; on = 1 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -31613,8 +31670,7 @@ "buP" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, @@ -31634,7 +31690,7 @@ "buS" = ( /obj/structure/sink{ dir = 4; - pixel_x = 10 + pixel_x = 12 }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, @@ -32159,13 +32215,18 @@ d2 = 8; icon_state = "2-8" }, -/obj/structure/plasticflaps{ - opacity = 1 - }, /obj/effect/decal/warning_stripes/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + dir = 8; + location = "Atmospherics" + }, /turf/simulated/floor/plasteel, /area/atmos) "bvT" = ( @@ -32827,14 +32888,14 @@ /obj/item/wrench, /obj/item/crowbar, /obj/item/analyzer, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/machinery/camera{ c_tag = "Atmospherics Front Desk"; dir = 4; network = list("SS13","Engineering") }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "caution" @@ -33013,7 +33074,6 @@ /area/bridge) "bxv" = ( /obj/machinery/computer/atmos_alert, -/obj/machinery/computer/atmos_alert, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkyellow" @@ -33300,6 +33360,9 @@ }, /turf/simulated/floor/greengrid, /area/turret_protected/ai) +"bya" = ( +/turf/simulated/wall, +/area/space) "byb" = ( /obj/structure/cable{ d1 = 4; @@ -33457,9 +33520,6 @@ /turf/simulated/floor/plasteel, /area/engine/break_room) "byt" = ( -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/structure/rack, /obj/item/stack/cable_coil/random, /obj/item/stack/cable_coil/random, @@ -33512,7 +33572,6 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Life Support Specialist" }, @@ -33520,6 +33579,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 5 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -34076,10 +34136,10 @@ }, /area/turret_protected/ai) "bzx" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -35142,12 +35202,12 @@ /area/atmos) "bBL" = ( /obj/machinery/light, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/machinery/computer/atmos_alert{ dir = 1 }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "caution" }, @@ -35269,10 +35329,10 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/decal/warning_stripes/yellow, /obj/structure/plasticflaps{ opacity = 1 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/storage/primary) "bBX" = ( @@ -35348,13 +35408,13 @@ /area/storage/primary) "bCd" = ( /obj/structure/table/reinforced, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/item/storage/belt/utility, /obj/item/weldingtool, /obj/item/clothing/head/welding, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel, /area/storage/primary) "bCe" = ( @@ -36029,11 +36089,11 @@ pixel_x = 32; pixel_y = 32 }, +/obj/machinery/ai_slipper, /obj/machinery/newscaster/security_unit{ pixel_x = -32; pixel_y = 32 }, -/obj/machinery/ai_slipper, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -36120,7 +36180,6 @@ /turf/simulated/floor/plasteel, /area/engine/gravitygenerator) "bDf" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -36128,6 +36187,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -36201,13 +36261,13 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/engine/gravitygenerator) "bDl" = ( @@ -36420,7 +36480,7 @@ dir = 4; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "bDE" = ( /obj/item/twohanded/required/kirbyplants, /obj/machinery/status_display{ @@ -36980,7 +37040,7 @@ dir = 4; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "bEI" = ( /turf/simulated/floor/plasteel{ dir = 8; @@ -37290,8 +37350,8 @@ }, /area/storage/primary) "bFp" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -37785,10 +37845,10 @@ /turf/simulated/floor/plasteel, /area/engine/gravitygenerator) "bGw" = ( +/obj/effect/decal/warning_stripes/southeast, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel, /area/engine/gravitygenerator) "bGx" = ( @@ -38089,7 +38149,6 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -38097,6 +38156,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -38315,8 +38375,8 @@ /turf/simulated/floor/plating, /area/crew_quarters/sleep) "bHh" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -38947,10 +39007,10 @@ "bIt" = ( /obj/structure/table/reinforced, /obj/item/clipboard, +/obj/item/gps/engineering, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/gps/engineering, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -39356,14 +39416,14 @@ /turf/simulated/floor/wood, /area/crew_quarters/captain) "bJs" = ( -/obj/machinery/newscaster{ - layer = 3.3; - pixel_y = -27 - }, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/computer/security/mining{ dir = 1 }, +/obj/machinery/newscaster{ + layer = 3.3; + pixel_y = -27 + }, /turf/simulated/floor/plasteel, /area/quartermaster/miningdock) "bJt" = ( @@ -40872,7 +40932,7 @@ /turf/simulated/floor/plasteel{ icon_state = "white" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "bME" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -41128,8 +41188,8 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/wood, /area/crew_quarters/captain) "bNe" = ( @@ -41344,10 +41404,10 @@ /turf/simulated/floor/plasteel, /area/quartermaster/miningdock) "bNC" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/plasticflaps{ opacity = 1 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/maintenance/starboard) "bND" = ( @@ -41390,8 +41450,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -41501,7 +41561,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ name = "Engineering"; - req_access_txt = "10" + req_access_txt = "24; 10" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -41749,13 +41809,13 @@ /area/storage/tech) "bOu" = ( /obj/structure/table/reinforced, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/item/wrench, /obj/item/crowbar, /obj/item/paicard, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel, /area/storage/tech) "bOv" = ( @@ -41920,7 +41980,6 @@ /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bOQ" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -41932,6 +41991,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -41957,6 +42017,9 @@ /obj/structure/bed/dogbed{ name = "fox box" }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -41967,10 +42030,6 @@ dir = 1; pixel_y = -28 }, -/obj/machinery/newscaster{ - pixel_x = -32; - pixel_y = -32 - }, /turf/simulated/floor/wood, /area/crew_quarters/captain) "bOW" = ( @@ -42121,6 +42180,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, +/obj/machinery/newscaster/security_unit{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -42160,7 +42222,6 @@ /obj/structure/table/wood, /obj/item/flashlight/lamp, /obj/item/reagent_containers/food/drinks/flask/detflask, -/obj/machinery/computer/security/wooden_tv, /turf/simulated/floor/plasteel{ icon_state = "carpet" }, @@ -42250,6 +42311,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/security/processing) "bPx" = ( @@ -42625,13 +42687,12 @@ name = "MiniSat Transit Tube"; req_one_access_txt = "32;19" }, -/obj/machinery/door/poddoor{ - icon_state = "open"; - id_tag = "transitlock"; - name = "Transit Tube Blast Doors" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/poddoor/preopen{ + id_tag = "transitlock"; + name = "Transit Tube Lockdown" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -43358,9 +43419,6 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "bRx" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, /obj/structure/showcase{ density = 0; dir = 4; @@ -43371,6 +43429,9 @@ pixel_y = 2 }, /obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 5 + }, /turf/simulated/floor/plating, /area/turret_protected/aisat) "bRz" = ( @@ -43788,9 +43849,7 @@ }, /obj/machinery/meter, /obj/effect/decal/warning_stripes/south, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/manifold/visible/cyan, /turf/simulated/floor/plating, /area/turret_protected/aisat) "bSv" = ( @@ -44090,6 +44149,9 @@ dir = 1 }, /obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, /turf/simulated/floor/plating, /area/turret_protected/aisat) "bTd" = ( @@ -44265,7 +44327,9 @@ icon_state = "2-4"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -44297,7 +44361,6 @@ }, /area/turret_protected/aisat) "bTw" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -44315,6 +44378,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -44463,7 +44527,6 @@ }, /area/turret_protected/aisat) "bTK" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -44475,6 +44538,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -44568,13 +44632,13 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -44822,8 +44886,8 @@ }, /area/crew_quarters/chief) "bUq" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -44882,7 +44946,7 @@ }, /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Break Room"; - req_access_txt = "10" + req_access_txt = "24; 10" }, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -44911,7 +44975,6 @@ }, /area/engine/break_room) "bUw" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -44921,6 +44984,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -44969,32 +45033,32 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=engi2"; - location = "engi1" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=engi2"; + location = "engi1" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/primary/port) "bUC" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall4"; - location = "engi3" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall4"; + location = "engi3" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -45007,6 +45071,9 @@ icon_state = "1-8" }, /obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, /turf/simulated/floor/plating, /area/turret_protected/aisat) "bUG" = ( @@ -45042,13 +45109,13 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=engi1"; location = "hall3" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -45091,10 +45158,9 @@ /area/hallway/primary/central) "bUP" = ( /obj/effect/spawner/window/reinforced/plasma, -/obj/machinery/door/poddoor{ - icon_state = "open"; +/obj/machinery/door/poddoor/preopen{ id_tag = "transitlock"; - name = "Transit Tube Blast Doors" + name = "Transit Tube Lockdown" }, /turf/simulated/floor/plating, /area/engine/break_room) @@ -45224,13 +45290,13 @@ d2 = 4; icon_state = "1-4" }, +/obj/effect/landmark{ + name = "lightsout" + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall13"; location = "hall12" }, -/obj/effect/landmark{ - name = "lightsout" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -45245,13 +45311,13 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall11"; location = "hall10" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -45412,10 +45478,6 @@ /area/hallway/primary/starboard) "bVp" = ( /mob/living/simple_animal/bot/secbot/beepsky, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall12"; - location = "hall11" - }, /obj/item/radio/beacon, /obj/structure/cable{ d1 = 1; @@ -45428,6 +45490,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall12"; + location = "hall11" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -45942,13 +46008,13 @@ /area/engine/break_room) "bWw" = ( /obj/machinery/light, -/obj/machinery/newscaster/security_unit{ - pixel_y = -32 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, /obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 0; icon_state = "yellow" @@ -45977,7 +46043,7 @@ }, /obj/machinery/alarm{ dir = 1; - pixel_y = -22 + pixel_y = -24 }, /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ @@ -46885,6 +46951,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/chair/sofa/corp, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -47261,7 +47328,10 @@ /obj/machinery/power/smes{ charge = 2e+006 }, -/turf/simulated/floor/greengrid, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "dark" + }, /area/engine/engineering) "bZE" = ( /obj/structure/cable{ @@ -47271,7 +47341,10 @@ /obj/machinery/power/smes{ charge = 2e+006 }, -/turf/simulated/floor/greengrid, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "dark" + }, /area/engine/engineering) "bZG" = ( /obj/effect/decal/cleanable/dirt, @@ -47282,15 +47355,6 @@ }, /area/maintenance/port) "bZI" = ( -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "north bump"; - pixel_y = 24 - }, /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 3; @@ -47369,12 +47433,12 @@ /obj/structure/table/wood, /obj/item/folder, /obj/item/pen, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -47466,6 +47530,9 @@ /area/ntrep) "cac" = ( /obj/machinery/computer/secure_data, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, /turf/simulated/floor/carpet/black, /area/ntrep) "cad" = ( @@ -47516,6 +47583,9 @@ /area/blueshield) "cak" = ( /obj/machinery/computer/crew, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "bcarpet05" }, @@ -48111,6 +48181,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/chair/sofa/corp/corner{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -48201,11 +48274,6 @@ /turf/simulated/wall, /area/maintenance/port) "cbE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ dir = 4; @@ -48272,13 +48340,13 @@ /obj/structure/chair/comfy/black{ dir = 8 }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/camera{ c_tag = "Library North"; dir = 8 }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -48543,9 +48611,9 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/wood, /area/crew_quarters/captain/bedroom) "ccl" = ( @@ -48805,10 +48873,10 @@ /turf/simulated/floor/carpet, /area/magistrateoffice) "ccF" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/carpet, /area/magistrateoffice) "ccG" = ( @@ -49411,10 +49479,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/newscaster{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/newscaster/security_unit{ pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood, /area/lawoffice) "cen" = ( @@ -49468,6 +49536,9 @@ /obj/effect/landmark/start{ name = "Magistrate" }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, /turf/simulated/floor/carpet, /area/magistrateoffice) "ces" = ( @@ -49506,8 +49577,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/security{ - name = "Security-Storage Backroom"; - req_access = null; + name = "Evidence Storage"; req_access_txt = "63" }, /obj/machinery/door/firedoor, @@ -49921,12 +49991,12 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/machinery/camera{ c_tag = "Library Starboard" }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/wood, /area/library) "cfz" = ( @@ -49980,7 +50050,7 @@ "cfE" = ( /obj/structure/table/wood, /obj/machinery/recharger, -/obj/machinery/newscaster{ +/obj/machinery/newscaster/security_unit{ pixel_x = 32 }, /turf/simulated/floor/wood, @@ -50438,8 +50508,8 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/courtroom) "cgL" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -51873,16 +51943,6 @@ /turf/simulated/floor/plating, /area/maintenance/port) "cke" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -51983,7 +52043,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/filingcabinet, +/obj/structure/closet/secure_closet/hop2, /turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "ckp" = ( @@ -52018,6 +52078,7 @@ /obj/machinery/ai_status_display{ pixel_x = 32 }, +/obj/structure/filingcabinet, /turf/simulated/floor/wood, /area/crew_quarters/heads/hop) "ckt" = ( @@ -52141,9 +52202,8 @@ }, /area/medical/research) "ckI" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +/obj/structure/railing/corner{ + dir = 1 }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -52694,11 +52754,11 @@ }, /area/library) "clI" = ( +/obj/structure/bed, +/obj/item/bedsheet/hop, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/structure/bed, -/obj/item/bedsheet/hop, /turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clJ" = ( @@ -52875,10 +52935,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/teleporter) "cma" = ( @@ -53022,7 +53082,7 @@ /turf/simulated/floor/plasteel{ icon_state = "white" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "cmv" = ( /obj/structure/cable{ d1 = 1; @@ -53133,10 +53193,10 @@ /area/engine/engineering) "cmM" = ( /obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/engine/engineering) "cmN" = ( @@ -53367,10 +53427,10 @@ /area/library) "cnn" = ( /obj/structure/table/wood, +/obj/machinery/computer/library/checkout, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/machinery/computer/library/checkout, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -53617,6 +53677,7 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard2) "cnS" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/structure/plasticflaps{ opacity = 1 }, @@ -53624,7 +53685,6 @@ codes_txt = "delivery;dir=1"; location = "Security" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/security/range) "cnT" = ( @@ -53735,7 +53795,7 @@ /area/engine/engineering) "cog" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/the_singularitygen, +/obj/machinery/the_singularitygen/tesla, /turf/simulated/floor/plating, /area/engine/engineering) "coh" = ( @@ -53807,11 +53867,6 @@ /obj/effect/decal/warning_stripes/northeast, /turf/simulated/floor/plasteel, /area/engine/engine_smes) -"cop" = ( -/obj/machinery/the_singularitygen, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, -/area/engine/engine_smes) "coq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, @@ -54297,7 +54352,6 @@ }, /area/engine/engineering) "cpt" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; @@ -54311,6 +54365,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -54444,10 +54499,10 @@ }, /area/toxins/xenobiology) "cpH" = ( +/obj/effect/decal/cleanable/cobweb, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/wood, /area/library) "cpJ" = ( @@ -55091,11 +55146,6 @@ /obj/effect/decal/warning_stripes/northeast, /turf/simulated/floor/plating/airless, /area/space/nearstation) -"cqP" = ( -/obj/machinery/the_singularitygen/tesla, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, -/area/engine/engine_smes) "cqQ" = ( /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plating/airless, @@ -56064,10 +56114,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/landmark{ name = "lightsout" }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -56460,11 +56510,11 @@ /area/library) "ctL" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = 32 }, +/obj/item/storage/fancy/candle_box/full, +/obj/item/storage/fancy/candle_box/full, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -57305,12 +57355,12 @@ /area/library) "cvo" = ( /obj/structure/cult/archives, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -57342,12 +57392,12 @@ }, /area/library) "cvr" = ( -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -58121,8 +58171,8 @@ /turf/simulated/floor/wood, /area/assembly/showroom) "cxd" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -58727,6 +58777,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -59305,7 +59356,6 @@ }, /area/maintenance/port) "czu" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -59313,6 +59363,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -60338,6 +60389,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/gateway) "cBE" = ( @@ -61080,11 +61132,11 @@ /area/crew_quarters/fitness) "cDs" = ( /obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -61182,9 +61234,6 @@ /area/engine/engine_smes) "cDC" = ( /obj/structure/table/reinforced, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/item/stack/sheet/plasteel{ amount = 25 }, @@ -61194,6 +61243,9 @@ pixel_y = -3 }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel, /area/engine/engine_smes) "cDD" = ( @@ -61419,8 +61471,7 @@ "cEj" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, @@ -61513,6 +61564,8 @@ /obj/machinery/door/airlock/glass{ name = "Cabin" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -61552,12 +61605,14 @@ /turf/simulated/wall/r_wall/rust, /area/engine/engineering) "cEB" = ( -/obj/structure/plasticflaps, +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps{ + opacity = 1 + }, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=1"; location = "Engineering" }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/engine/engineering) "cEC" = ( @@ -61758,7 +61813,7 @@ dir = 1; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "cFe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -62094,26 +62149,8 @@ /turf/simulated/floor/plasteel, /area/maintenance/port) "cFN" = ( -/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ - id_tag = "sw_maint_airlock"; - pixel_y = 25; - tag_airpump = "sw_maint_pump"; - tag_chamber_sensor = "sw_maint_sensor"; - tag_exterior_door = "sw_maint_outer"; - tag_interior_door = "sw_maint_inner" - }, -/obj/machinery/airlock_sensor{ - id_tag = "sw_maint_sensor"; - pixel_y = 33 - }, -/obj/effect/decal/warning_stripes/yellow, -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1379; - id_tag = "sw_maint_pump" - }, -/turf/simulated/floor/plasteel, -/area/maintenance/port) +/turf/simulated/wall/mineral/titanium, +/area/shuttle/pod_4) "cFO" = ( /obj/effect/decal/warning_stripes/yellow, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -62122,19 +62159,17 @@ }, /area/maintenance/port) "cFP" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1379; - master_tag = "sw_maint_airlock"; - name = "interior access button"; - pixel_x = -24; - pixel_y = 24 +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod4"; + name = "escape pod 4" }, -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 10 +/obj/machinery/door/airlock/titanium{ + id_tag = "s_docking_airlock"; + name = "Escape Pod Hatch" }, -/turf/simulated/floor/plating, -/area/maintenance/port) +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_4) "cFR" = ( /obj/structure/grille{ density = 0; @@ -62635,14 +62670,14 @@ /turf/simulated/floor/plating, /area/maintenance/port) "cGw" = ( -/obj/machinery/door/airlock/external{ - frequency = 1379; - id_tag = "sw_maint_outer"; - locked = 1; - name = "West Maintenance External Access" +/obj/item/radio/intercom{ + pixel_y = 25 }, -/turf/simulated/floor/plasteel, -/area/maintenance/port) +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_4) "cGx" = ( /obj/structure/cable{ d1 = 4; @@ -62679,13 +62714,13 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall6"; location = "hall5" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -62756,15 +62791,15 @@ tag = "90Curve" }, /obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall10"; - location = "hall9" - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall10"; + location = "hall9" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -62787,7 +62822,7 @@ /obj/structure/disposalpipe/sortjunction{ dir = 1; name = "Medbay Junction"; - sortType = 13 + sortType = 9 }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -62813,7 +62848,7 @@ dir = 1; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "cGI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -63044,15 +63079,16 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/fitness) "cHe" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/unary/portables_connector{ - dir = 1 +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutral" +/obj/machinery/light, +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/area/maintenance/port) +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_4) "cHi" = ( /obj/structure/cable{ d1 = 1; @@ -63539,9 +63575,9 @@ initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -63553,18 +63589,9 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/fitness) "cIu" = ( -/obj/machinery/door/airlock/external{ - frequency = 1379; - id_tag = "sw_maint_inner"; - locked = 1; - name = "West Maintenance External Access"; - req_access_txt = "10;13" - }, -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 4 - }, +/obj/effect/spawner/window/shuttle, /turf/simulated/floor/plating, -/area/maintenance/port) +/area/shuttle/pod_4) "cIv" = ( /obj/structure/girder, /turf/simulated/floor/plasteel{ @@ -63837,8 +63864,8 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cJm" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/crew_quarters/fitness) "cJn" = ( @@ -63865,16 +63892,30 @@ /turf/simulated/floor/plasteel, /area/assembly/chargebay) "cJr" = ( -/obj/machinery/vending/medical, +/obj/structure/table/glass, +/obj/item/tank/internals/emergency_oxygen/nitrogen{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/tank/internals/emergency_oxygen/nitrogen{ + pixel_x = 5 + }, +/obj/item/tank/internals/emergency_oxygen/plasma{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/tank/internals/emergency_oxygen/plasma{ + pixel_x = -5 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, /area/medical/medbay2) "cJs" = ( +/obj/structure/closet/secure_closet/medical3, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/structure/closet/secure_closet/medical3, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -64025,10 +64066,10 @@ /turf/simulated/floor/plating, /area/maintenance/port) "cJL" = ( -/obj/machinery/shieldgen, -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plasteel, -/area/maintenance/port) +/obj/machinery/door/airlock/external, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/hallway/secondary/entry) "cJM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/airlock/atmos{ @@ -64048,6 +64089,7 @@ /area/maintenance/port) "cJP" = ( /obj/effect/decal/warning_stripes/west, +/obj/machinery/shieldgen, /turf/simulated/floor/plasteel, /area/maintenance/port) "cJR" = ( @@ -64112,10 +64154,10 @@ /area/maintenance/electrical) "cKa" = ( /obj/structure/table/reinforced, +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/maintenance/electrical) "cKb" = ( @@ -64269,7 +64311,9 @@ }, /area/medical/research) "cKx" = ( -/obj/structure/chair, +/obj/structure/chair/office/light{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -64283,7 +64327,14 @@ }, /area/medical/cmo) "cKz" = ( -/obj/structure/chair, +/obj/item/twohanded/required/kirbyplants, +/turf/simulated/floor/plasteel{ + icon_state = "bluecorner" + }, +/area/hallway/primary/aft) +"cKA" = ( +/obj/item/paicard, +/obj/structure/chair/sofa/corp/right, /obj/effect/landmark/start{ name = "Civilian" }, @@ -64292,43 +64343,29 @@ icon_state = "whitepurplecorner" }, /area/medical/research) -"cKA" = ( -/obj/structure/table, -/obj/item/paicard, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "whitepurplecorner" - }, -/area/medical/research) "cKB" = ( -/obj/item/twohanded/required/kirbyplants, /obj/machinery/light{ dir = 1; on = 1 }, +/obj/structure/chair/sofa/corp, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurple" }, /area/medical/research) "cKC" = ( -/obj/structure/table, -/obj/item/stack/cable_coil/random, -/obj/item/assembly/igniter, -/obj/item/assembly/timer{ - pixel_x = 4; - pixel_y = 4 - }, +/obj/structure/chair/sofa/corp/left, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" }, /area/medical/research) "cKD" = ( -/obj/structure/chair, +/obj/structure/railing/corner, +/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "whitepurplecorner" + icon_state = "white" }, /area/medical/research) "cKE" = ( @@ -64357,6 +64394,12 @@ /obj/structure/table, /obj/item/clothing/gloves/color/latex, /obj/item/clothing/glasses/science, +/obj/item/assembly/timer{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/assembly/igniter, +/obj/item/stack/cable_coil/random, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -64367,16 +64410,16 @@ /turf/simulated/wall, /area/medical/research) "cKM" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags, -/obj/item/pen, +/obj/structure/chair/sofa/corp/corner{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" }, /area/medical/medbay) "cKN" = ( -/obj/structure/chair, +/obj/structure/chair/sofa/corp/left, /obj/effect/landmark/start{ name = "Civilian" }, @@ -64392,15 +64435,18 @@ }, /area/medical/medbay) "cKP" = ( -/obj/structure/chair, +/obj/structure/chair/comfy/teal, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" }, /area/medical/medbay) "cKQ" = ( -/obj/structure/table, -/obj/item/stack/medical/bruise_pack/advanced, +/obj/structure/table/holotable, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -6; + pixel_y = 6 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" @@ -64410,30 +64456,33 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/vending/medical, +/obj/structure/chair/comfy/teal, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" }, /area/medical/medbay) "cKS" = ( -/obj/structure/table, -/obj/item/stack/medical/ointment/advanced, +/obj/structure/table/tray, +/obj/item/stack/medical/bruise_pack/advanced{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/stack/medical/ointment/advanced{ + pixel_x = 4; + pixel_y = 5 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitebluecorner" }, /area/medical/medbay) "cKT" = ( -/obj/structure/chair, -/obj/effect/landmark/start{ - name = "Civilian" - }, +/obj/structure/railing, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "whitebluecorner" + icon_state = "white" }, -/area/medical/medbay) +/area/medical/research) "cKU" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ @@ -64448,7 +64497,10 @@ }, /area/medical/medbay) "cKW" = ( -/obj/structure/chair, +/obj/structure/chair/comfy/teal, +/obj/effect/landmark/start{ + name = "Civilian" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitebluecorner" @@ -64481,7 +64533,7 @@ /obj/effect/spawner/window/reinforced, /obj/machinery/door/firedoor, /turf/simulated/floor/plating, -/area/maintenance/starboard) +/area/medical/psych) "cLb" = ( /obj/machinery/door/airlock/medical{ id_tag = "psychfoyer"; @@ -64490,12 +64542,8 @@ }, /obj/machinery/door/firedoor, /turf/simulated/floor/wood, -/area/maintenance/starboard) +/area/hallway/primary/central) "cLd" = ( -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, /obj/machinery/power/apc{ dir = 8; name = "west bump"; @@ -64506,6 +64554,16 @@ dir = 4; network = list("SS13","Medical") }, +/obj/structure/table/glass, +/obj/item/storage/box/autoinjectors{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/iv_bags, +/obj/item/storage/box/pillbottles{ + pixel_x = -5; + pixel_y = -5 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluefull" }, @@ -64671,6 +64729,9 @@ pixel_y = 28 }, /obj/machinery/cryopod, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -64760,8 +64821,7 @@ /obj/item/clothing/gloves/color/black, /obj/item/wrench, /obj/item/crowbar/red, -/obj/machinery/light/small, -/obj/effect/decal/warning_stripes/southwest, +/obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, /area/maintenance/port) "cLD" = ( @@ -64987,8 +65047,13 @@ /area/toxins/misc_lab) "cMd" = ( /obj/structure/table, -/obj/item/folder/white, -/obj/item/assembly/infra, +/obj/item/folder/white{ + pixel_y = 12 + }, +/obj/machinery/cell_charger{ + pixel_x = -4 + }, +/obj/item/stock_parts/cell/high, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -65091,7 +65156,9 @@ }, /area/medical/research) "cMo" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/structure/chair/sofa/corp/right{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" @@ -65194,7 +65261,14 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "cMF" = ( -/obj/structure/plasticflaps, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + dir = 8; + location = "Medbay" + }, /turf/simulated/floor/plasteel, /area/medical/medbay2) "cMG" = ( @@ -65229,11 +65303,11 @@ /area/crew_quarters/sleep) "cMN" = ( /obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/item/cane, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/storage/briefcase, -/obj/item/cane, /turf/simulated/floor/carpet, /area/crew_quarters/sleep) "cMO" = ( @@ -65243,14 +65317,14 @@ /turf/simulated/floor/carpet, /area/crew_quarters/sleep) "cMP" = ( -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/obj/machinery/cryopod/right, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ - icon_state = "freezerfloor" + dir = 8; + icon_state = "neutralfull" }, -/area/crew_quarters/sleep) +/area/hallway/secondary/entry) "cMQ" = ( /obj/machinery/vending/snack, /obj/effect/decal/warning_stripes/yellow, @@ -65613,9 +65687,13 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; initialize_directions = 11 }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/stock_parts/cell/high, /turf/simulated/floor/plasteel{ icon_state = "whitepurple" }, @@ -65627,9 +65705,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - icon_state = "whitepurple" - }, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/grass, /area/medical/research) "cNH" = ( /obj/effect/landmark{ @@ -65641,9 +65719,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - icon_state = "whitepurple" - }, +/turf/simulated/floor/grass, /area/medical/research) "cNI" = ( /obj/effect/decal/cleanable/dirt, @@ -65656,12 +65732,15 @@ }, /area/maintenance/apmaint) "cNJ" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/paicard, /turf/simulated/floor/plasteel{ icon_state = "whitepurple" }, @@ -65791,6 +65870,21 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/rack/holorack, +/obj/item/paper/pamphlet{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/paper/pamphlet{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/paper/pamphlet{ + pixel_x = -3 + }, +/obj/item/paper/pamphlet{ + pixel_x = 10 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -65807,6 +65901,7 @@ dir = 1; icon_state = "pipe-j2" }, +/obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -65914,9 +66009,6 @@ /area/medical/psych) "cOd" = ( /obj/structure/table, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/item/storage/box/bodybags{ pixel_x = 5; pixel_y = 5 @@ -65927,6 +66019,9 @@ pixel_x = 5; pixel_y = 5 }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" @@ -66049,11 +66144,11 @@ /area/maintenance/starboard) "cOp" = ( /obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/paper_bin, -/obj/item/pen, /turf/simulated/floor/wood, /area/crew_quarters/sleep) "cOq" = ( @@ -66133,14 +66228,12 @@ /turf/simulated/floor/plasteel, /area/maintenance/electrical) "cOB" = ( -/obj/machinery/atmospherics/binary/volume_pump{ - name = "Ports to Distro" +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 8 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "caution" - }, -/area/maintenance/electrical) +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/plasteel, +/area/atmos) "cOC" = ( /obj/structure/table/reinforced, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -66161,7 +66254,6 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -66169,6 +66261,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -66437,8 +66530,13 @@ }, /area/medical/research) "cPq" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/gps, +/obj/item/flash{ + pixel_x = -5 }, /turf/simulated/floor/plasteel{ dir = 1; @@ -66446,10 +66544,8 @@ }, /area/medical/research) "cPr" = ( -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "whitepurple" - }, +/obj/structure/flora/bush, +/turf/simulated/floor/grass, /area/medical/research) "cPs" = ( /obj/structure/disposalpipe/segment{ @@ -66460,9 +66556,10 @@ }, /area/maintenance/apmaint) "cPt" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 +/obj/structure/railing{ + dir = 8 }, +/obj/structure/table/glass, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurple" @@ -66493,6 +66590,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -66686,16 +66784,10 @@ /turf/space, /area/space/nearstation) "cPY" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1379; - master_tag = "sw_maint_airlock"; - name = "exterior access button"; - pixel_x = 24; - pixel_y = 24 +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" }, -/obj/structure/lattice/catwalk, -/turf/space, /area/space/nearstation) "cPZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -66738,9 +66830,6 @@ /obj/structure/toilet{ dir = 4 }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/effect/landmark{ name = "xeno_spawn"; pixel_x = -1 @@ -66748,6 +66837,9 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plating, /area/medical/medbay3) "cQd" = ( @@ -66873,13 +66965,9 @@ /turf/simulated/floor/plating, /area/crew_quarters/fitness) "cQs" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, /obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel, -/area/maintenance/port) +/area/hallway/secondary/entry) "cQu" = ( /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -66888,10 +66976,12 @@ }, /area/maintenance/port) "cQv" = ( -/obj/machinery/space_heater, -/obj/effect/decal/warning_stripes/northeast, +/obj/structure/sign/pods{ + pixel_x = -32 + }, +/obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, -/area/maintenance/port) +/area/hallway/secondary/entry) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -67033,10 +67123,10 @@ /obj/item/stack/sheet/mineral/plasma, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/dropper, +/obj/effect/decal/warning_stripes/north, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, /area/toxins/xenobiology) "cQK" = ( @@ -67453,10 +67543,8 @@ /turf/simulated/floor/plating, /area/maintenance/starboardsolar) "cRD" = ( -/obj/structure/rack, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, -/area/maintenance/port) +/turf/simulated/wall/mineral/titanium, +/area/shuttle/pod_2) "cRE" = ( /obj/machinery/light/small{ dir = 8 @@ -67757,6 +67845,7 @@ /obj/item/airlock_electronics, /obj/item/stack/sheet/glass, /obj/item/assembly/signaler, +/obj/item/assembly/infra, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -67772,10 +67861,7 @@ }, /area/medical/research) "cSp" = ( -/obj/structure/table, /obj/machinery/light, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -67794,32 +67880,37 @@ }, /area/toxins/xenobiology) "cSr" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" + icon_state = "white" }, /area/medical/research) "cSs" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/table/glass, +/obj/item/book/random{ + pixel_x = 2; + pixel_y = 4 }, -/obj/machinery/disposal, /turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" + icon_state = "white" }, -/area/medical/research) +/area/medical/medbay) "cSt" = ( /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, /area/medical/research) "cSu" = ( -/obj/machinery/autolathe, -/turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/grass, /area/medical/research) "cSv" = ( /obj/structure/table, @@ -67918,9 +68009,7 @@ }, /area/medical/medbay) "cSG" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, +/obj/machinery/vending/coffee, /turf/simulated/floor/plasteel{ icon_state = "whitebluecorner" }, @@ -68012,6 +68101,7 @@ /turf/simulated/wall, /area/medical/medbay2) "cSP" = ( +/obj/machinery/vending/medical, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68058,7 +68148,7 @@ "cST" = ( /obj/structure/sink{ dir = 4; - pixel_x = 10 + pixel_x = 12 }, /obj/effect/decal/cleanable/vomit, /obj/effect/decal/cleanable/dirt, @@ -68163,9 +68253,9 @@ }, /area/crew_quarters/fitness) "cTg" = ( -/obj/effect/spawner/random_spawners/wall_rusted_probably, -/turf/simulated/wall/rust, -/area/maintenance/port) +/obj/effect/spawner/window/shuttle, +/turf/simulated/floor/plating, +/area/shuttle/pod_2) "cTh" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 1 @@ -68174,12 +68264,15 @@ /turf/simulated/floor/plasteel, /area/maintenance/electrical) "cTi" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/bucket, +/obj/item/bikehorn/rubberducky, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, /area/maintenance/port) "cTj" = ( -/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/closet/toolcloset, /turf/simulated/floor/plating, /area/maintenance/electrical) "cTk" = ( @@ -68431,8 +68524,8 @@ dir = 4; initialize_directions = 11 }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68623,7 +68716,7 @@ /turf/simulated/floor/plating, /area/medical/medbay) "cTZ" = ( -/obj/machinery/smartfridge/secure/chemistry, +/obj/machinery/smartfridge/medbay, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68825,10 +68918,7 @@ /obj/machinery/defibrillator_mount/loaded{ pixel_y = 30 }, -/obj/item/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner" - }, +/obj/item/reagent_containers/spray/cleaner, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -69093,14 +69183,28 @@ }, /area/crew_quarters/fitness) "cUP" = ( -/obj/structure/mopbucket, -/obj/item/mop, -/turf/simulated/floor/plating, -/area/maintenance/port) +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_2) "cUQ" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/simulated/floor/plating, -/area/maintenance/port) +/obj/item/radio/intercom{ + dir = 4; + pixel_x = 28 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_2) "cUR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/sign/securearea, @@ -69177,9 +69281,9 @@ }, /area/toxins/xenobiology) "cUX" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -69367,9 +69471,6 @@ }, /area/toxins/lab) "cVy" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/structure/table, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty{ @@ -69378,6 +69479,9 @@ }, /obj/item/wrench, /obj/item/clothing/glasses/welding, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -69409,19 +69513,19 @@ "cVE" = ( /obj/structure/table/glass, /obj/item/folder/white, +/obj/item/assembly/timer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ + pixel_x = -3; + pixel_y = -3 + }, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = -3 - }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "whiteyellow" @@ -69664,18 +69768,21 @@ }, /area/medical/medbay3) "cWk" = ( -/obj/structure/table, -/obj/item/bikehorn/rubberducky, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, +/obj/structure/lattice, +/turf/simulated/wall/r_wall, /area/maintenance/port) "cWl" = ( /obj/effect/decal/warning_stripes/east, +/obj/machinery/shieldgen, /turf/simulated/floor/plasteel, /area/maintenance/port) "cWm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/unary/portables_connector{ + layer = 2 + }, /turf/simulated/floor/plasteel, /area/maintenance/port) "cWn" = ( @@ -69815,8 +69922,8 @@ }, /area/toxins/xenobiology) "cWz" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -69970,12 +70077,9 @@ }, /area/toxins/xenobiology) "cWL" = ( -/obj/structure/table, /obj/machinery/status_display{ pixel_y = -32 }, -/obj/item/gps, -/obj/item/flash, /obj/machinery/camera{ c_tag = "Research Lobby"; dir = 1; @@ -70286,9 +70390,6 @@ }, /area/medical/medbay3) "cXz" = ( -/obj/machinery/hologram/holopad{ - pixel_y = -16 - }, /obj/effect/landmark/start{ name = "Medical Doctor" }, @@ -70303,6 +70404,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/hologram/holopad{ + pixel_y = -16 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -70353,8 +70457,8 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cXF" = ( -/obj/machinery/hologram/holopad, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "redbluefull" }, @@ -70422,9 +70526,25 @@ }, /area/crew_quarters/fitness) "cXR" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/light/small, -/turf/simulated/floor/plating, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "sw_maint_airlock"; + pixel_y = 25; + tag_airpump = "sw_maint_pump"; + tag_chamber_sensor = "sw_maint_sensor"; + tag_exterior_door = "sw_maint_outer"; + tag_interior_door = "sw_maint_inner" + }, +/obj/machinery/airlock_sensor{ + id_tag = "sw_maint_sensor"; + pixel_y = 33 + }, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + frequency = 1379; + id_tag = "sw_maint_pump" + }, +/turf/simulated/floor/plasteel, /area/maintenance/port) "cXS" = ( /obj/structure/cable{ @@ -70442,6 +70562,9 @@ /area/maintenance/port) "cXT" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, /turf/simulated/floor/plasteel, /area/maintenance/port) "cXU" = ( @@ -70709,8 +70832,14 @@ }, /area/medical/medbay) "cYM" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/structure/table, /obj/machinery/light/small, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner, /turf/simulated/floor/plasteel{ icon_state = "whitebluecorner" }, @@ -70789,6 +70918,11 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 5 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -71056,10 +71190,10 @@ d2 = 8; icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/hologram/holopad{ pixel_x = -16 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -71984,10 +72118,10 @@ "dbA" = ( /obj/item/hemostat, /obj/effect/decal/cleanable/dirt, +/obj/structure/table/tray, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/structure/table/tray, /turf/simulated/floor/plating, /area/medical/surgery) "dbB" = ( @@ -72342,11 +72476,6 @@ dir = 4; initialize_directions = 11 }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -72468,10 +72597,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/hologram/holopad, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "white" @@ -73147,18 +73276,13 @@ }, /area/hallway/primary/aft) "ddL" = ( -/obj/machinery/smartfridge/medbay, +/obj/machinery/smartfridge/secure/medbay, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door/window/westleft{ - dir = 4; - name = "Chemistry Desk"; - req_one_access_txt = "5;33" - }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -73399,7 +73523,9 @@ }, /area/medical/medbay) "deh" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "whitebluecorner" }, @@ -73748,10 +73874,10 @@ /obj/item/wrench, /obj/item/crowbar, /obj/item/clothing/mask/gas, +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -74628,6 +74754,7 @@ /obj/item/storage/box/bodybags, /obj/item/pen, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/item/reagent_containers/spray/cleaner, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -74713,6 +74840,7 @@ }, /obj/item/screwdriver, /obj/effect/decal/warning_stripes/north, +/obj/item/reagent_containers/spray/cleaner, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -74935,11 +75063,8 @@ /obj/structure/girder, /obj/structure/grille, /obj/machinery/door/poddoor{ - density = 0; - icon_state = "pdoor0"; id_tag = "maintrobotics"; - name = "Decrepit Blast Door"; - opacity = 0 + name = "Decrepit Blast Door" }, /obj/effect/decal/warning_stripes/east, /obj/effect/decal/warning_stripes/west, @@ -75069,11 +75194,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75090,10 +75216,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, +/obj/structure/table/reinforced, +/obj/effect/decal/warning_stripes/northwest, +/obj/item/book/manual/experimentor, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75110,9 +75235,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" }, +/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75145,7 +75272,8 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -75157,19 +75285,16 @@ d2 = 8; icon_state = "1-8" }, -/obj/structure/table/reinforced, -/obj/item/taperecorder, -/obj/item/stack/sheet/mineral/plasma, -/obj/effect/decal/warning_stripes/northwest, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/table/reinforced, +/obj/item/hand_labeler, +/obj/item/stack/packageWrap, +/obj/effect/decal/warning_stripes/northeast, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75197,40 +75322,24 @@ }, /area/toxins/xenobiology) "dhT" = ( -/obj/machinery/hologram/holopad, -/obj/structure/chair/office/light, -/obj/effect/landmark/start{ - name = "Scientist" - }, -/obj/effect/decal/warning_stripes/north, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/toxins/explab) "dhU" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/folder/white, -/obj/item/pen, -/obj/effect/decal/warning_stripes/northeast, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75294,7 +75403,6 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4; @@ -75306,6 +75414,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/medical/research) "dia" = ( @@ -75530,10 +75639,10 @@ /turf/simulated/floor/plasteel, /area/medical/paramedic) "diy" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -75866,11 +75975,8 @@ /obj/structure/girder, /obj/structure/grille, /obj/machinery/door/poddoor{ - density = 0; - icon_state = "pdoor0"; id_tag = "maintrobotics"; - name = "Decrepit Blast Door"; - opacity = 0 + name = "Decrepit Blast Door" }, /obj/effect/decal/warning_stripes/east, /obj/effect/decal/warning_stripes/west, @@ -75893,11 +75999,12 @@ icon_state = "4-8" }, /obj/effect/decal/warning_stripes/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -75994,10 +76101,9 @@ }, /area/medical/research) "djn" = ( -/obj/structure/table, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -76005,8 +76111,12 @@ /area/toxins/explab) "djo" = ( /obj/effect/decal/warning_stripes/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door_control{ + id = "experimentor"; + name = "Experimentor Control"; + pixel_x = -6; + pixel_y = -26 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -76028,12 +76138,9 @@ }, /area/crew_quarters/hor) "djs" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/white, -/obj/item/clothing/gloves/color/white, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/effect/decal/warning_stripes/northwest, +/obj/machinery/computer/rdconsole/experiment{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -76041,18 +76148,17 @@ /area/toxins/explab) "djt" = ( /obj/structure/table/reinforced, -/obj/item/book/manual/experimentor, -/obj/item/healthanalyzer, -/obj/effect/decal/warning_stripes/northwestcorner, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel{ - icon_state = "whitepurple" + dir = 8; + icon_state = "whitepurplecorner" }, /area/toxins/explab) "dju" = ( -/obj/effect/decal/warning_stripes/yellow/hollow, -/obj/machinery/computer/rdconsole/experiment{ - dir = 1 - }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, @@ -76062,20 +76168,20 @@ /turf/simulated/wall, /area/toxins/explab) "djw" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/decal/warning_stripes/northeastcorner, +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, /area/toxins/explab) "djx" = ( -/obj/structure/table/reinforced, /obj/machinery/light, -/obj/item/paper_bin, -/obj/item/pen, -/obj/effect/decal/warning_stripes/northeast, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, @@ -76616,10 +76722,10 @@ "dkx" = ( /obj/machinery/light, /obj/effect/decal/warning_stripes/yellow/hollow, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal, +/obj/structure/table/reinforced, +/obj/item/taperecorder, +/obj/item/stack/sheet/mineral/plasma, +/obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -76664,30 +76770,29 @@ /turf/simulated/floor/plating, /area/maintenance/apmaint) "dkD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door_control{ - id = "experimentor"; - name = "Experimentor Control"; - pixel_x = -26 +/obj/machinery/atmospherics/trinary/mixer{ + dir = 1; + name = "air mixer"; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + target_pressure = 4500 }, -/obj/machinery/door/poddoor/preopen{ - id_tag = "experimentor"; - name = "Experimentor Blast Door" +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/engine, -/area/toxins/explab) +/area/atmos) "dkE" = ( /obj/structure/sign/securearea, /turf/simulated/wall/r_wall, /area/toxins/explab) "dkF" = ( +/obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor/preopen{ id_tag = "experimentor"; name = "Experimentor Blast Door" }, -/obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/toxins/explab) "dkH" = ( @@ -76767,10 +76872,10 @@ }, /area/crew_quarters/hor) "dkR" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -76911,13 +77016,13 @@ /turf/simulated/floor/plasteel, /area/assembly/chargebay) "dlb" = ( -/obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Roboticist" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/assembly/chargebay) "dlc" = ( @@ -77210,10 +77315,6 @@ /area/maintenance/port) "dlO" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/engine, /area/toxins/explab) "dlP" = ( @@ -77282,13 +77383,13 @@ }, /area/crew_quarters/hor) "dlW" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -77738,7 +77839,6 @@ }, /area/maintenance/port) "dnc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/r_n_d/experimentor, /turf/simulated/floor/engine, /area/toxins/explab) @@ -77893,6 +77993,12 @@ /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 4 }, +/obj/machinery/computer/general_air_control{ + dir = 4; + frequency = 1222; + name = "Bomb Mix Monitor"; + sensors = list("burn_sensor" = "Burn Mix") + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurplecorner" @@ -78404,7 +78510,7 @@ /obj/machinery/light, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 + dir = 4 }, /turf/simulated/floor/engine, /area/toxins/explab) @@ -78975,14 +79081,15 @@ dir = 1 }, /obj/structure/table, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 5 + }, /obj/item/reagent_containers/spray/cleaner{ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner" }, -/obj/item/stack/medical/bruise_pack/advanced{ - pixel_x = -5; - pixel_y = 3 - }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -79072,9 +79179,6 @@ }, /obj/structure/table/reinforced, /obj/machinery/light, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/item/radio/intercom{ dir = 0; pixel_x = -28; @@ -79084,6 +79188,9 @@ department = "Research Director's Office" }, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -79387,7 +79494,6 @@ }, /area/medical/genetics) "dqA" = ( -/obj/machinery/hologram/holopad, /obj/effect/landmark/start{ name = "Geneticist" }, @@ -79398,6 +79504,7 @@ dir = 5 }, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -80479,12 +80586,12 @@ }, /area/medical/genetics) "dsY" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whiteblue" @@ -80507,6 +80614,10 @@ pixel_x = -32; pixel_y = -32 }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -80520,7 +80631,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, /turf/simulated/floor/plasteel{ icon_state = "whiteblue" }, @@ -80646,7 +80760,6 @@ }, /area/medical/surgery1) "dtn" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -80654,6 +80767,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "darkblue" @@ -80666,7 +80780,6 @@ /turf/simulated/wall/r_wall, /area/medical/research) "dtq" = ( -/obj/machinery/hologram/holopad, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -80675,6 +80788,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkblue" @@ -80927,23 +81041,23 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4; initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "whitepurplefull" }, /area/toxins/mixing) "dtW" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/structure/closet/secure_closet/scientist, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/decal/warning_stripes/yellow, -/obj/structure/closet/secure_closet/scientist, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurple" @@ -80986,14 +81100,14 @@ /area/crew_quarters/hor) "dub" = ( /obj/structure/table/wood, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/item/radio/intercom{ dir = 4; pixel_x = 28 }, /obj/item/flashlight/lamp, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, @@ -81245,7 +81359,7 @@ "duB" = ( /obj/structure/sink{ dir = 4; - pixel_x = 11 + pixel_x = 12 }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -81603,7 +81717,7 @@ }, /obj/structure/sink{ dir = 4; - pixel_x = 11 + pixel_x = 12 }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -81723,12 +81837,12 @@ name = "Emergency NanoMed"; pixel_y = -32 }, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/machinery/photocopier/faxmachine{ department = "Chief Medical Officer's Office" }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -82266,6 +82380,10 @@ dir = 1; network = list("Medical","SS13") }, +/obj/item/reagent_containers/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -82451,10 +82569,10 @@ dir = 8; pixel_x = 24 }, +/obj/effect/decal/warning_stripes/southeast, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -83123,12 +83241,12 @@ /area/medical/medbay) "dyl" = ( /obj/item/twohanded/required/kirbyplants, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plating, /area/security/detectives_office) "dym" = ( @@ -83394,12 +83512,14 @@ /turf/simulated/floor/plasteel, /area/assembly/robotics) "dyP" = ( +/obj/effect/decal/warning_stripes/yellow, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=1"; location = "Robotics" }, -/obj/structure/plasticflaps, -/obj/effect/decal/warning_stripes/yellow, +/obj/structure/plasticflaps{ + opacity = 1 + }, /turf/simulated/floor/plasteel, /area/assembly/robotics) "dyR" = ( @@ -83518,10 +83638,10 @@ /turf/simulated/floor/plasteel, /area/maintenance/starboard) "dzj" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cmo" @@ -84042,13 +84162,13 @@ /turf/simulated/floor/plasteel, /area/assembly/robotics) "dzY" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/machinery/computer/operating{ dir = 1; name = "Robotics Operating Computer" }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -84183,12 +84303,12 @@ /area/medical/morgue) "dAp" = ( /obj/structure/table/glass, -/obj/machinery/newscaster{ - pixel_y = -32 - }, /obj/machinery/computer/med_data/laptop{ dir = 1 }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cmo" @@ -85340,15 +85460,15 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/electrical, /obj/item/screwdriver, /obj/item/multitool, /obj/item/clothing/head/welding, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -85389,11 +85509,6 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -86119,8 +86234,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /turf/simulated/floor/plating, /area/maintenance/apmaint) @@ -86214,11 +86328,6 @@ "dEZ" = ( /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, /area/hallway/primary/aft) "dFa" = ( @@ -86230,9 +86339,6 @@ }, /area/hallway/primary/aft) "dFb" = ( -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/light{ dir = 4 }, @@ -86240,6 +86346,9 @@ pixel_y = 24 }, /obj/item/twohanded/required/kirbyplants, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) "dFc" = ( @@ -86609,18 +86718,9 @@ /turf/simulated/floor/plasteel, /area/maintenance/apmaint) "dGh" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "west bump"; - pixel_x = -24 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -86629,11 +86729,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -86758,14 +86853,14 @@ /area/medical/virology) "dGx" = ( /obj/structure/table/glass, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/item/radio/intercom{ pixel_y = 28 }, /obj/item/paper_bin, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/newscaster{ + pixel_x = -32 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitegreencorner" @@ -87165,10 +87260,10 @@ "dHo" = ( /obj/structure/table/glass, /obj/item/flashlight/lamp, +/obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -87525,8 +87620,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, @@ -88175,15 +88269,15 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dJC" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/effect/decal/warning_stripes/north, /obj/structure/disposalpipe/sortjunction{ dir = 4; name = "Chapel Junction"; sortType = 17 }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dJD" = ( @@ -88398,11 +88492,11 @@ /area/chapel/office) "dKf" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/candle_box{ +/obj/item/storage/fancy/candle_box/full{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box/full, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -88752,8 +88846,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, @@ -88784,8 +88877,7 @@ "dLd" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /obj/structure/mirror{ pixel_x = -32 @@ -89086,10 +89178,6 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dLI" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=hall8"; - location = "hall7" - }, /obj/machinery/door/airlock/security/glass{ name = "Holding Area"; req_access_txt = "63" @@ -89110,6 +89198,10 @@ icon_state = "2-8" }, /obj/machinery/door/firedoor, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall8"; + location = "hall7" + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -89794,8 +89886,7 @@ "dNs" = ( /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /turf/simulated/floor/plasteel{ dir = 1; @@ -89915,11 +90006,11 @@ d2 = 8; icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -90176,6 +90267,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -90399,8 +90491,7 @@ }, /obj/structure/sink{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -12 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -90442,9 +90533,6 @@ }, /obj/structure/table/glass, /obj/item/paper_bin, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/camera{ c_tag = "Mining Dock External"; dir = 8 @@ -90453,6 +90541,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "whitegreencorner" @@ -90680,15 +90771,10 @@ /area/maintenance/apmaint) "dPu" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Public Access" - }, /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" +/obj/machinery/door/airlock/public/glass{ + name = "Public Access" }, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) @@ -91662,8 +91748,8 @@ }, /area/maintenance/apmaint) "dRn" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -91705,10 +91791,10 @@ /obj/item/clothing/gloves/color/black, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/mask/breath, +/obj/item/reagent_containers/food/drinks/coffee, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/item/reagent_containers/food/drinks/coffee, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -92232,8 +92318,8 @@ }, /area/chapel/office) "dSK" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -92550,6 +92636,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -92764,7 +92851,7 @@ /area/chapel/office) "dUf" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, +/obj/item/reagent_containers/food/drinks/bottle/holywater, /turf/simulated/floor/carpet, /area/chapel/office) "dUg" = ( @@ -93039,11 +93126,11 @@ /area/chapel/office) "dUL" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/candle_box{ +/obj/item/storage/fancy/candle_box/full{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box/full, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -93092,17 +93179,17 @@ /area/chapel/office) "dUQ" = ( /obj/structure/table/wood, -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/light{ dir = 4 }, -/obj/item/storage/fancy/candle_box{ +/obj/item/storage/fancy/candle_box/full{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box/full, +/obj/machinery/newscaster{ + pixel_x = 32 + }, /turf/simulated/floor/carpet, /area/chapel/office) "dUR" = ( @@ -93506,10 +93593,10 @@ }, /area/toxins/xenobiology) "dWu" = ( +/obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -93623,17 +93710,12 @@ /turf/simulated/floor/plating, /area/hallway/secondary/exit) "dWK" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4; initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -94135,13 +94217,13 @@ c_tag = "Chapel South"; dir = 1 }, -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -94164,6 +94246,9 @@ pixel_y = 24 }, /obj/effect/decal/warning_stripes/southwest, +/obj/machinery/newscaster{ + pixel_y = -30 + }, /turf/simulated/floor/plasteel, /area/hallway/secondary/exit) "dXQ" = ( @@ -94276,15 +94361,15 @@ }, /area/medical/genetics) "dYc" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, /obj/structure/table/glass, /obj/item/storage/box/beakers{ pixel_x = 5; pixel_y = 5 }, /obj/item/storage/box/masks, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -94656,10 +94741,10 @@ /area/chapel/office) "dYV" = ( /obj/structure/rack, +/obj/item/storage/secure/briefcase, /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/storage/secure/briefcase, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -94793,6 +94878,12 @@ }, /turf/simulated/floor/plasteel, /area/security/permasolitary) +"elb" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod" + }, +/turf/space, +/area/maintenance/port) "emr" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable, @@ -94803,6 +94894,24 @@ }, /turf/simulated/floor/plating, /area/security/prisonershuttle) +"emK" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 2; + id_tag = "researchdesk1"; + name = "Research Desk Shutters" + }, +/obj/machinery/autolathe, +/obj/machinery/door/window/southleft{ + name = "Research Lab Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/window/northleft, +/obj/structure/window/reinforced{ + dir = 8; + pixel_x = -4 + }, +/turf/simulated/floor/plating, +/area/toxins/lab) "eqc" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/vent_pump/on, @@ -94846,10 +94955,19 @@ /turf/simulated/floor/plasteel, /area/security/securearmoury) "esK" = ( -/obj/effect/spawner/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 4 }, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, /turf/simulated/floor/plating, /area/toxins/mixing) "euc" = ( @@ -94871,6 +94989,18 @@ }, /turf/simulated/floor/plasteel, /area/security/permasolitary) +"ewj" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) "ewF" = ( /obj/structure/cable{ d2 = 2; @@ -95139,7 +95269,7 @@ /turf/simulated/floor/plasteel{ icon_state = "white" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "fhF" = ( /turf/space, /area/shuttle/gamma/station) @@ -95148,6 +95278,7 @@ /obj/effect/landmark{ name = "revenantspawn" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/engine, /area/toxins/explab) "fjJ" = ( @@ -95227,6 +95358,19 @@ }, /turf/simulated/floor/plasteel, /area/security/seceqstorage) +"fxr" = ( +/obj/machinery/door/airlock/external{ + frequency = 1379; + id_tag = "sw_maint_inner"; + locked = 1; + name = "West Maintenance External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/maintenance/port) "fzQ" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable, @@ -95327,11 +95471,6 @@ name = "Security Checkpoint"; req_access_txt = "1" }, -/obj/machinery/door/window/brigdoor{ - dir = 3; - name = "Security Checkpoint"; - req_access_txt = "1" - }, /obj/item/folder/red, /obj/item/folder/red, /obj/machinery/door/poddoor{ @@ -95441,6 +95580,22 @@ }, /turf/simulated/floor/plating, /area/security/permabrig) +"giz" = ( +/obj/structure/table/glass, +/obj/item/book/random{ + pixel_y = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) +"gkk" = ( +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/secondary/exit) "glQ" = ( /obj/structure/window/reinforced{ dir = 8 @@ -95467,6 +95622,17 @@ "goP" = ( /turf/simulated/wall, /area/security/processing) +"gpU" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + dir = 8; + location = "Janitor" + }, +/turf/simulated/wall, +/area/janitor) "gpX" = ( /obj/effect/landmark{ name = "blobstart" @@ -95554,7 +95720,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes/north, /obj/machinery/light, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/quartermaster/storage) "gyY" = ( /obj/structure/cable{ @@ -95569,6 +95735,16 @@ }, /turf/simulated/floor/carpet, /area/assembly/showroom) +"gzU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "arrival" + }, +/area/hallway/secondary/entry) "gBV" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -95637,7 +95813,6 @@ /turf/simulated/floor/plating, /area/hallway/secondary/entry) "gJk" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/cable{ d1 = 2; @@ -95645,6 +95820,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -95706,6 +95882,17 @@ "gTW" = ( /turf/simulated/floor/plasteel, /area/security/securearmoury) +"gUi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/crew_quarters/sleep) "haD" = ( /obj/structure/cable{ d2 = 8; @@ -95734,6 +95921,10 @@ icon_state = "red" }, /area/security/seceqstorage) +"haY" = ( +/obj/structure/closet/wardrobe/atmospherics_yellow, +/turf/simulated/floor/plating, +/area/maintenance/electrical) "hbU" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -95822,6 +96013,13 @@ icon_state = "dark" }, /area/crew_quarters/bar) +"hlY" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ + dir = 4 + }, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/plasteel, +/area/atmos) "hmC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -95856,7 +96054,15 @@ /turf/simulated/floor/plasteel{ icon_state = "white" }, -/area/maintenance/starboard) +/area/hallway/primary/central) +"hsQ" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whiteblue" + }, +/area/medical/medbay) "hzb" = ( /obj/machinery/light{ dir = 4 @@ -95866,6 +96072,20 @@ icon_state = "redcorner" }, /area/security/permasolitary) +"hzl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/turret_protected/aisat) "hAi" = ( /obj/machinery/vending/scidrobe, /turf/simulated/floor/plasteel{ @@ -95889,7 +96109,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/quartermaster/storage) "hHM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -95913,6 +96133,9 @@ icon_state = "red" }, /area/security/brig) +"hJG" = ( +/turf/simulated/floor/plasteel/stairs, +/area/medical/research) "hLZ" = ( /obj/structure/table/glass, /obj/item/hemostat{ @@ -95933,6 +96156,10 @@ layer = 4; pixel_y = -32 }, +/obj/item/reagent_containers/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whiteblue" @@ -95951,6 +96178,19 @@ "hOL" = ( /turf/simulated/floor/carpet, /area/magistrateoffice) +"hPT" = ( +/obj/machinery/door/airlock/atmos/glass{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_one_access_txt = "24; 10" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "hTk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/rack, @@ -96052,6 +96292,16 @@ icon_state = "showroomfloor" }, /area/medical/surgery2) +"iiv" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery"; + location = "Science" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/simulated/wall, +/area/toxins/misc_lab) "iiM" = ( /obj/structure/window/reinforced{ dir = 8 @@ -96067,6 +96317,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/atmos) +"ijT" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/atmos) "ipD" = ( /obj/structure/closet/wardrobe/pjs, /turf/simulated/floor/plating, @@ -96163,19 +96422,15 @@ }, /area/medical/surgery2) "iIw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/newscaster{ + pixel_y = 32 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "arrival" }, -/area/hallway/primary/aft) +/area/hallway/secondary/entry) "iIY" = ( /obj/machinery/light{ dir = 8 @@ -96203,6 +96458,10 @@ icon_state = "whiteblue" }, /area/medical/surgery2) +"iLr" = ( +/obj/item/relic, +/turf/simulated/floor/engine, +/area/toxins/explab) "iLL" = ( /obj/structure/cable{ d1 = 4; @@ -96225,6 +96484,17 @@ /obj/structure/closet/emcloset, /turf/simulated/floor/plating, /area/maintenance/starboard) +"iPQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/simulated/floor/plating, +/area/maintenance/port) "iTV" = ( /obj/structure/cable{ d1 = 4; @@ -96265,7 +96535,7 @@ dir = 1; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "iXX" = ( /obj/structure/cable{ d1 = 1; @@ -96314,6 +96584,15 @@ }, /turf/simulated/floor/engine, /area/toxins/misc_lab) +"jdF" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluecorner" + }, +/area/medical/medbay) "jgO" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "Brig"; @@ -96386,7 +96665,7 @@ /turf/simulated/floor/plasteel{ icon_state = "white" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "jsV" = ( /obj/structure/cable{ d1 = 4; @@ -96479,7 +96758,6 @@ /turf/simulated/wall/r_wall, /area/security/evidence) "jIV" = ( -/obj/machinery/hologram/holopad, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/cable{ d1 = 1; @@ -96489,6 +96767,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, /area/security/seceqstorage) "jKp" = ( @@ -96511,7 +96790,7 @@ dir = 4; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "jLB" = ( /obj/effect/spawner/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -96572,6 +96851,28 @@ }, /turf/simulated/floor/plating, /area/security/seceqstorage) +"jYY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/obj/effect/decal/warning_stripes/yellow, +/obj/item/paper_bin, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) +"kdR" = ( +/obj/machinery/door/airlock/external{ + frequency = 1379; + id_tag = "sw_maint_outer"; + locked = 1; + name = "West Maintenance External Access" + }, +/turf/simulated/floor/plasteel, +/area/maintenance/port) "khY" = ( /obj/structure/cable{ d1 = 1; @@ -96628,7 +96929,7 @@ dir = 4; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "klk" = ( /obj/machinery/firealarm{ dir = 1; @@ -96708,15 +97009,11 @@ icon_state = "vault" }, /area/security/prisonershuttle) -"kBV" = ( -/obj/machinery/computer/arcade{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "dark" - }, -/area/maintenance/fore2) +"kyU" = ( +/obj/effect/spawner/window/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/maintenance/port) "kCi" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -96798,6 +97095,17 @@ icon_state = "showroomfloor" }, /area/medical/surgery2) +"kWO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) "kYe" = ( /obj/structure/cable{ d1 = 1; @@ -96836,6 +97144,16 @@ icon_state = "barber" }, /area/civilian/barber) +"lee" = ( +/obj/structure/table/glass, +/obj/item/grown/sunflower{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) "ljZ" = ( /obj/machinery/door/poddoor{ density = 0; @@ -96924,6 +97242,12 @@ icon_state = "grimy" }, /area/security/detectives_office) +"lxh" = ( +/obj/effect/decal/warning_stripes/southeast, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/maintenance/port) "lzY" = ( /obj/structure/table/wood, /obj/machinery/alarm{ @@ -97046,6 +97370,17 @@ icon_state = "dark" }, /area/turret_protected/aisat) +"lVT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/toxins/explab) "lZw" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -97061,6 +97396,11 @@ icon_state = "redcorner" }, /area/security/permasolitary) +"maf" = ( +/obj/structure/mopbucket, +/obj/item/mop, +/turf/simulated/floor/plating, +/area/maintenance/port) "meB" = ( /obj/structure/cable{ d1 = 1; @@ -97087,6 +97427,14 @@ icon_state = "dark" }, /area/security/interrogation) +"mfl" = ( +/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/thermomachine/freezer, +/turf/simulated/floor/plasteel, +/area/atmos) "mft" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor{ @@ -97242,6 +97590,17 @@ icon_state = "vault" }, /area/security/securearmoury) +"mrW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/starboard) "mtx" = ( /obj/item/radio/beacon, /turf/simulated/floor/plasteel/airless, @@ -97269,6 +97628,7 @@ /area/hallway/primary/starboard) "muI" = ( /obj/machinery/hologram/holopad, +/obj/structure/railing, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -97313,6 +97673,15 @@ icon_state = "whitepurple" }, /area/toxins/misc_lab) +"mzZ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/atmos) "mDm" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, @@ -97470,6 +97839,15 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/entry) +"mYH" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/crew_quarters/fitness) "mZY" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -97496,6 +97874,31 @@ /obj/item/seeds/ambrosia, /turf/simulated/floor/plating, /area/security/permabrig) +"ncs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/flora/ausbushes/lavendergrass, +/turf/simulated/floor/grass, +/area/medical/research) +"ncT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/sofa/corp, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) "ncZ" = ( /obj/machinery/light/small{ dir = 8 @@ -97523,6 +97926,15 @@ icon_state = "redcorner" }, /area/security/brig) +"neQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/aft) "nfo" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ @@ -97596,6 +98008,21 @@ /obj/item/seeds/orange, /turf/simulated/floor/plasteel, /area/security/permabrig) +"nqC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "nte" = ( /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 4 @@ -97615,8 +98042,8 @@ /area/security/warden) "nCz" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box/full, +/obj/item/storage/fancy/candle_box/full, /turf/simulated/floor/plating, /area/crew_quarters/theatre) "nDV" = ( @@ -97763,6 +98190,12 @@ icon_state = "dark" }, /area/medical/surgery1) +"nXf" = ( +/obj/machinery/computer/security/wooden_tv, +/turf/simulated/floor/plasteel{ + icon_state = "carpet" + }, +/area/security/detectives_office) "nYz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/firealarm{ @@ -97882,6 +98315,41 @@ icon_state = "neutral" }, /area/maintenance/fore2) +"oyG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/sofa/corp/corner, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whiteblue" + }, +/area/medical/medbay) +"ozX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) +"oAd" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whiteblue" + }, +/area/medical/medbay) "oBE" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/item/vending_refill/coffee, @@ -97938,6 +98406,20 @@ "oNd" = ( /turf/simulated/wall, /area/civilian/barber) +"oOe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/quartermaster/storage) "oQs" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ @@ -97985,6 +98467,31 @@ }, /turf/simulated/floor/plasteel, /area/security/brig) +"oXY" = ( +/obj/machinery/cryopod/right, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/crew_quarters/sleep) +"oZY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/atmos) "pcv" = ( /obj/structure/cable{ d1 = 1; @@ -98010,6 +98517,10 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) +"pfE" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/space) "pgF" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -98070,6 +98581,13 @@ icon_state = "white" }, /area/toxins/misc_lab) +"plm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/crew_quarters/sleep) "pnF" = ( /obj/structure/window/reinforced, /turf/space, @@ -98092,6 +98610,13 @@ icon_state = "redfull" }, /area/security/seceqstorage) +"pAC" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/maintenance/port) "pBz" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/clothing/suit/browntrenchcoat, @@ -98108,7 +98633,24 @@ dir = 1; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) +"pGk" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/railing{ + dir = 6; + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/twohanded/required/kirbyplants{ + pixel_y = 7 + }, +/obj/structure/railing/corner{ + dir = 9; + pixel_x = 2; + pixel_y = -28 + }, +/turf/simulated/floor/grass, +/area/medical/research) "pGr" = ( /obj/structure/cable{ d1 = 1; @@ -98129,6 +98671,29 @@ icon_state = "neutralfull" }, /area/hallway/secondary/exit) +"pML" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/medical/research) +"pOq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel, +/area/security/prisonershuttle) "pOB" = ( /obj/effect/decal/warning_stripes/east, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -98147,6 +98712,11 @@ icon_state = "grimy" }, /area/crew_quarters/theatre) +"pPG" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/bush, +/turf/simulated/floor/grass, +/area/medical/research) "pRe" = ( /obj/structure/table/wood, /turf/simulated/floor/plasteel{ @@ -98231,6 +98801,11 @@ }, /turf/simulated/floor/plating, /area/security/permabrig) +"pWT" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/maintenance/port) "pXX" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/camera{ @@ -98317,6 +98892,15 @@ icon_state = "dark" }, /area/crew_quarters/courtroom) +"qqh" = ( +/obj/machinery/cryopod, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/crew_quarters/sleep) "qqW" = ( /obj/structure/table, /obj/machinery/kitchen_machine/microwave, @@ -98387,9 +98971,9 @@ /turf/simulated/floor/plating, /area/security/permabrig) "qOO" = ( -/obj/machinery/hologram/holopad, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -98433,9 +99017,24 @@ /obj/machinery/meter{ layer = 3.31 }, -/obj/effect/spawner/window/reinforced/plasma, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/grille, /turf/simulated/floor/plating, /area/toxins/mixing) +"qWs" = ( +/obj/machinery/computer/arcade{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "dark" + }, +/area/maintenance/fore2) "qXF" = ( /obj/machinery/alarm{ pixel_y = 24 @@ -98483,6 +99082,22 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, /area/maintenance/starboard) +"qZV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/sofa/corp, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whiteblue" + }, +/area/medical/medbay) "raB" = ( /obj/structure/grille/broken, /obj/structure/lattice, @@ -98522,9 +99137,6 @@ }, /area/security/permabrig) "reH" = ( -/obj/machinery/newscaster{ - pixel_x = 32 - }, /obj/machinery/light{ dir = 4 }, @@ -98556,6 +99168,14 @@ }, /turf/space, /area/space) +"rkv" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/simulated/floor/plating, +/area/maintenance/port) "rkB" = ( /obj/structure/cable{ d1 = 2; @@ -98578,6 +99198,13 @@ icon_state = "neutralfull" }, /area/crew_quarters/sleep) +"rkV" = ( +/obj/machinery/light/small, +/obj/effect/decal/warning_stripes/southwest, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/maintenance/port) "rmq" = ( /turf/simulated/floor/plasteel{ dir = 6; @@ -98622,6 +99249,18 @@ icon_state = "neutralfull" }, /area/hallway/secondary/exit) +"rBP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + icon_state = "arrival" + }, +/area/hallway/secondary/entry) "rCe" = ( /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 10 @@ -98671,11 +99310,14 @@ /area/security/brig) "rHU" = ( /obj/structure/chair, +/obj/machinery/newscaster{ + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "rIy" = ( /obj/machinery/door/airlock/research{ name = "Research Break Room" @@ -98840,6 +99482,33 @@ icon_state = "red" }, /area/hallway/secondary/exit) +"sdP" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) +"seE" = ( +/obj/machinery/access_button{ + command = "cycle_exterior"; + frequency = 1379; + master_tag = "sw_maint_airlock"; + name = "exterior access button"; + pixel_x = 24; + pixel_y = 24 + }, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) +"seQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/engine, +/area/toxins/explab) "shi" = ( /obj/structure/cable{ d2 = 2; @@ -98873,11 +99542,20 @@ /area/hallway/secondary/entry) "sjV" = ( /obj/structure/disposalpipe/segment, +/obj/structure/chair/sofa/corp/right{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitepurple" }, /area/medical/research) +"slE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/robot, +/obj/effect/decal/cleanable/blood/oil, +/turf/simulated/floor/plating, +/area/maintenance/port) "soN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -98938,6 +99616,14 @@ }, /turf/simulated/floor/plasteel, /area/security/permasolitary) +"ssy" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/space) "suy" = ( /obj/machinery/firealarm{ dir = 1; @@ -99009,12 +99695,47 @@ icon_state = "neutralfull" }, /area/security/brig) +"sGz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/atmos) "sMj" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ dir = 5 }, /turf/simulated/floor/engine, /area/toxins/mixing) +"sOo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/crew_quarters/sleep) +"sPz" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/vacuum{ + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/maintenance/port) "sPS" = ( /obj/structure/cable, /obj/machinery/alarm{ @@ -99029,6 +99750,24 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboardsolar) +"sQr" = ( +/mob/living/simple_animal/mouse, +/turf/simulated/floor/plating, +/area/maintenance/port) +"sQZ" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 1379; + master_tag = "sw_maint_airlock"; + name = "interior access button"; + pixel_x = -24; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/maintenance/port) "sTz" = ( /obj/structure/closet/secure_closet/security, /turf/simulated/floor/plasteel{ @@ -99040,8 +99779,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/airlock/security{ - name = "Security-Storage Backroom"; - req_access = null; + name = "Evidence Storage"; req_access_txt = "63" }, /obj/machinery/door/firedoor, @@ -99082,6 +99820,12 @@ icon_state = "grimy" }, /area/security/detectives_office) +"sZp" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/maintenance/port) "sZT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -99134,6 +99878,16 @@ "tgE" = ( /turf/simulated/wall/r_wall, /area/maintenance/starboard) +"tiC" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 4; + name = "N2 to Pure" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/atmos) "tiS" = ( /obj/structure/cable{ d1 = 1; @@ -99199,6 +99953,30 @@ /obj/item/paper_bin, /turf/simulated/floor/plating, /area/security/permabrig) +"tvI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutralcorner" + }, +/area/crew_quarters/sleep) +"txW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel, +/area/crew_quarters/locker/locker_toilet) "tFw" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -99304,7 +100082,7 @@ dir = 4; icon_state = "whitebluecorner" }, -/area/maintenance/starboard) +/area/hallway/primary/central) "tNO" = ( /obj/structure/cable{ d1 = 2; @@ -99515,6 +100293,10 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/security/brig) +"unt" = ( +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/plasteel, +/area/maintenance/port) "uod" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -99569,6 +100351,20 @@ icon_state = "dark" }, /area/security/interrogation) +"uza" = ( +/obj/machinery/atmospherics/pipe/simple/insulated{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/grille, +/obj/structure/window/plasmareinforced, +/turf/simulated/floor/plating, +/area/toxins/mixing) "uAP" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -99803,6 +100599,12 @@ icon_state = "red" }, /area/security/prisonershuttle) +"vnM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/engine, +/area/toxins/explab) "voo" = ( /obj/structure/table, /obj/item/clothing/shoes/orange, @@ -99860,6 +100662,14 @@ icon_state = "red" }, /area/security/brig) +"vzs" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/crew_quarters/sleep) "vzz" = ( /obj/machinery/light{ dir = 4 @@ -99979,6 +100789,15 @@ icon_state = "neutral" }, /area/maintenance/port) +"vJs" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple" + }, +/area/medical/research) "vJK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/rack, @@ -99993,6 +100812,21 @@ }, /turf/simulated/floor/plasteel, /area/security/securearmoury) +"vKt" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/wall/mineral/titanium, +/area/shuttle/pod_2) +"vKB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/grass, +/area/medical/research) "vLu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -100036,6 +100870,17 @@ icon_state = "red" }, /area/hallway/secondary/exit) +"vUu" = ( +/obj/docking_port/mobile/pod{ + id = "pod2"; + name = "escape pod 2" + }, +/obj/machinery/door/airlock/titanium{ + id_tag = "s_docking_airlock"; + name = "Escape Pod Hatch" + }, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/pod_2) "vVf" = ( /obj/machinery/chem_dispenser, /obj/item/reagent_containers/glass/beaker/large, @@ -100087,6 +100932,31 @@ icon_state = "neutralfull" }, /area/hallway/secondary/exit) +"why" = ( +/obj/machinery/cryopod/right, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/crew_quarters/sleep) +"wil" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/poddoor/preopen{ + id_tag = "experimentor"; + name = "Experimentor Blast Door" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/engine, +/area/toxins/explab) +"wiR" = ( +/obj/structure/chair/office/light, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/medbay) "wmQ" = ( /obj/item/radio/intercom{ pixel_y = 28 @@ -100138,6 +101008,14 @@ /obj/structure/closet/radiation, /turf/simulated/floor/plasteel, /area/engine/controlroom) +"wGL" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/bridge) "wIT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/rack, @@ -100178,6 +101056,18 @@ icon_state = "wood" }, /area/maintenance/gambling_den) +"wPI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/telepad_cargo, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/quartermaster/office) "wRP" = ( /obj/structure/cable{ d1 = 1; @@ -100258,13 +101148,13 @@ dir = 9 }, /obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Armory_North"; location = "Armory_South" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, /turf/simulated/floor/plasteel, /area/security/securearmoury) "xgR" = ( @@ -100293,6 +101183,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/structure/chair/sofa/corp/left{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurple" }, @@ -100302,13 +101195,13 @@ auto_patrol = 1 }, /obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Armory_South"; location = "Armory_North" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, /turf/simulated/floor/plasteel, /area/security/securearmoury) "xoq" = ( @@ -100344,6 +101237,10 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) +"xtS" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/plating, +/area/maintenance/port) "xuC" = ( /obj/structure/cable{ d1 = 1; @@ -100367,12 +101264,43 @@ "xwk" = ( /obj/structure/sink{ dir = 4; - pixel_x = 11 + pixel_x = 12 }, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, /area/medical/surgery1) +"xAc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/medical/research) +"xBJ" = ( +/obj/structure/railing{ + dir = 10; + pixel_x = -6; + pixel_y = -4 + }, +/obj/item/twohanded/required/kirbyplants{ + pixel_y = 7 + }, +/obj/structure/railing/corner{ + dir = 5; + pixel_x = -2; + pixel_y = -28 + }, +/turf/simulated/floor/grass, +/area/medical/research) +"xCC" = ( +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/plating, +/area/maintenance/port) "xDn" = ( /obj/structure/sign/electricshock{ pixel_y = 32 @@ -108171,7 +109099,7 @@ btd bNM bPP bUD -bTL +hzl bXI chE bNM @@ -118730,6 +119658,13 @@ aaa aaa aaa aaa +dmq +dmq +dmq +dmq +cJK +cJK +cHA aaa aaa aaa @@ -118738,15 +119673,8 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +acF +abj aaa aaa aaa @@ -118985,11 +119913,23 @@ aaa aaa aaa aaa +cRD +cRD +cRD +vKt +xCC +cHA +cXX +cXX +cHA aaa aaa aaa aaa aaa +aaa +aaa +abj acF aaa aaa @@ -119013,18 +119953,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa abj aaa abj @@ -119242,6 +120170,18 @@ aaa aaa aaa aaa +cTg +cUP +cUQ +vUu +xCC +elb +drn +drn +cHA +abj +aaa +aaa aaa aaa aaa @@ -119270,18 +120210,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa abj aaa abj @@ -119499,25 +120427,25 @@ aaa aaa aaa aaa +cRD +cRD +cRD +vKt +xCC +cHA +sPz +cXU +cHA +bya +pfE +pfE +cHA +cHA aaa aaa -aaa -aaa -aaa +abj acF -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abj aaa aaa aaa @@ -119758,23 +120686,23 @@ abj abj abj abj +cWk +dmq +cHA +cHA +drn +slE +drn +pAC +dpX +cLA +dtU +cHA +cHA +aaa abj -aaa -aaa acF -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abj aaa aaa aaa @@ -120017,22 +120945,22 @@ cie cie cie bXU -aaa -acF +xtS +cPY +drn +dhG +drn +drn +drn +dhG +drn +cCy +cHA aaa abj -aaa -abj -abj -abj -aaa -abj -abj -abj -aaa -abj -abj -abj +seE +bPS +vXX aaa aaa aaa @@ -120274,22 +121202,22 @@ bXU bXU bXU bXU -abj +iPQ cPY +drn cHA cHA +cHA +cHA +cHA +drn +maf cJK +aaa cHA +kdR cHA -cHA -cJK -cHA -cHA -cCx -cJK -cCx -cCx -abj +vXX aaa aaa aaa @@ -120531,21 +121459,21 @@ cie cie cie bXU -dmq -cGw +rkv +drn +dhG cHA -cjV cJP cLC +rkV cHA -cQs -cRD +drn cTi -cTg -cUP -cWk +cJK +aaa +cHA cXR -cCx +cHA aaa aaa aaa @@ -120789,21 +121717,21 @@ abj cbb bXU dmq -cFN -cHA -cJL -cWl -cYb -cHA -cQv drn -drn -cTg -cUQ +cXU +cHA cWl -cYb -cCx -abj +unt +lxh +cHA +sQr +sZp +cHA +aaa +cHA +fxr +cHA +vXX aaa aaa aaa @@ -121046,19 +121974,19 @@ cda cbb cDx bXU -cIu +drn +dhG cHA cHA -cjX -cLz +pWT cHA cHA -cjX +dtU +drn +cJK cHA cHA -cHA -cjX -cHA +sQZ cHA abj aaa @@ -121303,8 +122231,8 @@ cCg cbb cDx bXU -cFP -cHe +dhG +drn cIv dhG cLA @@ -121316,7 +122244,7 @@ cLA drn cWm cXT -cHA +kyU abj aaa aaa @@ -122594,7 +123522,7 @@ bLP cJR cLD cMV -cOB +cLD cQx cLD cJR @@ -123105,7 +124033,7 @@ bXU cFT cHk cIx -cJT +haY cLF cMX cOC @@ -124586,9 +125514,9 @@ aMG aOb aPH aQV -aPF +aSD aSc -aSI +aVF aXj aYz bam @@ -125101,10 +126029,10 @@ aOg aPy aQX aSD -aUc -aVF +aPF +aSI aXl -ban +aVO ban bbP ban @@ -125619,9 +126547,9 @@ veH aVI aXn aYD +cOB bap -bap -bap +cOB beK aXq bhk @@ -127145,8 +128073,8 @@ aAa aBX aAa aCZ -aAa -aCZ +sdP +hPT aFX aGi aIH @@ -127162,7 +128090,7 @@ aVM aXq aYI bhp -bhp +mfl bhp beO aXn @@ -127419,11 +128347,11 @@ aVN aXr aYJ bau -bau +oZY bau aXG aXr -bau +sGz biV bkK bmH @@ -127672,17 +128600,17 @@ aPG aRf aSD aTZ -aVO +aVF aXs aUQ -aXs +dkD bbV -aXs +aYK aXN -aXs -aXs -aXs -bkL +ijT +mzZ +ban +bkM bmI aOg aOg @@ -127930,12 +128858,12 @@ aRg aSD aTZ aVF -aXt -aYK -baw -aYK -aYK -aYK +bgg +bkL +bgg +aTZ +ban +tiC bgg ban ban @@ -128190,7 +129118,7 @@ aVP aXu aYL aXu -bbW +hlY bbW beP bgh @@ -128228,8 +129156,8 @@ bXU bQr bQr clv -cop -cqP +cnb +cnb buB cso cuR @@ -130062,10 +130990,10 @@ deQ dga djf djn -ddi -dng +wil +seQ fjv -dng +vnM ddi cYc cXU @@ -130319,7 +131247,7 @@ deR dgb dhK djo -dkD +ddi dlO dnc doB @@ -130835,7 +131763,7 @@ dhM djs dkF dng -dng +iLr dng ddi cQY @@ -131049,10 +131977,10 @@ bWH cHA bZI cbE -cly -dna -cHs -cAS +dhG +dtP +cNh +drn cke cly dna @@ -131086,7 +132014,7 @@ cIM cIM ddi dxr -dge +lVT dge dhR djt @@ -132378,7 +133306,7 @@ djv dkI esK qWp -esK +uza dkI dkI dkI @@ -133525,7 +134453,7 @@ aaa acC acC acC -afb +buc adv adZ adZ @@ -133796,7 +134724,7 @@ ajZ ajZ ajZ ajZ -ajZ +cMP ajZ ajZ ajZ @@ -134322,7 +135250,7 @@ acC adb adb adb -anl +iIw anK adb aoS @@ -134413,7 +135341,7 @@ drn cGt cHx cXU -cYA +iiv vYC mzQ viE @@ -135865,7 +136793,7 @@ alY afb alY ant -anP +rBP aoo aoX apM @@ -136165,7 +137093,7 @@ bhH bjp bQc aYZ -boo +nqC bqu bhX bsv @@ -137164,7 +138092,7 @@ aBb axb axc axb -axb +gpU axb axb aDF @@ -137241,10 +138169,10 @@ bqu cHG cJa dau -cMm +cKD cNF cPq -ckH +kWO cPn cTC dje @@ -137497,12 +138425,12 @@ cIT bqu cHG cIW -cKz -cMm +cND +cKT cNG cPr -ckH -cRd +ozX +cPn cZx cVd cZG @@ -137755,10 +138683,10 @@ bqu cHG cIW cKA -cMm -cNG -cPr -ckH +cKT +cSu +pGk +xAc cSp cTQ cVr @@ -137908,7 +138836,7 @@ ajZ ajZ ajZ ajZ -ajZ +cMP ajZ ajZ ajZ @@ -138014,7 +138942,7 @@ cIZ cKB muI cNH -cPr +hJG ckH cWL cTR @@ -138269,11 +139197,11 @@ bqu cHG cIW cKC -cMm -cNG -cPr -ckH -cSr +cKT +ncs +xBJ +kWO +cSt cTT cVt daJ @@ -138525,12 +139453,12 @@ cET bqu cHG cIW -cKD -cMm -cNG -cPr -ckH -cRg +cMn +cKT +vKB +pPG +ewj +cSt cTR cVu cWY @@ -138783,11 +139711,11 @@ bqu cHG cJa cKF -cMm +cSr cNJ cPt ckI -cSs +cSt cTT cVv cYy @@ -139000,7 +139928,7 @@ aaa bwd bxm byR -byU +wGL bCl byU bFy @@ -139041,8 +139969,8 @@ cHG cJa cKF cMm -cNG -cPr +pML +vJs cMm cSt cTF @@ -139082,7 +140010,7 @@ dHT dIJ cWH dKo -dKo +gkk dLG dXJ dNc @@ -139301,8 +140229,8 @@ cMm cNK cPu cMm -cSu -cTT +cSt +emK cVx cWR cYq @@ -139607,7 +140535,7 @@ dPN dQF dNQ dRH -dKo +gkk dXJ dSU dNQ @@ -139847,7 +140775,7 @@ dCX dfu dHT dcV -iIw +dGU dWL dWM dIK @@ -140104,7 +141032,7 @@ dDb dXj dHT dcV -iIw +dGU dGU dHS dIH @@ -140349,7 +141277,7 @@ doZ dfB doZ doZ -doZ +neQ doZ dwt doZ @@ -140581,7 +141509,7 @@ cFa cGB cHK dEm -cRh +cKz cRh cNP cRh @@ -141353,10 +142281,10 @@ bqu cHK cJg cKN -cMq +cSs cNS cMq -cMq +wiR cSy cTY cVF @@ -141775,7 +142703,7 @@ aaa aaa aaa adb -akG +gzU als aoC apl @@ -141802,7 +142730,7 @@ aJf aKy aLZ aNo -aNo +wPI aQh aRO aJd @@ -142005,10 +142933,10 @@ aaa aaa aaa aaa -aaa -aaa -adN adb +acC +acC +acC adb adb adb @@ -142126,7 +143054,7 @@ cJg cKP dea cbr -dea +hsQ cha cSB cUb @@ -142262,13 +143190,13 @@ aaa aaa aaa aaa -adg -adg -adg -adQ -aey acC -afc +adg +aeg +aeg +acC +cQs +cQv adZ adZ agm @@ -142383,7 +143311,7 @@ cJg cKQ dea bYQ -cMq +lee ckJ cSA cTZ @@ -142519,14 +143447,14 @@ aaa aaa aaa aaa -adh +acC adz -adP aeg -aez -aeK +aeg +cJL afh aea +aea afM ajZ ahg @@ -142534,7 +143462,7 @@ ajZ ahi ajZ ajZ -ajZ +cMP ajZ ajZ ajZ @@ -142639,7 +143567,7 @@ ukK cJi cKR cMr -cbr +qZV cPH ckJ cSD @@ -142776,14 +143704,14 @@ aaa aaa aaa aaa -adg -adg -adg -adQ -aeA +acC +adh +adh +adh acC afj aeb +aeb afN agn agH @@ -142896,8 +143824,8 @@ cHK cJg cKS dea -bYQ -cMq +ncT +giz ckJ cSE cTX @@ -143033,10 +143961,10 @@ aaa aaa aaa aaa -aaa -aaa -adN adb +aeK +cFP +aeK adb adb adb @@ -143151,10 +144079,10 @@ cFa bqu cHK cJg -cKT -dea -cbr +dbn dea +oyG +oAd ckJ cRm cJg @@ -143290,10 +144218,10 @@ aaa aaa aaa aaa -aaa -aaa -abj -abj +adb +cFN +cGw +cFN adb aeL afd @@ -143547,10 +144475,10 @@ aaa aaa aaa aaa -aaa -aaa -aaa -abj +adN +cFN +cHe +cFN adb aeM afe @@ -143805,9 +144733,9 @@ aaa aaa aaa aaa -aaa -aaa -abj +cFN +cIu +cFN adb aeN aff @@ -143841,7 +144769,7 @@ arW asJ aKd aux -kBV +qWs axm axu ayD @@ -143928,7 +144856,7 @@ cNS cRk cMq cSF -cUd +jYY cVO cnX cSF @@ -144063,8 +144991,8 @@ aaa aaa aaa aaa -abi -abj +aaa +aaa aeB aeB afg @@ -145126,7 +146054,7 @@ auu asM atR asK -kBV +qWs ayS osS wXI @@ -145137,7 +146065,7 @@ aCN aBS aCN aCN -aLa +oOe aBS aBS aBS @@ -145464,7 +146392,7 @@ rHU cGF iWE pDD -bng +cYP cYP cYP cPO @@ -145660,7 +146588,7 @@ aQr aCN aKK azL -aTw +ssy aVa aWy aBS @@ -145694,7 +146622,7 @@ bPd bLh bSW bVg -bXc +mrW bYH cav ccp @@ -147770,7 +148698,7 @@ bwm cxn czU bBu -cBK +txW cxn cxn cxn @@ -149288,7 +150216,7 @@ bHP dMA bLu bNu -bLt +nXf bFS bTh bVn @@ -150103,7 +151031,7 @@ cZW cUr cKV dqW -cSF +cPJ cJg dhe dye @@ -150360,7 +151288,7 @@ cZX cWd dbn dcz -cSF +jdF cKY dhf diO @@ -151332,7 +152260,7 @@ boN bqN kyq btX -bqK +pOq esa bno bCK @@ -153130,7 +154058,7 @@ bhh bhi bqT bsL -buc +bsL xXw bsL biv @@ -153682,14 +154610,14 @@ aFx cyY cyY cBY -cyY +why bmW cFv cGV cIl bmW -cyY -cMP +oXY +cBY cyY cyY aFx @@ -153939,13 +154867,13 @@ aFx cyZ cAr cAr -cAr +gUi cEv -cFv -cGV -cIk +tvI +vzs +plm cEv -cAr +sOo cAr cAr cQj @@ -154196,7 +155124,7 @@ aFx cza cAs cAs -cAs +qqh bmW bFh cGT @@ -154711,7 +155639,7 @@ czb cAt cBZ jHa -ctx +mYH cFx cGX cJz diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 24ae1527d2e..ae063f30423 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -882,15 +882,11 @@ }, /area/security/permabrig) "adz" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/item/radio/electropack, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/structure/chair/e_chair, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -1100,6 +1096,10 @@ c_tag = "Prisoner Education Chamber"; dir = 4 }, +/obj/structure/table, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "warndark" @@ -1451,8 +1451,8 @@ }, /obj/item/reagent_containers/dropper, /obj/item/assembly/signaler{ - pixel_x = -3; - pixel_y = 2 + code = 6; + frequency = 1445 }, /obj/machinery/alarm{ dir = 4; @@ -44364,7 +44364,11 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/closet/secure_closet/medical2, +/obj/structure/table, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/obj/item/storage/firstaid/machine, +/obj/item/storage/firstaid/machine, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -51700,6 +51704,7 @@ /area/atmos) "cfQ" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/meter, /turf/simulated/floor/plasteel, /area/atmos) "cfR" = ( @@ -53723,8 +53728,9 @@ }, /area/atmos) "ckm" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 +/obj/machinery/atmospherics/binary/valve/digital/open{ + dir = 8; + name = "Mixed Air Outlet Valve" }, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -58815,6 +58821,7 @@ maxcharge = 15000 }, /obj/effect/decal/warning_stripes/south, +/obj/machinery/recharger, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurple" @@ -63797,9 +63804,8 @@ name = "\improper Toxins Lab" }) "cFD" = ( -/obj/machinery/atmospherics/trinary/filter{ - dir = 8; - req_access = "0" +/obj/machinery/atmospherics/trinary/mixer{ + dir = 8 }, /turf/simulated/floor/plasteel{ icon_state = "white" @@ -64428,6 +64434,7 @@ pixel_y = 24 }, /obj/effect/decal/warning_stripes/south, +/obj/machinery/portable_atmospherics/canister, /turf/simulated/floor/plasteel, /area/toxins/mixing{ name = "\improper Toxins Lab" @@ -64452,7 +64459,6 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/portable_atmospherics/canister, /obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/toxins/mixing{ @@ -68120,8 +68126,11 @@ pixel_y = -4 }, /obj/effect/decal/warning_stripes/yellow, -/obj/item/storage/firstaid/machine, -/obj/item/storage/firstaid/machine, +/obj/item/clothing/glasses/hud/diagnostic{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/clothing/glasses/hud/diagnostic, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -68619,10 +68628,6 @@ /obj/item/scalpel{ pixel_y = 12 }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, /obj/item/razor{ pixel_y = 5 }, @@ -75965,7 +75970,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, @@ -78245,6 +78249,17 @@ /area/construction/Storage{ name = "Storage Wing" }) +"hDX" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/binary/valve/digital{ + color = ""; + dir = 4; + name = "CO2 Outlet Valve" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/atmos) "hEA" = ( /obj/machinery/camera/autoname{ dir = 4 @@ -79779,6 +79794,17 @@ /area/construction/hallway{ name = "\improper MiniSat Exterior" }) +"moV" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/binary/valve/digital{ + color = ""; + dir = 4; + name = "Plasma Outlet Valve" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/atmos) "msg" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -80148,6 +80174,17 @@ }, /turf/simulated/floor/engine, /area/engine/engineering) +"nFC" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/binary/valve/digital{ + color = ""; + dir = 4; + name = "N2O Outlet Valve" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/atmos) "nHB" = ( /obj/machinery/conveyor{ dir = 4; @@ -82839,6 +82876,13 @@ icon_state = "dark" }, /area/turret_protected/ai_upload) +"whC" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 4 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel, +/area/atmos) "wma" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -126514,7 +126558,7 @@ cbg bGG bGG nzX -bPw +whC bIq ciE ckh @@ -127787,15 +127831,15 @@ bIs bKg bMh bNe -bPC +nFC bRi bSU bPC -bPC +moV bRi bSU bRi -bPC +hDX bRi bSU ceK diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 14e5fc674ce..ec3609c0554 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -25,8 +25,9 @@ #define PLANT_PEST_HUD "20"// Pest level #define PLANT_WEED_HUD "21"// Weed level #define DIAG_TRACK_HUD "22"// Mech tracking beacon -#define DIAG_PATH_HUD "23"//Bot path indicators -#define GLAND_HUD "24"//Gland indicators for abductors +#define DIAG_AIRLOCK_HUD "23" // Airlock shock overlay +#define DIAG_PATH_HUD "24"//Bot path indicators +#define GLAND_HUD "25"//Gland indicators for abductors //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -38,7 +39,7 @@ #define DATA_HUD_SECURITY_ADVANCED 2 #define DATA_HUD_MEDICAL_BASIC 3 #define DATA_HUD_MEDICAL_ADVANCED 4 -#define DATA_HUD_DIAGNOSTIC 5 +#define DATA_HUD_DIAGNOSTIC_BASIC 5 #define DATA_HUD_DIAGNOSTIC_ADVANCED 6 #define DATA_HUD_HYDROPONIC 7 //antag HUD defines diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 688db849a33..1e2c6dd05e1 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1554,7 +1554,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) if(orbiting == A) //make sure we haven't started orbiting something else. orbiting = null - SpinAnimation(0, 0) + SpinAnimation(0, 0, parallel = FALSE) transform = cached_transform diff --git a/code/controllers/configuration/sections/system_configuration.dm b/code/controllers/configuration/sections/system_configuration.dm index d4d4a3fe28c..a7623dfacc4 100644 --- a/code/controllers/configuration/sections/system_configuration.dm +++ b/code/controllers/configuration/sections/system_configuration.dm @@ -10,6 +10,8 @@ var/medal_hub_password = null /// Do we want the server to kill on reboot instead of keeping the same DD session var/shutdown_on_reboot = FALSE + /// Is this server a production server (Has higher security and requires 2FA) + var/is_production = FALSE /// If above is true, you can run a shell command var/shutdown_shell_command = null /// 2FA backend server host @@ -24,6 +26,7 @@ /datum/configuration_section/system_configuration/load_data(list/data) // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line CONFIG_LOAD_BOOL(shutdown_on_reboot, data["shutdown_on_reboot"]) + CONFIG_LOAD_BOOL(is_production, data["is_production"]) CONFIG_LOAD_STR(topic_key, data["communications_password"]) CONFIG_LOAD_STR(medal_hub_address, data["medal_hub_address"]) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 60fbb9c8194..9eeda5fd9f2 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -2,28 +2,28 @@ GLOBAL_LIST_EMPTY(all_huds) ///GLOBAL HUD LIST -GLOBAL_LIST_INIT(huds, list( \ - DATA_HUD_SECURITY_BASIC = new/datum/atom_hud/data/human/security/basic(), \ - DATA_HUD_SECURITY_ADVANCED = new/datum/atom_hud/data/human/security/advanced(), \ - DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/human/medical/basic(), \ - DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/human/medical/advanced(), \ - DATA_HUD_DIAGNOSTIC = new/datum/atom_hud/data/diagnostic(), \ - DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), \ - DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), \ - ANTAG_HUD_CULT = new/datum/atom_hud/antag(), \ - ANTAG_HUD_REV = new/datum/atom_hud/antag(), \ - ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \ - ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), \ - ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), \ - ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag/hidden(),\ - ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(),\ - ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),\ - ANTAG_HUD_VAMPIRE = new/datum/atom_hud/antag/hidden(),\ - ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\ - DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(),\ - ANTAG_HUD_EVENTMISC = new/datum/atom_hud/antag/hidden(),\ - ANTAG_HUD_BLOB = new/datum/atom_hud/antag/hidden()\ -)) +GLOBAL_LIST_INIT(huds, list( + DATA_HUD_SECURITY_BASIC = new/datum/atom_hud/data/human/security/basic(), + DATA_HUD_SECURITY_ADVANCED = new/datum/atom_hud/data/human/security/advanced(), + DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/human/medical/basic(), + DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/human/medical/advanced(), + DATA_HUD_DIAGNOSTIC_BASIC = new/datum/atom_hud/data/diagnostic/basic(), + DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), + DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), + ANTAG_HUD_CULT = new/datum/atom_hud/antag(), + ANTAG_HUD_REV = new/datum/atom_hud/antag(), + ANTAG_HUD_OPS = new/datum/atom_hud/antag(), + ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), + ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), + ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag/hidden(), + ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(), + ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(), + ANTAG_HUD_VAMPIRE = new/datum/atom_hud/antag/hidden(), + ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(), + DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(), + ANTAG_HUD_EVENTMISC = new/datum/atom_hud/antag/hidden(), + ANTAG_HUD_BLOB = new/datum/atom_hud/antag/hidden() + )) /datum/atom_hud var/list/atom/hudatoms = list() //list of all atoms which display this hud diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d4a97bc16e1..748e84921d2 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -55,6 +55,10 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY var/list/announce_beacons = list() // Particular beacons that we'll notify the relevant department when we reach var/special = FALSE //Event/Station Goals/Admin enabled packs var/special_enabled = FALSE + /// The number of times one can order a cargo crate, before it becomes restricted. -1 for infinite + var/order_limit = -1 + /// Number of times a crate has been ordered in a shift + var/times_ordered = 0 /// List of names for being done in TGUI var/list/ui_manifest = list() @@ -200,6 +204,7 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY containertype = /obj/structure/closet/crate containername = "crate" hidden = 1 + order_limit = 5 ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Security //////////////////////////////////////// diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e46086d9b2b..e815dd545ac 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -657,9 +657,6 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) -/atom/proc/blood_splatter_index() - return "\ref[initial(icon)]-[initial(icon_state)]" - //returns the mob's dna info as a list, to be inserted in an object's blood_DNA list /mob/living/proc/get_blood_dna_list() if(get_blood_id() != "blood") @@ -726,56 +723,52 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) return add_blood(blood_dna, bloodcolor) //to add blood onto something, with blood dna info to include. -/atom/proc/add_blood(list/blood_dna, color) +/atom/proc/add_blood(list/blood_dna, b_color) return FALSE -/obj/add_blood(list/blood_dna, color) +/obj/add_blood(list/blood_dna, b_color) return transfer_blood_dna(blood_dna) -/obj/item/add_blood(list/blood_dna, color) - var/blood_count = !blood_DNA ? 0 : blood_DNA.len +/obj/item/add_blood(list/blood_dna, b_color) + var/blood_count = !blood_DNA ? 0 : length(blood_DNA) if(!..()) return FALSE - if(!blood_count)//apply the blood-splatter overlay if it isn't already in there - add_blood_overlay(color) + blood_color = b_color // update the blood color + if(!blood_count) //apply the blood-splatter overlay if it isn't already in there + add_blood_overlay() return TRUE //we applied blood to the item -/obj/item/clothing/gloves/add_blood(list/blood_dna, color) +/obj/item/clothing/gloves/add_blood(list/blood_dna, b_color) . = ..() transfer_blood = rand(2, 4) -/turf/add_blood(list/blood_dna, color) +/turf/add_blood(list/blood_dna, b_color) var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src if(!B) B = new /obj/effect/decal/cleanable/blood/splatter(src) B.transfer_blood_dna(blood_dna) //give blood info to the blood decal. - B.basecolor = color + B.basecolor = b_color return TRUE //we bloodied the floor -/mob/living/carbon/human/add_blood(list/blood_dna, color) +/mob/living/carbon/human/add_blood(list/blood_dna, b_color) if(wear_suit) - wear_suit.add_blood(blood_dna, color) - wear_suit.blood_color = color + wear_suit.add_blood(blood_dna, b_color) update_inv_wear_suit() else if(w_uniform) - w_uniform.add_blood(blood_dna, color) - w_uniform.blood_color = color + w_uniform.add_blood(blood_dna, b_color) update_inv_w_uniform() if(head) - head.add_blood(blood_dna, color) - head.blood_color = color + head.add_blood(blood_dna, b_color) update_inv_head() if(glasses) - glasses.add_blood(blood_dna, color) - glasses.blood_color = color + glasses.add_blood(blood_dna, b_color) update_inv_glasses() if(gloves) var/obj/item/clothing/gloves/G = gloves - G.add_blood(blood_dna, color) - G.blood_color = color + G.add_blood(blood_dna, b_color) verbs += /mob/living/carbon/human/proc/bloody_doodle else - hand_blood_color = color + hand_blood_color = b_color bloody_hands = rand(2, 4) transfer_blood_dna(blood_dna) verbs += /mob/living/carbon/human/proc/bloody_doodle @@ -783,21 +776,13 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) update_inv_gloves() //handles bloody hands overlays and updating return TRUE -/obj/item/proc/add_blood_overlay(color) +/obj/item/proc/add_blood_overlay() if(initial(icon) && initial(icon_state)) - //try to find a pre-processed blood-splatter. otherwise, make a new one - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(!blood_splatter_icon) - blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object - blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) - blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant - blood_splatter_icon = fcopy_rsc(blood_splatter_icon) - GLOB.blood_splatter_icons[index] = blood_splatter_icon - - blood_overlay = image(blood_splatter_icon) - blood_overlay.color = color - overlays += blood_overlay + var/list/params = GLOB.blood_splatter_icons["[blood_color]"] + if(!params) + params = layering_filter(icon = icon('icons/effects/blood.dmi', "itemblood"), color = blood_color, blend_mode = BLEND_INSET_OVERLAY) + GLOB.blood_splatter_icons["[blood_color]"] = params + add_filter("blood_splatter", 1, params) /atom/proc/clean_blood(radiation_clean = FALSE) germ_level = 0 @@ -828,8 +813,8 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) /obj/item/clean_blood(radiation_clean = FALSE) . = ..() if(.) - if(blood_overlay) - overlays -= blood_overlay + if(initial(icon) && initial(icon_state)) + remove_filter("blood_splatter") /obj/item/clothing/gloves/clean_blood(radiation_clean = FALSE) . = ..() diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index bac3f4c3349..2eb8cf115a3 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -90,13 +90,11 @@ /atom/movable/proc/stop_pulling() if(pulling) - pulling.pulledby = null var/mob/living/ex_pulled = pulling + pulling.pulledby = null pulling = null - pulledby = null - if(isliving(ex_pulled)) - var/mob/living/L = ex_pulled - L.update_canmove()// mob gets up if it was lyng down in a chokehold + if(!QDELETED(ex_pulled) && istype(ex_pulled)) + ex_pulled.update_canmove()// mob gets up if it was lyng down in a chokehold /atom/movable/proc/check_pulling() if(pulling) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 10e704fb314..0b9aeec9fb2 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -44,10 +44,12 @@ hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPMINDSHIELD_HUD, IMPCHEM_HUD, WANTED_HUD) /datum/atom_hud/data/diagnostic - hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD) + +/datum/atom_hud/data/diagnostic/basic + hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD) /datum/atom_hud/data/diagnostic/advanced - hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_PATH_HUD) + hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_AIRLOCK_HUD, DIAG_PATH_HUD) /datum/atom_hud/data/bot_path hud_icons = list(DIAG_PATH_HUD) @@ -473,6 +475,16 @@ return holder.icon_state = "hudweed[RoundPlantBar(weedlevel/10)]" +/*~~~~~~~~~~~~ + Airlocks! +~~~~~~~~~~~~~*/ +/obj/machinery/door/airlock/proc/diag_hud_set_electrified() + var/image/holder = hud_list[DIAG_AIRLOCK_HUD] + if(isElectrified()) + holder.icon_state = "electrified" + else + holder.icon_state = "" + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I'll just put this somewhere near the end... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index bc004c28b1f..739b9bd5508 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -25,11 +25,9 @@ /obj/machinery/computer/operating/New() ..() - for(dir in list(NORTH,EAST,SOUTH,WEST)) - table = locate(/obj/machinery/optable, get_step(src, dir)) - if(table) - table.computer = src - break + table = locate(/obj/machinery/optable, orange(1, src)) + if(table) + table.computer = src /obj/machinery/computer/operating/Destroy() if(table) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 7b2890d97da..47ad4480dce 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -55,6 +55,7 @@ GLOBAL_LIST_EMPTY(airlock_overlays) damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_N autoclose = TRUE explosion_block = 1 + hud_possible = list(DIAG_AIRLOCK_HUD) assemblytype = /obj/structure/door_assembly siemens_strength = 1 flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2 @@ -149,6 +150,10 @@ About the new airlock wires panel: if(damage_deflection == AIRLOCK_DAMAGE_DEFLECTION_N && security_level > AIRLOCK_SECURITY_METAL) damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_R update_icon() + prepare_huds() + for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) + diag_hud.add_to_hud(src) + diag_hud_set_electrified() /obj/machinery/door/airlock/proc/update_other_id() for(var/obj/machinery/door/airlock/A in GLOB.airlocks) @@ -292,6 +297,7 @@ About the new airlock wires panel: electrified_timer = addtimer(CALLBACK(src, .proc/electrify, 0), duration SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE) if(feedback && message) to_chat(user, message) + diag_hud_set_electrified() // shock user with probability prb (if all connections & power are working) // returns 1 if shocked, 0 otherwise diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 86764dddef1..5ec606a0fd8 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -502,6 +502,7 @@ Class Procs: "You apply some [O] at [src]'s damaged areas.") else return ..() + /obj/machinery/proc/exchange_parts(mob/user, obj/item/storage/part_replacer/W) var/shouldplaysound = 0 if((flags & NODECONSTRUCT)) @@ -519,15 +520,23 @@ Class Procs: break for(var/obj/item/stock_parts/B in W.contents) if(istype(B, P) && istype(A, P)) - if(B.rating > A.rating) - W.remove_from_storage(B, src) - W.handle_item_insertion(A, 1) - component_parts -= A - component_parts += B - B.loc = null - to_chat(user, "[A.name] replaced with [B.name].") - shouldplaysound = 1 - break + //If it's cell - check: 1) Max charge is better? 2) Max charge same but current charge better? - If both NO -> next content + if(ispath(B.type, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/tA = A + var/obj/item/stock_parts/cell/tB = B + if(!(tB.maxcharge > tA.maxcharge) && !((tB.maxcharge == tA.maxcharge) && (tB.charge > tA.charge))) + continue + //If it's not cell and not better -> next content + else if(B.rating <= A.rating) + continue + W.remove_from_storage(B, src) + W.handle_item_insertion(A, 1) + component_parts -= A + component_parts += B + B.loc = null + to_chat(user, "[A.name] replaced with [B.name].") + shouldplaysound = 1 + break RefreshParts() else to_chat(user, display_parts(user)) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index b732986dd51..333baa9aa8d 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -284,11 +284,6 @@ /obj/machinery/suit_storage_unit/Destroy() SStgui.close_uis(wires) - QDEL_NULL(suit) - QDEL_NULL(helmet) - QDEL_NULL(mask) - QDEL_NULL(boots) - QDEL_NULL(storage) QDEL_NULL(wires) return ..() diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 7ba07c026dd..08ac71634c4 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -41,10 +41,7 @@ /obj/machinery/computer/teleporter/proc/link_power_station() if(power_station) return - for(dir in list(NORTH,EAST,SOUTH,WEST)) - power_station = locate(/obj/machinery/teleport/station, get_step(src, dir)) - if(power_station) - break + power_station = locate(/obj/machinery/teleport/station, orange(1, src)) return power_station /obj/machinery/computer/teleporter/attackby(obj/item/I, mob/living/user, params) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 12272549f74..2ad4f98e4e7 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -122,7 +122,7 @@ for(var/datum/data/vending_product/R in (product_records + coin_records + hidden_records)) var/obj/item/I = R.product_path var/pp = replacetext(replacetext("[R.product_path]", "/obj/item/", ""), "/", "-") - imagelist[pp] = "[icon2base64(icon(initial(I.icon), initial(I.icon_state)))]" + imagelist[pp] = "[icon2base64(icon(initial(I.icon), initial(I.icon_state), SOUTH, 1))]" if(LAZYLEN(slogan_list)) // So not all machines speak at the exact same time. // The first time this machine says something will be at slogantime + this random value, diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index 9226f2e8c07..08cf60fb967 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -109,9 +109,7 @@ H.apply_damage(10, BRUTE, "chest", H.run_armor_check(target_part, MELEE)) //blood splatters - blood_color = H.dna.species.blood_color - - new /obj/effect/temp_visual/dir_setting/bloodsplatter(H.drop_location(), splatter_dir, blood_color) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(H.drop_location(), splatter_dir, H.dna.species.blood_color) //organs go everywhere if(target_part && prob(10 * drill_level)) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index f88a3cb630d..29ef7eb3ad5 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -84,7 +84,7 @@ GLOBAL_LIST_EMPTY(splatter_cache) /obj/effect/decal/cleanable/blood/drip name = "drips of blood" - desc = "It's red." + desc = "A drop of blood in an ocean of mess." gender = PLURAL icon = 'icons/effects/drip.dmi' icon_state = "1" diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index c6de27524c2..527578727a2 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -204,6 +204,11 @@ duration = 8 randomdir = FALSE +/obj/effect/temp_visual/mummy_animation + icon = 'icons/mob/mob.dmi' + icon_state = "mummy_revive" + duration = 20 + /obj/effect/temp_visual/heal //color is white by default, set to whatever is needed name = "healing glow" icon_state = "heal" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 1a6edd1dd45..03b5a57da18 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -5,8 +5,6 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect move_resist = null // Set in the Initialise depending on the item size. Unless it's overriden by a specific item var/discrete = 0 // used in item_attack.dm to make an item not show an attack message to viewers - var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite - var/blood_overlay_color = null var/item_state = null var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index aa637dc0332..b04457ac866 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -118,7 +118,7 @@ else if(issilicon(M)) add_attack_logs(user, M, "Flashed with [src]") if(M.flash_eyes(affect_silicon = 1)) - M.Weaken(rand(5,10)) + M.Weaken(rand(4, 6)) user.visible_message("[user] overloads [M]'s sensors with [src]!", "You overload [M]'s sensors with [src]!") return 1 user.visible_message("[user] fails to blind [M] with [src]!", "You fail to blind [M] with [src]!") diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index f1487a09986..52877118b88 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -31,6 +31,115 @@ playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) add_attack_logs(user, M, "Stunned with [src] ([uppertext(user.a_intent)])") +#define CYBORG_HUGS 0 +#define CYBORG_HUG 1 +#define CYBORG_SHOCK 2 +#define CYBORG_CRUSH 3 + +/obj/item/borg/cyborghug + name = "hugging module" + icon_state = "hugmodule" + desc = "For when a someone really needs a hug." + var/mode = CYBORG_HUGS //0 = Hugs 1 = "Hug" 2 = Shock 3 = CRUSH + var/ccooldown = 0 + var/scooldown = 0 + var/shockallowed = FALSE //Can it be a stunarm when emagged. Only PK borgs get this by default. + +/obj/item/borg/cyborghug/attack_self(mob/living/user) + if(isrobot(user)) + var/mob/living/silicon/robot/P = user + if(P.emagged && shockallowed) + if(mode < CYBORG_CRUSH) + mode++ + else + mode = CYBORG_HUGS + else if(mode < CYBORG_HUG) + mode++ + else + mode = CYBORG_HUGS + switch(mode) + if(CYBORG_HUGS) + to_chat(user, "Power reset. Hugs!") + if(CYBORG_HUG) + to_chat(user, "Power increased!") + if(CYBORG_SHOCK) + to_chat(user, "BZZT. Electrifying arms...") + if(CYBORG_CRUSH) + to_chat(user, "ERROR: ARM ACTUATORS OVERLOADED.") + +/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user, params) + if(M == user) + return + switch(mode) + if(CYBORG_HUGS) + if(M.health >= 0) + if(isanimal(M)) + var/list/modifiers = params2list(params) + M.attack_hand(user, modifiers) //This enables borgs to get the floating heart icon and mob emote from simple_animal's that have petbonus == true. + return + if(user.zone_selected == BODY_ZONE_HEAD) + user.visible_message("[user] playfully boops [M] on the head!", "You playfully boop [M] on the head!") + user.do_attack_animation(M, ATTACK_EFFECT_BOOP) + playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE, -1) + else if(ishuman(M)) + if(user.lying) + user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", "You shake [M] trying to get [M.p_them()] up!") + else + user.visible_message("[user] hugs [M] to make [M.p_them()] feel better!", "You hug [M] to make [M.p_them()] feel better!") + if(M.resting) + M.resting = FALSE + M.update_canmove() + else + user.visible_message("[user] pets [M]!", "You pet [M]!") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + if(CYBORG_HUG) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get [M.p_them()] up!", "You shake [M] trying to get [M.p_them()] up!") + else if(user.zone_selected == BODY_ZONE_HEAD) + user.visible_message("[user] bops [M] on the head!", "You bop [M] on the head!") + user.do_attack_animation(M, ATTACK_EFFECT_PUNCH) + else + user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", "You hug [M] firmly to make [M.p_them()] feel better! [M] looks uncomfortable...") + if(M.resting) + M.resting = FALSE + M.update_canmove() + else + user.visible_message("[user] bops [M] on the head!", "You bop [M] on the head!") + playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE, -1) + if(CYBORG_SHOCK) + if(scooldown < world.time) + if(M.health >= 0) + if(ishuman(M)) + M.electrocute_act(5, "[user]", flags = SHOCK_NOGLOVES) + user.visible_message("[user] electrocutes [M] with [user.p_their()] touch!", "You electrocute [M] with your touch!") + else + if(!isrobot(M)) + M.adjustFireLoss(10) + user.visible_message("[user] shocks [M]!", "You shock [M]!") + else + user.visible_message("[user] shocks [M]. It does not seem to have an effect", "You shock [M] to no effect.") + playsound(loc, 'sound/effects/sparks2.ogg', 50, TRUE, -1) + user.cell.use(500) + scooldown = world.time + 20 + if(CYBORG_CRUSH) + if(ccooldown < world.time) + if(M.health >= 0) + if(ishuman(M)) + user.visible_message("[user] crushes [M] in [user.p_their()] grip!", "You crush [M] in your grip!") + else + user.visible_message("[user] crushes [M]!", "You crush [M]!") + playsound(loc, 'sound/weapons/smash.ogg', 50, TRUE, -1) + M.adjustBruteLoss(15) + user.cell.use(300) + ccooldown = world.time + 10 + +#undef CYBORG_HUGS +#undef CYBORG_HUG +#undef CYBORG_SHOCK +#undef CYBORG_CRUSH + /obj/item/borg/overdrive name = "Overdrive" icon = 'icons/obj/decals.dmi' diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index a0bd2a3f708..3eafc1a4182 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -120,6 +120,7 @@ desc = "Some sterile gauze to wrap around bloody stumps." icon_state = "gauze" origin_tech = "biotech=2" + max_amount = 12 heal_brute = 10 stop_bleeding = 1800 @@ -169,6 +170,7 @@ singular_name = "advanced trauma kit" desc = "An advanced trauma kit for severe injuries." icon_state = "traumakit" + max_amount = 6 heal_brute = 25 stop_bleeding = 0 @@ -233,6 +235,7 @@ icon = 'icons/obj/hydroponics/harvest.dmi' icon_state = "tea_aspera_leaves" color = "#378C61" + max_amount = 6 stop_bleeding = 0 heal_brute = 12 drop_sound = 'sound/misc/moist_impact.ogg' diff --git a/code/game/objects/items/weapons/batons.dm b/code/game/objects/items/weapons/batons.dm index 47ec7da88e9..e1f042c29f0 100644 --- a/code/game/objects/items/weapons/batons.dm +++ b/code/game/objects/items/weapons/batons.dm @@ -187,28 +187,5 @@ var/mob/living/carbon/human/H = user H.update_inv_l_hand() H.update_inv_r_hand() - // Update blood splatter - if(blood_overlay) - cut_overlay(blood_overlay) - qdel(blood_overlay) - add_blood_overlay(blood_overlay_color) playsound(loc, extend_sound, 50, TRUE) add_fingerprint(user) - -/obj/item/melee/classic_baton/telescopic/blood_splatter_index() - return "\ref[icon]-[icon_state]" - -/obj/item/melee/classic_baton/telescopic/add_blood_overlay(color) - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(!blood_splatter_icon) - blood_splatter_icon = icon(icon, icon_state) - blood_splatter_icon.Blend("#ffffff", ICON_ADD) - blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) - blood_splatter_icon = fcopy_rsc(blood_splatter_icon) - GLOB.blood_splatter_icons[index] = blood_splatter_icon - - blood_overlay = image(blood_splatter_icon) - blood_overlay.color = color - blood_overlay_color = color - add_overlay(blood_overlay) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 21ad71f329f..103ae32b58c 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -3,6 +3,7 @@ #define CUT_TIME 100 #define CLIMB_TIME 150 +#define FULL_CUT_TIME 300 #define NO_HOLE 0 //section is intact #define MEDIUM_HOLE 1 //medium hole in the section - can climb through @@ -88,29 +89,34 @@ . = TRUE if(shock(user, 100)) return - if(!cuttable) - to_chat(user, "This section of the fence can't be cut!") - return if(invulnerable) to_chat(user, "This fence is too strong to cut through!") return + if(!cuttable) + user.visible_message("[user] starts dismantling [src] with [W].",\ + "You start dismantling [src] with [W].") + if(W.use_tool(src, user, FULL_CUT_TIME, volume = W.tool_volume)) + user.visible_message("[user] completely dismantles [src].",\ + "You completely dismantle [src].") + qdel(src) + return var/current_stage = hole_size - user.visible_message("\The [user] starts cutting through \the [src] with \the [W].",\ - "You start cutting through \the [src] with \the [W].") + user.visible_message("[user] starts cutting through [src] with [W].",\ + "You start cutting through [src] with [W].") if(W.use_tool(src, user, CUT_TIME * W.toolspeed, volume = W.tool_volume)) if(current_stage == hole_size) switch(hole_size) if(NO_HOLE) - visible_message("\The [user] cuts into \the [src] some more.") - to_chat(user, "You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger.") + user.visible_message("[user] cuts into [src] some more.",\ + "You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger.") hole_size = MEDIUM_HOLE if(MEDIUM_HOLE) - visible_message("\The [user] completely cuts through \the [src].") - to_chat(user, "The hole in \the [src] is now big enough to walk through.") + user.visible_message("[user] completely cuts through [src].",\ + "The hole in [src] is now big enough to walk through.") hole_size = LARGE_HOLE if(LARGE_HOLE) - visible_message("\The [user] completely dismantles \the [src].") - to_chat(user, "You completely take apart \the [src].") + user.visible_message("[user] completely dismantles [src].",\ + "You completely take apart [src].") qdel(src) return update_cut_status() @@ -208,6 +214,7 @@ #undef CUT_TIME #undef CLIMB_TIME +#undef FULL_CUT_TIME #undef NO_HOLE #undef MEDIUM_HOLE diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index 2dc7a509206..82eb1335d10 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -9,6 +9,7 @@ climbable = TRUE layer = ABOVE_MOB_LAYER var/currently_climbed = FALSE + var/mover_dir = null /obj/structure/railing/corner //aesthetic corner sharp edges hurt oof ouch icon_state = "railing_corner" @@ -73,7 +74,11 @@ return TRUE if(mover.throwing) return TRUE - if(get_dir(loc, target) != dir) + mover_dir = get_dir(loc, target) + //Due to how the other check is done, it would always return density for ordinal directions no matter what + if(ordinal_direction_check()) + return FALSE + if(mover_dir != dir) return density return FALSE @@ -92,10 +97,30 @@ return TRUE if(currently_climbed) return TRUE - if(get_dir(O.loc, target) == dir) + mover_dir = get_dir(O.loc, target) + if(mover_dir == dir) + return FALSE + if(ordinal_direction_check()) return FALSE return TRUE +// Checks if the direction the mob is trying to move towards would be blocked by a corner railing +/obj/structure/railing/proc/ordinal_direction_check() + switch(dir) + if(5) + if(mover_dir == 1 || mover_dir == 4) + return TRUE + if(6) + if(mover_dir == 2 || mover_dir == 4) + return TRUE + if(9) + if(mover_dir == 1 || mover_dir == 8) + return TRUE + if(10) + if(mover_dir == 2 || mover_dir == 8) + return TRUE + return FALSE + /obj/structure/railing/do_climb(mob/living/user) var/initial_mob_loc = get_turf(user) . = ..() @@ -112,7 +137,7 @@ to_chat(user, "[src] cannot be rotated while it is fastened to the floor!") return FALSE - var/target_dir = turn(dir, -90) + var/target_dir = turn(dir, -45) if(!valid_window_location(loc, target_dir)) //Expanded to include rails, as well! to_chat(user, "[src] cannot be rotated in that direction!") @@ -133,4 +158,4 @@ if(!Adjacent(user)) return if(can_be_rotated(user)) - setDir(turn(dir, 90)) + setDir(turn(dir, 45)) diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index bf96754610d..8c0dd7ef830 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -76,7 +76,7 @@ if(!has_buckled_mobs()) return var/mob/living/buckled_mob = buckled_mobs[1] - if(istype(A, /obj/machinery/door)) + if(istype(A, /obj/machinery/door) || istype(A, /obj/machinery/gateway)) A.Bumped(buckled_mob) if(propelled) diff --git a/code/game/verbs/webmap.dm b/code/game/verbs/webmap.dm new file mode 100644 index 00000000000..714b501e808 --- /dev/null +++ b/code/game/verbs/webmap.dm @@ -0,0 +1,12 @@ +/client/verb/webmap() + set name = "webmap" + set hidden = TRUE + + if(!SSmapping.map_datum.webmap_url) + to_chat(usr, "The current map has no defined webmap. Please file an issue report.") + return + + if(alert(usr, "Do you want to open this map's Webmap in your browser?", "Webmap", "Yes", "No") != "Yes") + return + + usr << link(SSmapping.map_datum.webmap_url) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3768ccbf833..b2d554d7324 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -668,6 +668,10 @@ GLOBAL_LIST_INIT(admin_verbs_ticket, list( to_chat(src, "Error while re-adminning, admin rank ([rank]) does not exist.") return + // Do a little check here + if(GLOB.configuration.system.is_production && (GLOB.admin_ranks[rank] & R_ADMIN) && prefs._2fa_status == _2FA_DISABLED) // If they are an admin and their 2FA is disabled + to_chat(src,"You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.") // Very fucking obvious + return D = new(rank, GLOB.admin_ranks[rank], ckey) else if(!SSdbcore.IsConnected()) @@ -698,8 +702,12 @@ GLOBAL_LIST_INIT(admin_verbs_ticket, list( if(istext(flags)) flags = text2num(flags) + // Do a little check here + if(GLOB.configuration.system.is_production && (flags & R_ADMIN) && prefs._2fa_status == _2FA_DISABLED) // If they are an admin and their 2FA is disabled + to_chat(src,"You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.") // Very fucking obvious + qdel(admin_read) + return D = new(admin_rank, flags, ckey) - qdel(admin_read) var/client/C = GLOB.directory[ckey] diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm index 53860cdb627..c1e1c158665 100644 --- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm +++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm @@ -16,25 +16,28 @@ /obj/item/golem_shell/attackby(obj/item/I, mob/user, params) ..() var/static/list/golem_shell_species_types = list( - /obj/item/stack/sheet/metal = /datum/species/golem, - /obj/item/stack/sheet/glass = /datum/species/golem/glass, - /obj/item/stack/sheet/plasteel = /datum/species/golem/plasteel, - /obj/item/stack/ore/glass = /datum/species/golem/sand, - /obj/item/stack/sheet/mineral/sandstone = /datum/species/golem/sand, - /obj/item/stack/sheet/mineral/plasma = /datum/species/golem/plasma, - /obj/item/stack/sheet/mineral/diamond = /datum/species/golem/diamond, - /obj/item/stack/sheet/mineral/gold = /datum/species/golem/gold, - /obj/item/stack/sheet/mineral/silver = /datum/species/golem/silver, - /obj/item/stack/sheet/mineral/uranium = /datum/species/golem/uranium, - /obj/item/stack/sheet/mineral/bananium = /datum/species/golem/bananium, - /obj/item/stack/sheet/mineral/tranquillite = /datum/species/golem/tranquillite, - /obj/item/stack/sheet/mineral/titanium = /datum/species/golem/titanium, - /obj/item/stack/sheet/mineral/plastitanium = /datum/species/golem/plastitanium, - /obj/item/stack/sheet/mineral/abductor = /datum/species/golem/alloy, - /obj/item/stack/sheet/wood = /datum/species/golem/wood, - /obj/item/stack/sheet/bluespace_crystal = /datum/species/golem/bluespace, - /obj/item/stack/sheet/mineral/adamantine = /datum/species/golem/adamantine, - /obj/item/stack/sheet/plastic = /datum/species/golem/plastic) + /obj/item/stack/sheet/metal = /datum/species/golem, + /obj/item/stack/sheet/glass = /datum/species/golem/glass, + /obj/item/stack/sheet/plasteel = /datum/species/golem/plasteel, + /obj/item/stack/ore/glass = /datum/species/golem/sand, + /obj/item/stack/sheet/mineral/sandstone = /datum/species/golem/sand, + /obj/item/stack/sheet/mineral/plasma = /datum/species/golem/plasma, + /obj/item/stack/sheet/mineral/diamond = /datum/species/golem/diamond, + /obj/item/stack/sheet/mineral/gold = /datum/species/golem/gold, + /obj/item/stack/sheet/mineral/silver = /datum/species/golem/silver, + /obj/item/stack/sheet/mineral/uranium = /datum/species/golem/uranium, + /obj/item/stack/sheet/mineral/bananium = /datum/species/golem/bananium, + /obj/item/stack/sheet/mineral/tranquillite = /datum/species/golem/tranquillite, + /obj/item/stack/sheet/mineral/titanium = /datum/species/golem/titanium, + /obj/item/stack/sheet/mineral/plastitanium = /datum/species/golem/plastitanium, + /obj/item/stack/sheet/mineral/abductor = /datum/species/golem/alloy, + /obj/item/stack/sheet/wood = /datum/species/golem/wood, + /obj/item/stack/sheet/bluespace_crystal = /datum/species/golem/bluespace, + /obj/item/stack/medical/bruise_pack = /datum/species/golem/cloth, + /obj/item/stack/medical/bruise_pack/improvised = /datum/species/golem/cloth, + /obj/item/stack/sheet/cloth = /datum/species/golem/cloth, + /obj/item/stack/sheet/mineral/adamantine = /datum/species/golem/adamantine, + /obj/item/stack/sheet/plastic = /datum/species/golem/plastic) if(istype(I, /obj/item/stack)) var/obj/item/stack/O = I diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 9e7858e20b1..f71085b58a5 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -339,11 +339,21 @@ spawn() // Goonchat does some non-instant checks in start() chatOutput.start() + var/_2fa_alert = FALSE // This is so we can display the message where it will be seen if(holder) - on_holder_add() - add_admin_verbs() - // Must be async because any sleeps (happen in sql queries) will break connectings clients - INVOKE_ASYNC(src, .proc/admin_memo_output, "Show", FALSE, TRUE) + if(GLOB.configuration.system.is_production && (holder.rights & R_ADMIN) && prefs._2fa_status == _2FA_DISABLED) // If they are an admin and their 2FA is disabled + // No, check_rights() does not work in the above proc, because we dont have a mob yet + _2fa_alert = TRUE + // This also has to be manually done since no mob to use check_rights() on + deadmin() + verbs += /client/proc/readmin + GLOB.deadmins += ckey + else + on_holder_add() + add_admin_verbs() + // Must be async because any sleeps (happen in sql queries) will break connectings clients + INVOKE_ASYNC(src, .proc/admin_memo_output, "Show", FALSE, TRUE) + // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays. // (but turn them off first, since sometimes BYOND doesn't turn them on properly otherwise) @@ -416,6 +426,9 @@ if(check_rights(R_ADMIN, FALSE, mob)) // Mob is required. Dont even try without it. to_chat(src, "The queue server is currently [SSqueue.queue_enabled ? "enabled" : "disabled"], with a threshold of [SSqueue.queue_threshold]. This [SSqueue.persist_queue ? "will" : "will not"] persist through rounds.") + if(_2fa_alert) + to_chat(src,"You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.") // Very fucking obvious + /client/proc/is_connecting_from_localhost() var/localhost_addresses = list("127.0.0.1", "::1") // Adresses @@ -826,6 +839,7 @@ winset(src, "rpane.forumb", "background-color=#40628a;text-color=#FFFFFF") winset(src, "rpane.rulesb", "background-color=#40628a;text-color=#FFFFFF") winset(src, "rpane.githubb", "background-color=#40628a;text-color=#FFFFFF") + winset(src, "rpane.webmap", "background-color=#40628a;text-color=#FFFFFF") /* Mainwindow */ winset(src, "mainwindow.saybutton", "background-color=#40628a;text-color=#FFFFFF") winset(src, "mainwindow.mebutton", "background-color=#40628a;text-color=#FFFFFF") @@ -858,6 +872,7 @@ winset(src, "rpane.forumb", "background-color=none;text-color=#000000") winset(src, "rpane.rulesb", "background-color=none;text-color=#000000") winset(src, "rpane.githubb", "background-color=none;text-color=#000000") + winset(src, "rpane.webmap", "background-color=none;text-color=#000000") /* Mainwindow */ winset(src, "mainwindow.saybutton", "background-color=none;text-color=#000000") winset(src, "mainwindow.mebutton", "background-color=none;text-color=#000000") diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index bbcebdc519d..ea74a9778ca 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -458,10 +458,12 @@ BLIND // can't see anything /obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/match) && src.loc == user) var/obj/item/match/M = I - if(M.matchignite()) // Match isn't lit, but isn't burnt. + if(!M.lit && !M.burnt) // Match isn't lit, but isn't burnt. user.visible_message("[user] strikes a [M] on the bottom of [src], lighting it.","You strike [M] on the bottom of [src] to light it.") + M.matchignite() playsound(user.loc, 'sound/goonstation/misc/matchstick_light.ogg', 50, 1) - else + return + if(M.lit && !M.burnt) user.visible_message("[user] crushes [M] into the bottom of [src], extinguishing it.","You crush [M] into the bottom of [src], extinguishing it.") M.dropped() return diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 2a03c6f0a60..7cc16ade700 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -64,7 +64,7 @@ desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" origin_tech = "magnets=2;engineering=2" - HUDType = DATA_HUD_DIAGNOSTIC + HUDType = DATA_HUD_DIAGNOSTIC_BASIC sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index ac6477a81e5..bf52be51cdb 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -165,12 +165,10 @@ /obj/item/clothing/gloves/fingerless/rapid/Touch(mob/living/target, proximity = TRUE) var/mob/living/M = loc - if(M.a_intent in accepted_intents) - if(M.mind.martial_art || HAS_TRAIT(M, TRAIT_HULK)) - M.changeNext_move(CLICK_CD_MELEE)//normal attack speed for hulk, CQC and Carp. - else - M.changeNext_move(click_speed_modifier) - .= FALSE + if((M.a_intent in accepted_intents) && !M.mind.martial_art?.can_use(M) && !HAS_TRAIT(M, TRAIT_HULK)) + M.changeNext_move(click_speed_modifier) + + return FALSE /obj/item/clothing/gloves/fingerless/rapid/admin name = "advanced interactive gloves" diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index 0d96d940233..535cd7f0435 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -5,7 +5,7 @@ icon_state = "hardsuit0-ert_commander" item_state = "helm-command" item_color = "ert_commander" - armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 80, acid = 80) + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 50, FIRE = 80, ACID = 80) resistance_flags = FIRE_PROOF var/obj/machinery/camera/camera var/has_camera = TRUE @@ -50,7 +50,7 @@ item_state = "suit-command" w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword/saber,/obj/item/restraints/handcuffs,/obj/item/tank/internals) - armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 80, acid = 80) + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 50, FIRE = 80, ACID = 80) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/rcd, /obj/item/crowbar, \ /obj/item/screwdriver, /obj/item/weldingtool, /obj/item/wirecutters, /obj/item/wrench, /obj/item/multitool, \ /obj/item/radio, /obj/item/analyzer, /obj/item/gun, /obj/item/melee/baton, /obj/item/reagent_containers/spray/pepper, \ @@ -121,6 +121,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/ert/engineer name = "emergency response team engineer helmet" desc = "A helmet worn by engineers of a Nanotrasen Emergency Response Team. Has yellow highlights. Armoured and space ready." + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 75, FIRE = 80, ACID = 80) icon_state = "hardsuit0-ert_engineer" item_state = "helm-orange" item_color = "ert_engineer" @@ -129,6 +130,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/ert/engineer/gamma name = "elite emergency response team engineer helmet" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 100, FIRE = 80, ACID = 80) icon_state = "hardsuit0-gammaengineer" item_color = "gammaengineer" @@ -137,12 +139,14 @@ desc = "A suit worn by the engineers of a Nanotrasen Emergency Response Team. Has yellow highlights. Armoured, space ready, and fire resistant." icon_state = "ert_engineer" item_state = "suit-orange" + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 75, FIRE = 80, ACID = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engineer /obj/item/clothing/suit/space/hardsuit/ert/engineer/gamma name = "elite emergency response team engineer suit" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT icon_state = "ert_gengineer" + armor = list(MELEE = 45, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 100, FIRE = 80, ACID = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engineer/gamma //Medical diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index de2084f21b9..3e851544b65 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -512,8 +512,8 @@ var/mob/living/carbon/human/U = user if(istype(U.glasses, /obj/item/clothing/glasses/hud/diagnostic)) // If they are for some reason wearing a diagnostic hud when they put the helmet on return // already have a hud - var/datum/atom_hud/H = GLOB.huds[DATA_HUD_DIAGNOSTIC] - H.add_hud_to(U) + var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] + DHUD.add_hud_to(user) hud_active = TRUE @@ -521,8 +521,8 @@ ..() if((user.head == src) && hud_active) GLOB.doppler_arrays -= src - var/datum/atom_hud/H = GLOB.huds[DATA_HUD_DIAGNOSTIC] - H.remove_hud_from(user) + var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] + DHUD.remove_hud_from(user) /obj/item/clothing/head/helmet/space/hardsuit/rd/proc/sense_explosion(x0, y0, z0, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 65d820ce43f..4f15e3983e4 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -27,6 +27,7 @@ var/mob/living/simple_animal/mouse/blobinfected/B = new(vent.loc) var/mob/M = pick(candidates) B.key = M.key + B.mind.special_role = SPECIAL_ROLE_BLOB SSticker.mode.update_blob_icons_added(B.mind) to_chat(B, "You are now a mouse, infected with blob spores. Find somewhere isolated... before you burst and become the blob! Use ventcrawl (alt-click on vents) to move around.") diff --git a/code/modules/food_and_drinks/food/foods/seafood.dm b/code/modules/food_and_drinks/food/foods/seafood.dm index 0edb18df72f..d3f291828ca 100644 --- a/code/modules/food_and_drinks/food/foods/seafood.dm +++ b/code/modules/food_and_drinks/food/foods/seafood.dm @@ -3,7 +3,7 @@ name = "carp fillet" desc = "A fillet of spess carp meat." icon = 'icons/obj/food/seafood.dmi' - icon_state = "fishfillet" + icon_state = "carpfillet" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use. filling_color = "#FFDEFE" bitesize = 6 list_reagents = list("protein" = 3, "carpotoxin" = 2, "vitamin" = 2) @@ -13,7 +13,7 @@ name = "raw salmon" desc = "A fillet of raw salmon." icon = 'icons/obj/food/seafood.dmi' - icon_state = "fishfillet" + icon_state = "salmonfillet" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use. filling_color = "#FFDEFE" bitesize = 6 list_reagents = list("protein" = 3, "vitamin" = 2) @@ -23,7 +23,7 @@ name = "salmon steak" desc = "A fillet of freshly-grilled salmon meat." icon = 'icons/obj/food/seafood.dmi' - icon_state = "salmonsteak" + icon_state = "salmonsteak" // Sprite based on one created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use. trash = /obj/item/trash/plate filling_color = "#7A3D11" bitesize = 3 @@ -34,7 +34,7 @@ name = "raw catfish" desc = "A fillet of raw catfish." icon = 'icons/obj/food/seafood.dmi' - icon_state = "fishfillet" + icon_state = "catfishfillet" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use. filling_color = "#FFDEFE" bitesize = 6 list_reagents = list("protein" = 3, "vitamin" = 2) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 6d1f482adf9..4c712b9ece6 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -237,7 +237,7 @@ var/K = item_quants[i] var/count = item_quants[K] if(count > 0) - items.Add(list(list("display_name" = html_encode(capitalize(K)), "vend" = i, "quantity" = count))) + items.Add(list(list("display_name" = capitalize(K), "vend" = i, "quantity" = count))) if(length(items)) data["contents"] = items diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 154f0aacbfd..fa91c03336d 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -206,17 +206,6 @@ H.update_inv_l_hand() H.update_inv_r_hand() add_fingerprint(user) - if(!blood_DNA) - return - if(blood_overlay && (blood_DNA.len >= 1)) //updated blood overlay, if any - overlays.Cut() //this might delete other item overlays as well but eeeeeh - - var/icon/I = new /icon(icon, icon_state) - I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)), ICON_ADD) - I.Blend(new /icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) - blood_overlay = I - overlays += blood_overlay - // ************************************* // Nutrient defines for hydroponics diff --git a/code/modules/mapping/base_map_datum.dm b/code/modules/mapping/base_map_datum.dm index 6a5c7260f3a..a1962d8bba1 100644 --- a/code/modules/mapping/base_map_datum.dm +++ b/code/modules/mapping/base_map_datum.dm @@ -12,3 +12,5 @@ var/technical_name /// Path to the map file var/map_path + /// URL to the maps webmap + var/webmap_url diff --git a/code/modules/mapping/cyberiad.dm b/code/modules/mapping/cyberiad.dm index 29c27d59c73..46850a42682 100644 --- a/code/modules/mapping/cyberiad.dm +++ b/code/modules/mapping/cyberiad.dm @@ -2,3 +2,4 @@ fluff_name = "NSS Cyberiad" technical_name = "Cyberiad" map_path = "_maps/map_files/cyberiad/cyberiad.dmm" + webmap_url = "https://affectedarc07.github.io/SS13WebMap/Paradise/Cyberiad/" diff --git a/code/modules/mapping/delta.dm b/code/modules/mapping/delta.dm index 6b8bbce94cd..3eceefb2012 100644 --- a/code/modules/mapping/delta.dm +++ b/code/modules/mapping/delta.dm @@ -2,3 +2,4 @@ fluff_name = "NSS Kerberos" technical_name = "Delta" map_path = "_maps/map_files/Delta/delta.dmm" + webmap_url = "https://affectedarc07.github.io/SS13WebMap/Paradise/Delta/" diff --git a/code/modules/mapping/metastation.dm b/code/modules/mapping/metastation.dm index 654aad46ac8..461d02cfc44 100644 --- a/code/modules/mapping/metastation.dm +++ b/code/modules/mapping/metastation.dm @@ -2,3 +2,4 @@ fluff_name = "NSS Cerebron" technical_name = "MetaStation" map_path = "_maps/map_files/MetaStation/MetaStation.dmm" + webmap_url = "https://affectedarc07.github.io/SS13WebMap/Paradise/MetaStation/" diff --git a/code/modules/mining/lavaland/loot/colossus_loot.dm b/code/modules/mining/lavaland/loot/colossus_loot.dm index b8b2a96402f..fb608d1b359 100644 --- a/code/modules/mining/lavaland/loot/colossus_loot.dm +++ b/code/modules/mining/lavaland/loot/colossus_loot.dm @@ -82,23 +82,6 @@ new random_crystal(loc) qdel(src) -/obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing - activation_method = "mob_bump" - activation_sound = 'sound/items/bikehorn.ogg' - -/obj/machinery/anomalous_crystal/honk/ActivationReaction(mob/user) - if(..() && ishuman(user) && !(user in affected_targets)) - var/mob/living/carbon/human/H = user - for(var/obj/item/W in H) - H.unEquip(W) - var/datum/job/clown/C = SSjobs.GetJob("Clown") - C.equip(H) - affected_targets.Add(H) - -/obj/machinery/anomalous_crystal/honk/New() - ..() - activation_method = pick("mob_bump","speech") - /obj/machinery/anomalous_crystal/theme_warp //Warps the area you're in to look like a new one activation_method = "touch" cooldown_add = 200 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e32efa0c05a..e86857ef91e 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -339,7 +339,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp * * user - A reference to the ghost's old mob. This argument is required since `src` does not have a `client` at this point. */ /mob/dead/observer/proc/toggle_all_huds_on(mob/user) - show_me_the_hud(DATA_HUD_DIAGNOSTIC) + show_me_the_hud(DATA_HUD_DIAGNOSTIC_ADVANCED) show_me_the_hud(DATA_HUD_SECURITY_ADVANCED) show_me_the_hud(DATA_HUD_MEDICAL_ADVANCED) if(!check_rights((R_ADMIN | R_MOD), FALSE, user)) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 20b2a4d375a..0d67959c5e2 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -31,10 +31,6 @@ update_static_data(owner, ui) . = TRUE -/datum/orbit_menu/ui_data(mob/user) - var/list/data = list() - return data - /datum/orbit_menu/ui_static_data(mob/user) var/list/data = list() @@ -96,6 +92,7 @@ ) if(SSticker && SSticker.mode) other_antags += list( + "Blob" = (mind.special_role == SPECIAL_ROLE_BLOB), "Cultist" = (mind in SSticker.mode.cult), "Wizard" = (mind in SSticker.mode.wizards), "Wizard's Apprentice" = (mind in SSticker.mode.apprentices), @@ -121,6 +118,10 @@ var/list/antag_serialized = serialized.Copy() antag_serialized["antag"] = "Terror Spider" antagonists += list(antag_serialized) + else if(istype(M, /mob/living/simple_animal/revenant)) + var/list/antag_serialized = serialized.Copy() + antag_serialized["antag"] = "Revenant" + antagonists += list(antag_serialized) else misc += list(serialized) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 40a53d4ffab..b832ad724ef 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -207,6 +207,14 @@ items += s_store return items +/mob/living/proc/unequip_everything() + var/list/items = list() + items |= get_equipped_items(TRUE) + for(var/I in items) + unEquip(I) + drop_l_hand() + drop_r_hand() + /obj/item/proc/equip_to_best_slot(mob/M) if(src != M.get_active_hand()) to_chat(M, "You are not holding anything to equip!") diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index e48aa549c50..d3bf2007322 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -674,3 +674,107 @@ /datum/unarmed_attack/golem/tranquillite attack_sound = null + +/datum/species/golem/cloth + name = "Cloth Golem" + icobase = 'icons/mob/human_races/r_cloth_golem.dmi' + flesh_color = "#E9E9E9" + blood_color = "#E9E9E9" + info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable. \ + Being made of cloth, your body is magic resistant and faster than that of other golems, but weaker and less resilient." + inherent_traits = list(TRAIT_RESISTCOLD, TRAIT_NOBREATH, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_CHUNKYFINGERS, TRAIT_NOPAIN) + inherent_biotypes = MOB_UNDEAD | MOB_HUMANOID + brute_mod = 0.85 //15% damage reduction + burn_mod = 1.7 // don't get burned + tox_mod = 0.85 + clone_mod = 0.85 + brain_mod = 0.85 + stamina_mod = 0.85 + speed_mod = 1 // not as heavy as stone + punchdamagelow = 4 + punchstunthreshold = 7 + punchdamagehigh = 8 // not as heavy as stone + prefix = "Cloth" + golem_colour = null + special_names = null + +/datum/species/golem/cloth/get_random_name() + var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ + "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh + var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" + return golem_name + +/datum/species/golem/cloth/handle_life(mob/living/carbon/human/H) + if(H.fire_stacks < 1) + H.adjust_fire_stacks(1) //always prone to burning + ..() + +/datum/species/golem/cloth/handle_death(gibbed, mob/living/carbon/human/H) + if(gibbed) + return + if(H.on_fire) + H.visible_message("[H] burns into ash!") + H.dust() + return + + H.visible_message("[H] falls apart into a pile of bandages!") + new /obj/structure/cloth_pile(get_turf(H), H) + ..() + +/obj/structure/cloth_pile + name = "pile of bandages" + desc = "It emits a strange aura, as if there was still life within it..." + max_integrity = 50 + armor = list(MELEE = 90, BULLET = 90, LASER = 25, ENERGY = 80, BOMB = 50, BIO = 100, FIRE = -50, ACID = -50) + icon = 'icons/obj/items.dmi' + icon_state = "pile_bandages" + resistance_flags = FLAMMABLE + var/revive_time = 900 + var/mob/living/carbon/human/cloth_golem + +/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) + . = ..() + if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) + H.unequip_everything() + H.forceMove(src) + cloth_golem = H + to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") + addtimer(CALLBACK(src, .proc/revive), revive_time) + else + return INITIALIZE_HINT_QDEL + +/obj/structure/cloth_pile/Destroy() + QDEL_NULL(cloth_golem) + return ..() + +/obj/structure/cloth_pile/burn() + visible_message("[src] burns into ash!") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + ..() + +/obj/structure/cloth_pile/proc/revive() + if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime + return + if(cloth_golem.suiciding) + QDEL_NULL(cloth_golem) + return + + invisibility = INVISIBILITY_MAXIMUM //disappear before the animation + new /obj/effect/temp_visual/mummy_animation(get_turf(src)) + cloth_golem.revive() + cloth_golem.grab_ghost() //won't pull if it's a suicide + sleep(20) + cloth_golem.forceMove(get_turf(src)) + cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!", "You reform into yourself!") + cloth_golem = null + qdel(src) + +/obj/structure/cloth_pile/attackby(obj/item/P, mob/living/carbon/human/user, params) + . = ..() + + if(resistance_flags & ON_FIRE) + return + + if(is_hot(P)) + visible_message("[src] bursts into flames!") + fire_act() diff --git a/code/modules/mob/living/carbon/human/species/slime.dm b/code/modules/mob/living/carbon/human/species/slime.dm index c849615e4a0..59dc44026ee 100644 --- a/code/modules/mob/living/carbon/human/species/slime.dm +++ b/code/modules/mob/living/carbon/human/species/slime.dm @@ -88,9 +88,8 @@ /datum/species/slime/proc/blend(mob/living/carbon/human/H) var/new_color = BlendRGB(H.skin_colour, "#acacac", 0.5) // Blends this to make it work better - if(H.blood_color != new_color) // Put here, so if it's a roundstart, dyed, or CMA'd slime, their blood changes to match skin - H.blood_color = new_color - H.dna.species.blood_color = H.blood_color + if(H.dna.species.blood_color != new_color) // Put here, so if it's a roundstart, dyed, or CMA'd slime, their blood changes to match skin + H.dna.species.blood_color = new_color /datum/species/slime/handle_life(mob/living/carbon/human/H) // Slowly shifting to the color of the reagents diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 5d20cb66209..47c383e1a33 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -44,6 +44,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( move_resist = MOVE_FORCE_NORMAL density = 1 status_flags = CANSTUN|CANPARALYSE|CANPUSH + d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED mob_size = MOB_SIZE_LARGE sight = SEE_TURFS | SEE_MOBS | SEE_OBJS see_in_dark = 8 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5748775558a..8affd317c6a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -300,7 +300,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( /mob/living/silicon/robot/proc/pick_module() if(module) return - var/list/modules = list("Generalist", "Engineering", "Medical", "Miner", "Janitor", "Service", "Security") + var/list/modules = list("Engineering", "Medical", "Miner", "Janitor", "Service") if(islist(force_modules) && force_modules.len) modules = force_modules.Copy() if(mmi != null && mmi.alien) @@ -315,14 +315,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( return switch(modtype) - if("Generalist") - module = new /obj/item/robot_module/standard(src) - module.channels = list("Engineering" = 1, "Medical" = 1, "Security" = 1, "Service" = 1, "Supply" = 1) - module_sprites["Basic"] = "robot_old" - module_sprites["Android"] = "droid" - module_sprites["Default"] = "Standard" - module_sprites["Noble-STD"] = "Noble-STD" - if("Service") module = new /obj/item/robot_module/butler(src) module.channels = list("Service" = 1) @@ -365,17 +357,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( see_reagents = TRUE if("Security") - if(!weapons_unlock) - var/count_secborgs = 0 - for(var/mob/living/silicon/robot/R in GLOB.alive_mob_list) - if(R && R.stat != DEAD && R.module && istype(R.module, /obj/item/robot_module/security)) - count_secborgs++ - var/max_secborgs = 2 - if(GLOB.security_level == SEC_LEVEL_GREEN) - max_secborgs = 1 - if(count_secborgs >= max_secborgs) - to_chat(src, "There are too many Security cyborgs active. Please choose another module.") - return module = new /obj/item/robot_module/security(src) module.channels = list("Security" = 1) module_sprites["Basic"] = "secborg" @@ -1349,7 +1330,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( scrambledcodes = 1 req_one_access = list(ACCESS_CENT_SPECOPS) ionpulse = 1 - force_modules = list("Engineering", "Medical", "Security") + force_modules = list("Engineering", "Medical") static_radio_channels = 1 allow_rename = FALSE weapons_unlock = TRUE diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8a43a2a011e..ab7c4ff9562 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -265,47 +265,6 @@ /obj/item/robot_module/proc/handle_death(mob/living/silicon/robot/R, gibbed) return -// Standard cyborg module. -/obj/item/robot_module/standard - // if station is fine, assist with constructing station goal room, cleaning, and repairing cables chewed by rats - // if medical crisis, assist by providing basic healthcare, retrieving corpses, and monitoring crew lifesigns - // if eng crisis, assist by helping repair hull breaches - // if sec crisis, assist by opening doors for sec and providing backup zipties on patrols - name = "generalist robot module" - module_type = "Standard" - subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor, /mob/living/silicon/proc/subsystem_crew_monitor) - basic_modules = list( - // sec - /obj/item/flash/cyborg, - /obj/item/restraints/handcuffs/cable/zipties/cyborg, - // janitorial - /obj/item/soap/nanotrasen, - /obj/item/lightreplacer/cyborg, - // eng - /obj/item/crowbar/cyborg, - /obj/item/wrench/cyborg, - /obj/item/extinguisher, // for firefighting, and propulsion in space - /obj/item/weldingtool/largetank/cyborg, - // mining - /obj/item/pickaxe, - /obj/item/t_scanner/adv_mining_scanner, - /obj/item/storage/bag/ore/cyborg, - // med - /obj/item/healthanalyzer, - /obj/item/reagent_containers/borghypo/basic, - /obj/item/roller_holder, // for taking the injured to medbay without worsening their injuries or leaving a blood trail the whole way - /obj/item/stack/sheet/metal/cyborg, - /obj/item/stack/cable_coil/cyborg, - /obj/item/stack/rods/cyborg, - /obj/item/stack/tile/plasteel/cyborg - ) - emag_modules = list(/obj/item/melee/energy/sword/cyborg) - special_rechargables = list( - /obj/item/extinguisher, - /obj/item/weldingtool/largetank/cyborg, - /obj/item/lightreplacer/cyborg - ) - // Medical cyborg module. /obj/item/robot_module/medical name = "medical robot module" @@ -319,6 +278,7 @@ /obj/item/borg_defib, /obj/item/handheld_defibrillator, /obj/item/roller_holder, + /obj/item/borg/cyborghug, /obj/item/reagent_containers/borghypo, /obj/item/scalpel/laser/laser1, /obj/item/hemostat, diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 3770f1125e2..2ca6822951a 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -20,7 +20,7 @@ var/list/speech_synthesizer_langs = list() //which languages can be vocalized by the speech synthesizer var/designation = "" var/obj/item/camera/siliconcam/aiCamera = null //photography -//Used in say.dm, allows for pAIs to have different say flavor text, as well as silicons, although the latter is not implemented. + //Used in say.dm, allows for pAIs to have different say flavor text, as well as silicons, although the latter is not implemented. var/speak_statement = "states" var/speak_exclamation = "declares" var/speak_query = "queries" @@ -34,7 +34,7 @@ var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use - var/d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED //There is only one kind of diag hud + var/d_hud = DATA_HUD_DIAGNOSTIC_BASIC //There is only one kind of diag hud var/obj/item/radio/common_radio @@ -46,13 +46,14 @@ RegisterSignal(SSalarm, COMSIG_TRIGGERED_ALARM, .proc/alarm_triggered) RegisterSignal(SSalarm, COMSIG_CANCELLED_ALARM, .proc/alarm_cancelled) -/mob/living/silicon/Initialize() +/mob/living/silicon/Initialize(mapload) . = ..() - var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC] - diag_hud.add_to_hud(src) + for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) + diag_hud.add_to_hud(src) diag_hud_set_status() diag_hud_set_health() + /mob/living/silicon/med_hud_set_health() return //we use a different hud @@ -311,10 +312,10 @@ /mob/living/silicon/proc/remove_med_sec_hud() var/datum/atom_hud/secsensor = GLOB.huds[sec_hud] var/datum/atom_hud/medsensor = GLOB.huds[med_hud] - for(var/datum/atom_hud/data/diagnostic/diagsensor in GLOB.huds) - diagsensor.remove_hud_from(src) + var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] secsensor.remove_hud_from(src) medsensor.remove_hud_from(src) + diagsensor.remove_hud_from(src) /mob/living/silicon/proc/add_sec_hud() @@ -326,8 +327,8 @@ medsensor.add_hud_to(src) /mob/living/silicon/proc/add_diag_hud() - for(var/datum/atom_hud/data/diagnostic/diagsensor in GLOB.huds) - diagsensor.add_hud_to(src) + var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] + diagsensor.add_hud_to(src) /mob/living/silicon/proc/toggle_sensor_mode() diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index aeb51e55d8c..856afafb25d 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -78,7 +78,7 @@ var/control_freq = BOT_FREQ // bot control frequency var/bot_filter // The radio filter the bot uses to identify itself on the network. var/bot_type = 0 //The type of bot it is, for radio control. - var/data_hud_type = DATA_HUD_DIAGNOSTIC //The type of data HUD the bot uses. Diagnostic by default. + var/data_hud_type = DATA_HUD_DIAGNOSTIC_BASIC //The type of data HUD the bot uses. Diagnostic by default. //This holds text for what the bot is mode doing, reported on the remote bot control interface. var/list/mode_name = list("In Pursuit","Preparing to Arrest", "Arresting", \ "Beginning Patrol", "Patrolling", "Summoned by PDA", \ @@ -1079,6 +1079,8 @@ Pass a positive integer as an argument to override a bot's default speed. if(newpath) for(var/i in 1 to newpath.len) var/turf/T = newpath[i] + if(T == loc) //don't bother putting an image if it's where we already exist. + continue var/direction = NORTH if(i > 1) var/turf/prevT = path[i - 1] @@ -1121,7 +1123,7 @@ Pass a positive integer as an argument to override a bot's default speed. return var/image/I = path[path[1]] if(I) - I.icon = null + I.icon_state = null path.Cut(1, 2) /mob/living/simple_animal/bot/proc/drop_part(obj/item/drop_item, dropzone) diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 00a90f64026..41a568559e0 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -108,6 +108,8 @@ to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") throw_alert(gestalt_alert, /obj/screen/alert/nymph, new_master = src) //adds a screen alert that can call resist forceMove(M) + else if(isrobot(M)) + M.visible_message("[M] playfully boops [src] on the head!", "You playfully boop [src] on the head!") else get_scooped(M) else diff --git a/code/modules/mob/living/simple_animal/hostile/mining/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining/gutlunch.dm index c5c50177511..87e35f1157e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/gutlunch.dm @@ -1,7 +1,7 @@ //Gutlunches, passive mods that devour blood and gibs /mob/living/simple_animal/hostile/asteroid/gutlunch name = "gutlunch" - desc = "A scavenger that eats raw meat, often found alongside ash walkers. Produces a thick, nutritious milk." + desc = "A scavenger that eats raw meat, often found alongside ash walkers. Produces a thick, medicinally nutritious milk." icon = 'icons/mob/lavaland/lavaland_monsters.dmi' icon_state = "gutlunch" icon_living = "gutlunch" @@ -104,7 +104,9 @@ if(prob(60)) reagents.add_reagent("cream", rand(2, 5)) if(prob(45)) - reagents.add_reagent("salglu_solution", rand(2,5)) + reagents.add_reagent("salglu_solution", rand(2, 5)) + if(prob(30)) + reagents.add_reagent("epinephrine", rand(2, 5)) //Male gutlunch. They're smaller and more colorful! diff --git a/code/modules/power/treadmill.dm b/code/modules/power/treadmill.dm index 2ffc4f301f4..2d35e35d532 100644 --- a/code/modules/power/treadmill.dm +++ b/code/modules/power/treadmill.dm @@ -40,7 +40,7 @@ /obj/machinery/power/treadmill/proc/throw_off(atom/movable/A) // if 2fast, throw the person, otherwise they just slide off, if there's reasonable speed at all - if(speed) + if(speed && A.move_resist < INFINITY) var/dist = max(throw_dist * speed / MAX_SPEED, 1) A.throw_at(get_distant_turf(get_turf(src), reverse_direction(dir), dist), A.throw_range, A.throw_speed, src, 1) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 97e85cb7857..b68fd5f2b56 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -319,6 +319,19 @@ return ui_interact(user) +/obj/machinery/chem_dispenser/AltClick(mob/user) + if(!is_drink || !Adjacent(user)) + return + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(anchored) + to_chat(user, "[src] is anchored to the floor!") + return + pixel_x = 0 + pixel_y = 0 + setDir(turn(dir, 90)) + /obj/machinery/chem_dispenser/soda icon_state = "soda_dispenser" name = "soda fountain" diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 52a54e47a3b..17ca9085a3a 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -17,75 +17,76 @@ //IMPORTANT NOTE! A negative number is a multiplier, a positive number is a flat amount to add. 0 means equal to the amount of the original reagent var/list/blend_items = list ( - //Sheets - /obj/item/stack/sheet/mineral/plasma = list("plasma_dust" = 20), - /obj/item/stack/sheet/metal = list("iron" = 20), - /obj/item/stack/rods = list("iron" = 10), - /obj/item/stack/sheet/plasteel = list("iron" = 20, "plasma_dust" = 20), - /obj/item/stack/sheet/wood = list("carbon" = 20), - /obj/item/stack/sheet/glass = list("silicon" = 20), - /obj/item/stack/sheet/rglass = list("silicon" = 20, "iron" = 20), - /obj/item/stack/sheet/mineral/uranium = list("uranium" = 20), - /obj/item/stack/sheet/mineral/bananium = list("banana" = 20), - /obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20), - /obj/item/stack/sheet/mineral/silver = list("silver" = 20), - /obj/item/stack/sheet/mineral/gold = list("gold" = 20), - /obj/item/grown/nettle/basic = list("wasabi" = 0), - /obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0), - /obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), + //Sheets + /obj/item/stack/sheet/mineral/plasma = list("plasma_dust" = 20), + /obj/item/stack/sheet/metal = list("iron" = 20), + /obj/item/stack/rods = list("iron" = 10), + /obj/item/stack/sheet/plasteel = list("iron" = 20, "plasma_dust" = 20), + /obj/item/stack/sheet/wood = list("carbon" = 20), + /obj/item/stack/sheet/glass = list("silicon" = 20), + /obj/item/stack/sheet/rglass = list("silicon" = 20, "iron" = 20), + /obj/item/stack/sheet/mineral/uranium = list("uranium" = 20), + /obj/item/stack/sheet/mineral/bananium = list("banana" = 20), + /obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20), + /obj/item/stack/sheet/mineral/silver = list("silver" = 20), + /obj/item/stack/sheet/mineral/gold = list("gold" = 20), - //Blender Stuff - /obj/item/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0), - /obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), - /obj/item/reagent_containers/food/snacks/grown/oat = list("flour" = -5), - /obj/item/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), - /obj/item/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0), - /obj/item/reagent_containers/food/snacks/egg = list("egg" = -5), - /obj/item/reagent_containers/food/snacks/grown/rice = list("rice" = -5), + /obj/item/grown/nettle/basic = list("wasabi" = 0), + /obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0), + /obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), - //Grinder stuff, but only if dry - /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), - /obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), - /obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), - /obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0), + //Blender Stuff + /obj/item/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0), + /obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), + /obj/item/reagent_containers/food/snacks/grown/oat = list("flour" = -5), + /obj/item/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), + /obj/item/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0), + /obj/item/reagent_containers/food/snacks/egg = list("egg" = -5), + /obj/item/reagent_containers/food/snacks/grown/rice = list("rice" = -5), + //Grinder stuff, but only if dry + /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), + /obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), + /obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), + /obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0), - //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! - /obj/item/slime_extract = list(), - /obj/item/reagent_containers/food = list(), - /obj/item/reagent_containers/honeycomb = list() + //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! + /obj/item/slime_extract = list(), + /obj/item/reagent_containers/food = list(), + /obj/item/reagent_containers/honeycomb = list() ) var/list/juice_items = list ( - //Juicer Stuff - /obj/item/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0), - /obj/item/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0), - /obj/item/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/banana = list("banana" = 0), - /obj/item/reagent_containers/food/snacks/grown/potato = list("potato" = 0), - /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/citrus/orange = list("orangejuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/citrus/lime = list("limejuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0), - /obj/item/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0), - /obj/item/reagent_containers/food/snacks/grown/pineapple = list("pineapplejuice" = 0) + //Juicer Stuff + /obj/item/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0), + /obj/item/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0), + /obj/item/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/banana = list("banana" = 0), + /obj/item/reagent_containers/food/snacks/grown/potato = list("potato" = 0), + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = list("orangejuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/citrus/lime = list("limejuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0), + /obj/item/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0), + /obj/item/reagent_containers/food/snacks/grown/pineapple = list("pineapplejuice" = 0) ) var/list/dried_items = list( - //Grinder stuff, but only if dry, - /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), - /obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), - /obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), - /obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0) + + //Grinder stuff, but only if dry, + /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), + /obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0), + /obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), + /obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0) ) var/list/holdingitems = list() @@ -231,59 +232,59 @@ /obj/machinery/reagentgrinder/attack_ai(mob/user) - return FALSE + return FALSE /obj/machinery/reagentgrinder/attack_hand(mob/user) - user.set_machine(src) - interact(user) + user.set_machine(src) + interact(user) /obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu - var/is_chamber_empty = 0 - var/is_beaker_ready = 0 - var/processing_chamber = "" - var/beaker_contents = "" - var/dat = "" + var/is_chamber_empty = 0 + var/is_beaker_ready = 0 + var/processing_chamber = "" + var/beaker_contents = "" + var/dat = "" - if(!operating) - for (var/obj/item/O in holdingitems) - processing_chamber += "\A [html_encode(O.name)]
" + if(!operating) + for (var/obj/item/O in holdingitems) + processing_chamber += "\A [html_encode(O.name)]
" - if (!processing_chamber) - is_chamber_empty = 1 - processing_chamber = "Nothing." - if (!beaker) - beaker_contents = "No beaker attached.
" - else - is_beaker_ready = 1 - beaker_contents = "The beaker contains:
" - var/anything = 0 - for(var/datum/reagent/R in beaker.reagents.reagent_list) - anything = 1 - beaker_contents += "[R.volume] - [R.name]
" - if(!anything) - beaker_contents += "Nothing
" - - - dat = {" - Processing chamber contains:
- [processing_chamber]
- [beaker_contents]
- "} - if (is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN))) - dat += "Grind the reagents
" - dat += "Juice the reagents

" - if(holdingitems && holdingitems.len > 0) - dat += "Eject the reagents
" - if (beaker) - dat += "Detach the beaker
" + if(!processing_chamber) + is_chamber_empty = 1 + processing_chamber = "Nothing." + if(!beaker) + beaker_contents = "No beaker attached.
" else - dat += "Please wait..." + is_beaker_ready = 1 + beaker_contents = "The beaker contains:
" + var/anything = 0 + for(var/datum/reagent/R in beaker.reagents.reagent_list) + anything = 1 + beaker_contents += "[R.volume] - [R.name]
" + if(!anything) + beaker_contents += "Nothing
" - var/datum/browser/popup = new(user, "reagentgrinder", "All-In-One Grinder") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open(1) - return + + dat = {" + Processing chamber contains:
+ [processing_chamber]
+ [beaker_contents]
+ "} + if(is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN))) + dat += "Grind the reagents
" + dat += "Juice the reagents

" + if(holdingitems && holdingitems.len > 0) + dat += "Eject the reagents
" + if(beaker) + dat += "Detach the beaker
" + else + dat += "Please wait..." + + var/datum/browser/popup = new(user, "reagentgrinder", "All-In-One Grinder") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open(1) + return /obj/machinery/reagentgrinder/Topic(href, href_list) if(..()) @@ -293,223 +294,228 @@ updateUsrDialog() return switch(href_list["action"]) - if ("grind") + if("grind") grind() if("juice") juice() if("eject") eject() - if ("detach") + if("detach") detach() /obj/machinery/reagentgrinder/proc/detach() - - if (usr.stat != 0) - return - if (!beaker) - return - beaker.loc = src.loc - beaker = null - update_icon() - updateUsrDialog() + if(usr.stat != 0) + return + if(!beaker) + return + beaker.loc = src.loc + beaker = null + update_icon() + updateUsrDialog() /obj/machinery/reagentgrinder/proc/eject() + if(usr.stat != 0) + return + if(holdingitems && holdingitems.len == 0) + return - if (usr.stat != 0) - return - if (holdingitems && holdingitems.len == 0) - return - - for(var/obj/item/O in holdingitems) - O.loc = src.loc - holdingitems -= O - holdingitems = list() - updateUsrDialog() + for(var/obj/item/O in holdingitems) + O.loc = src.loc + holdingitems -= O + holdingitems = list() + updateUsrDialog() /obj/machinery/reagentgrinder/proc/is_allowed(obj/item/reagent_containers/O) - for (var/i in blend_items) - if(istype(O, i)) - return TRUE - return FALSE + for (var/i in blend_items) + if(istype(O, i)) + return TRUE + return FALSE /obj/machinery/reagentgrinder/proc/get_allowed_by_id(obj/item/O) - for (var/i in blend_items) - if (istype(O, i)) - return blend_items[i] + for (var/i in blend_items) + if(istype(O, i)) + return blend_items[i] /obj/machinery/reagentgrinder/proc/get_allowed_snack_by_id(obj/item/reagent_containers/food/snacks/O) - for(var/i in blend_items) - if(istype(O, i)) - return blend_items[i] + for(var/i in blend_items) + if(istype(O, i)) + return blend_items[i] /obj/machinery/reagentgrinder/proc/get_allowed_juice_by_id(obj/item/reagent_containers/food/snacks/O) - for(var/i in juice_items) - if(istype(O, i)) - return juice_items[i] + for(var/i in juice_items) + if(istype(O, i)) + return juice_items[i] /obj/machinery/reagentgrinder/proc/get_grownweapon_amount(obj/item/grown/O) - if (!istype(O) || !O.seed) - return 5 - else if (O.seed.potency == -1) - return 5 - else - return round(O.seed.potency) + if(!istype(O) || !O.seed) + return 5 + else if(O.seed.potency == -1) + return 5 + else + return round(O.seed.potency) /obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/reagent_containers/food/snacks/grown/O) - if (!istype(O) || !O.seed) - return 5 - else if (O.seed.potency == -1) - return 5 - else - return round(5*sqrt(O.seed.potency)) + if(!istype(O) || !O.seed) + return 5 + else if(O.seed.potency == -1) + return 5 + else + return round(5*sqrt(O.seed.potency)) /obj/machinery/reagentgrinder/proc/remove_object(obj/item/O) - holdingitems -= O - qdel(O) + holdingitems -= O + qdel(O) /obj/machinery/reagentgrinder/proc/juice() - power_change() - if(stat & (NOPOWER|BROKEN)) - return - if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume)) - return - playsound(src.loc, 'sound/machines/juicer.ogg', 20, 1) - var/offset = prob(50) ? -2 : 2 - animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 250) //start shaking - operating = 1 + power_change() + if(stat & (NOPOWER|BROKEN)) + return + if(!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume)) + return + playsound(src.loc, 'sound/machines/juicer.ogg', 20, 1) + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 250) //start shaking + operating = 1 + updateUsrDialog() + spawn(50) + pixel_x = initial(pixel_x) //return to its spot after shaking + operating = 0 updateUsrDialog() - spawn(50) - pixel_x = initial(pixel_x) //return to its spot after shaking - operating = 0 - updateUsrDialog() - //Snacks - for (var/obj/item/reagent_containers/food/snacks/O in holdingitems) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break + //Snacks + for (var/obj/item/reagent_containers/food/snacks/O in holdingitems) + if(beaker.reagents.holder_full()) + break - var/allowed = get_allowed_juice_by_id(O) - if(isnull(allowed)) - break + var/allowed = get_allowed_juice_by_id(O) + if(isnull(allowed)) + break - for (var/r_id in allowed) + for (var/r_id in allowed) - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - var/amount = get_juice_amount(O) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = get_juice_amount(O) - beaker.reagents.add_reagent(r_id, min(amount*efficiency, space)) + beaker.reagents.add_reagent(r_id, min(amount * efficiency, space)) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break + if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break - remove_object(O) + remove_object(O) /obj/machinery/reagentgrinder/proc/grind() - power_change() - if(stat & (NOPOWER|BROKEN)) - return - if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume)) - return - playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) - var/offset = prob(50) ? -2 : 2 - animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 250) //start shaking - operating = 1 + power_change() + if(stat & (NOPOWER|BROKEN)) + return + if(!beaker || (beaker && beaker.reagents.holder_full())) + return + playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 250) //start shaking + operating = 1 + updateUsrDialog() + spawn(60) + pixel_x = initial(pixel_x) //return to its spot after shaking + operating = 0 updateUsrDialog() - spawn(60) - pixel_x = initial(pixel_x) //return to its spot after shaking - operating = 0 - updateUsrDialog() - //Snacks and Plants - for (var/obj/item/reagent_containers/food/snacks/O in holdingitems) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break + //Snacks and Plants + for (var/obj/item/reagent_containers/food/snacks/O in holdingitems) + if(beaker.reagents.holder_full()) + break - var/allowed = get_allowed_snack_by_id(O) - if(isnull(allowed)) - break + var/allowed = get_allowed_snack_by_id(O) + if(isnull(allowed)) + break - for (var/r_id in allowed) + for (var/r_id in allowed) - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - var/amount = allowed[r_id] - if(amount <= 0) - if(amount == 0) - if (O.reagents != null && O.reagents.has_reagent("nutriment")) - beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment")*efficiency, space)) - O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) - if (O.reagents != null && O.reagents.has_reagent("plantmatter")) - beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter")*efficiency, space)) - O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) - else - if (O.reagents != null && O.reagents.has_reagent("nutriment")) - beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment")*abs(amount)*efficiency), space)) - O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) - if (O.reagents != null && O.reagents.has_reagent("plantmatter")) - beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter")*abs(amount)*efficiency), space)) - O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = allowed[r_id] + if(amount <= 0) + if(amount == 0) + if(O.reagents != null && O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment") * efficiency, space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents != null && O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter") * efficiency, space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) + else + if(O.reagents != null && O.reagents.has_reagent("nutriment")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space)) + if(O.reagents != null && O.reagents.has_reagent("plantmatter")) + beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter") * abs(amount) * efficiency), space)) + O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space)) - else - O.reagents.trans_id_to(beaker, r_id, min(amount, space)) + else + O.reagents.trans_id_to(beaker, r_id, min(amount, space)) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break + if(beaker.reagents.holder_full()) + break - if(O.reagents.reagent_list.len == 0) - remove_object(O) + if(O.reagents.reagent_list.len == 0) + remove_object(O) - //Sheets - for (var/obj/item/stack/sheet/O in holdingitems) - var/allowed = get_allowed_by_id(O) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break - for(var/i = 1; i <= round(O.amount, 1); i++) - for (var/r_id in allowed) - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - var/amount = allowed[r_id] - beaker.reagents.add_reagent(r_id,min(amount*efficiency, space)) - if (space < amount) - break - if (i == round(O.amount, 1)) - remove_object(O) - break - //Plants - for (var/obj/item/grown/O in holdingitems) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break - var/allowed = get_allowed_by_id(O) - for (var/r_id in allowed) - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - var/amount = allowed[r_id] - if (amount == 0) - if (O.reagents != null && O.reagents.has_reagent(r_id)) - beaker.reagents.add_reagent(r_id,min(O.reagents.get_reagent_amount(r_id)*efficiency, space)) - else - beaker.reagents.add_reagent(r_id,min(amount*efficiency, space)) + //Sheets and rods(!) + for (var/obj/item/stack/O in holdingitems) + if(beaker.reagents.holder_full()) + break - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break + var/allowed = get_allowed_by_id(O) + if(isnull(allowed)) + break + + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + while(O.amount) //Grind until there's no more reagents + if(!space) //if no free space - exit + break + O.amount -= 1 //remove one from stack + for (var/r_id in allowed) + var/spaceused = min(allowed[r_id] * efficiency, space) + space -= spaceused + beaker.reagents.add_reagent(r_id, spaceused) + if(O.amount < 1) //if leftover small - destroy remove_object(O) + break - //Slime Extractis - for (var/obj/item/slime_extract/O in holdingitems) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break - var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume - if (O.reagents != null) - var/amount = O.reagents.total_volume - O.reagents.trans_to(beaker, min(amount, space)) - if (O.Uses > 0) - beaker.reagents.add_reagent("slimejelly",min(20*efficiency, space)) - remove_object(O) + //Plants + for (var/obj/item/grown/O in holdingitems) + if(beaker.reagents.holder_full()) + break + var/allowed = get_allowed_by_id(O) + for (var/r_id in allowed) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = allowed[r_id] + if(amount == 0) + if(O.reagents != null && O.reagents.has_reagent(r_id)) + beaker.reagents.add_reagent(r_id,min(O.reagents.get_reagent_amount(r_id) * efficiency, space)) + else + beaker.reagents.add_reagent(r_id,min(amount * efficiency, space)) - //Everything else - Transfers reagents from it into beaker - for (var/obj/item/reagent_containers/O in holdingitems) - if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) - break - var/amount = O.reagents.total_volume - O.reagents.trans_to(beaker, amount) - if(!O.reagents.total_volume) - remove_object(O) + if(beaker.reagents.holder_full()) + break + remove_object(O) + + //Slime Extractis + for (var/obj/item/slime_extract/O in holdingitems) + if(beaker.reagents.holder_full()) + break + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + if(O.reagents != null) + var/amount = O.reagents.total_volume + O.reagents.trans_to(beaker, min(amount, space)) + if(O.Uses > 0) + beaker.reagents.add_reagent("slimejelly",min(20 * efficiency, space)) + remove_object(O) + + //Everything else - Transfers reagents from it into beaker + for (var/obj/item/reagent_containers/O in holdingitems) + if(beaker.reagents.holder_full()) + break + var/amount = O.reagents.total_volume + O.reagents.trans_to(beaker, amount) + if(!O.reagents.total_volume) + remove_object(O) diff --git a/code/modules/reagents/chemistry/reagents/drugs.dm b/code/modules/reagents/chemistry/reagents/drugs.dm index 89362dc9166..760b2a7bc01 100644 --- a/code/modules/reagents/chemistry/reagents/drugs.dm +++ b/code/modules/reagents/chemistry/reagents/drugs.dm @@ -568,21 +568,21 @@ /datum/reagent/fliptonium/on_mob_life(mob/living/M) var/update_flags = STATUS_UPDATE_NONE if(current_cycle == 5) - M.SpinAnimation(speed = 11, loops = -1) + M.SpinAnimation(speed = 11, loops = -1, parallel = FALSE) if(current_cycle == 10) - M.SpinAnimation(speed = 10, loops = -1) + M.SpinAnimation(speed = 10, loops = -1, parallel = FALSE) if(current_cycle == 15) - M.SpinAnimation(speed = 9, loops = -1) + M.SpinAnimation(speed = 9, loops = -1, parallel = FALSE) if(current_cycle == 20) - M.SpinAnimation(speed = 8, loops = -1) + M.SpinAnimation(speed = 8, loops = -1, parallel = FALSE) if(current_cycle == 25) - M.SpinAnimation(speed = 7, loops = -1) + M.SpinAnimation(speed = 7, loops = -1, parallel = FALSE) if(current_cycle == 30) - M.SpinAnimation(speed = 6, loops = -1) + M.SpinAnimation(speed = 6, loops = -1, parallel = FALSE) if(current_cycle == 40) - M.SpinAnimation(speed = 5, loops = -1) + M.SpinAnimation(speed = 5, loops = -1, parallel = FALSE) if(current_cycle == 50) - M.SpinAnimation(speed = 4, loops = -1) + M.SpinAnimation(speed = 4, loops = -1, parallel = FALSE) M.AdjustDrowsy(-6) update_flags |= M.AdjustParalysis(-1.5, FALSE) @@ -594,11 +594,11 @@ /datum/reagent/fliptonium/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume) if(method == REAGENT_INGEST || method == REAGENT_TOUCH) - M.SpinAnimation(speed = 12, loops = -1) + M.SpinAnimation(speed = 12, loops = -1, parallel = FALSE) ..() /datum/reagent/fliptonium/on_mob_delete(mob/living/M) - M.SpinAnimation(speed = 12, loops = -1) + M.SpinAnimation(speed = 12, loops = -1, parallel = FALSE) /datum/reagent/fliptonium/overdose_process(mob/living/M, severity) var/list/overdose_info = ..() diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 2b6910f5523..add53ff04a9 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -155,7 +155,7 @@ current_potion = O to_chat(user, "You load [O] in the console's potion slot[replaced ? ", replacing the one that was there before" : ""].") return - else if(istype(O, /obj/item/storage/bag)) + else if(istype(O, /obj/item/storage/bag) || istype(O, /obj/item/storage/box)) var/obj/item/storage/P = O var/loaded = 0 for(var/obj/item/reagent_containers/food/snacks/monkeycube/MC in P.contents) @@ -191,7 +191,10 @@ var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = target - if(GLOB.cameranet.checkTurfVis(remote_eye.loc)) + if(iswallturf(remote_eye.loc)) + to_chat(owner, "You can't place slime here.") + return + else if(GLOB.cameranet.checkTurfVis(remote_eye.loc)) for(var/mob/living/simple_animal/slime/S in X.stored_slimes) S.forceMove(remote_eye.loc) S.visible_message("[S] warps in!") @@ -238,6 +241,12 @@ if(LAZYLEN(SSmobs.cubemonkeys) >= GLOB.configuration.general.monkey_cube_cap) to_chat(owner, "Bluespace harmonics prevent the spawning of more than [GLOB.configuration.general.monkey_cube_cap] monkeys on the station at one time!") return + else if(iswallturf(remote_eye.loc)) + to_chat(owner, "You can't place monkey here.") + return + else if(!X.monkeys) + to_chat(owner, "[X] doesn't have monkeys.") + return else if(X.monkeys >= 1) var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(remote_eye.loc) SSmobs.cubemonkeys += food @@ -323,6 +332,8 @@ to_chat(owner, "Ctrl-click a slime to scan it.") to_chat(owner, "Alt-click a slime to feed it a potion.") to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.") + var/obj/machinery/computer/camera_advanced/xenobio/X = owner.machine + to_chat(owner, "[X] now has [X.monkeys] monkeys left.") // // Alternate clicks for slime, monkey and open turf if using a xenobio console @@ -415,7 +426,10 @@ var/mob/camera/aiEye/remote/xenobio/E = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin var/area/turfarea = get_area(T) - if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) + if(iswallturf(T)) + to_chat(user, "You can't place slime here.") + return + else if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) for(var/mob/living/simple_animal/slime/S in X.stored_slimes) S.forceMove(T) S.visible_message("[S] warps in!") @@ -430,8 +444,10 @@ var/mob/camera/aiEye/remote/xenobio/E = C.remote_control var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin var/area/turfarea = get_area(T) - - if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) + if(iswallturf(T)) + to_chat(user, "You can't place monkey here.") + return + else if(turfarea.name == E.allowed_area || turfarea.xenobiology_compatible) if(X.monkeys >= 1) var/mob/living/carbon/human/monkey/food = new /mob/living/carbon/human/monkey(T) food.LAssailant = C diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 8a6c5b159a4..bf87fcb685a 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -521,6 +521,14 @@ visible_message("[src]'s monitor flashes, \"[world.time - reqtime] seconds remaining until another requisition form may be printed.\"") return + var/datum/supply_packs/P = locateUID(params["crate"]) + if(!istype(P)) + return + + if(P.times_ordered >= P.order_limit && P.order_limit != -1) //If the crate has reached the limit, do not allow it to be ordered. + to_chat(usr, "[P.name] is out of stock, and can no longer be ordered.") + return + var/amount = 1 if(params["multiple"] == "1") // 1 is a string here. DO NOT MAKE THIS A BOOLEAN YOU DORK var/num_input = input(usr, "Amount", "How many crates? (20 Max)") as null|num @@ -528,11 +536,6 @@ return amount = clamp(round(num_input), 1, 20) - - var/datum/supply_packs/P = locateUID(params["crate"]) - if(!istype(P)) - return - var/timeout = world.time + 600 // If you dont type the reason within a minute, theres bigger problems here var/reason = input(usr, "Reason", "Why do you require this item?","") as null|text if(world.time > timeout || !reason || (!is_public && !is_authorized(usr)) || ..()) @@ -573,10 +576,13 @@ if(SO.ordernum == ordernum) O = SO P = O.object - if(SSshuttle.points >= P.cost) + if(P.times_ordered >= P.order_limit && P.order_limit != -1) //If this order would put it over the limit, deny it + to_chat(usr, "[P.name] is out of stock, and can no longer be ordered.") + else if(SSshuttle.points >= P.cost) SSshuttle.requestlist.Cut(i,i+1) SSshuttle.points -= P.cost SSshuttle.shoppinglist += O + P.times_ordered += 1 investigate_log("[key_name(usr)] has authorized an order for [P.name]. Remaining points: [SSshuttle.points].", "cargo") else to_chat(usr, "There are insufficient supply points for this request.") diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 12b5437f8c4..17daa66b9aa 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -51,7 +51,7 @@ implant_color = "#ff9000" origin_tech = "materials=4;engineering=4;biotech=4" aug_message = "You see the diagnostic information of the synthetics around you..." - HUD_type = DATA_HUD_DIAGNOSTIC + HUD_type = DATA_HUD_DIAGNOSTIC_ADVANCED /obj/item/organ/internal/cyberimp/eyes/hud/security name = "Security HUD implant" diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 8250665d587..2d6cb8d79e8 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -76,7 +76,7 @@ owner.emote("cough") //respitory tract infection if(is_bruised()) - if(prob(2)) + if(prob(2) && !(NO_BLOOD in owner.dna.species.species_traits)) owner.custom_emote(1, "coughs up blood!") owner.bleed(1) if(prob(4)) diff --git a/code/modules/tgui/modules/ghost_hud_panel.dm b/code/modules/tgui/modules/ghost_hud_panel.dm index 712f17909a6..456df088827 100644 --- a/code/modules/tgui/modules/ghost_hud_panel.dm +++ b/code/modules/tgui/modules/ghost_hud_panel.dm @@ -13,7 +13,7 @@ GLOBAL_DATUM_INIT(ghost_hud_panel, /datum/ui_module/ghost_hud_panel, new) var/list/hud_type_lookup = list( "medical" = DATA_HUD_MEDICAL_ADVANCED, "security" = DATA_HUD_SECURITY_ADVANCED, - "diagnostic" = DATA_HUD_DIAGNOSTIC + "diagnostic" = DATA_HUD_DIAGNOSTIC_ADVANCED ) /datum/ui_module/ghost_hud_panel/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.observer_state) diff --git a/config/example/config.toml b/config/example/config.toml index 9d3f1303ace..c64100a765e 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -720,6 +720,8 @@ shutdown_on_reboot = false #_2fa_auth_host = "http://127.0.0.1:8080" # List of IP addresses to be ignored by the world/Topic rate limiting. Useful if you have other services topic_ip_ratelimit_bypass = ["127.0.0.1"] +# Turn this to true if you are running a production server +is_production = false # Server instance ID. This is used for tagging the server in the database # You do NOT want to change this once you are running in production instance_id = "aa_debug" diff --git a/icons/_nanomaps/Delta_nanomap_z1.png b/icons/_nanomaps/Delta_nanomap_z1.png index 7a88d186c7f..9382029ba8f 100644 Binary files a/icons/_nanomaps/Delta_nanomap_z1.png and b/icons/_nanomaps/Delta_nanomap_z1.png differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 8350faf7d16..80d2b820e15 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/human_races/r_cloth_golem.dmi b/icons/mob/human_races/r_cloth_golem.dmi new file mode 100644 index 00000000000..06d829c6e5f Binary files /dev/null and b/icons/mob/human_races/r_cloth_golem.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 6e0e68794f9..5277d574f1a 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/robot_items.dmi b/icons/mob/robot_items.dmi index d84a6c291c1..aada2e5c8b7 100644 Binary files a/icons/mob/robot_items.dmi and b/icons/mob/robot_items.dmi differ diff --git a/icons/obj/aibots.dmi b/icons/obj/aibots.dmi index a45ff1546da..655b93dc7af 100644 Binary files a/icons/obj/aibots.dmi and b/icons/obj/aibots.dmi differ diff --git a/icons/obj/food/seafood.dmi b/icons/obj/food/seafood.dmi index 636639f7d3e..aa052f929d6 100644 Binary files a/icons/obj/food/seafood.dmi and b/icons/obj/food/seafood.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 42e1f9fec25..b8d614af470 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 5ef2a56e492..e4850ea368a 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -287,6 +287,15 @@ window "rpane" is-checked = true group = "rpanemode" button-type = pushbox + elem "webmap" + type = BUTTON + pos = 358,7 + size = 50x16 + anchor1 = none + anchor2 = none + saved-params = "is-checked" + text = "Map" + command = "webmap" elem "infob" type = BUTTON pos = 64,7 @@ -301,8 +310,8 @@ window "rpane" button-type = pushbox elem "wikib" type = BUTTON - pos = 155,7 - size = 60x16 + pos = 150,7 + size = 50x16 anchor1 = none anchor2 = none saved-params = "is-checked" @@ -310,8 +319,8 @@ window "rpane" command = "wiki" elem "forumb" type = BUTTON - pos = 220,7 - size = 60x16 + pos = 202,7 + size = 50x16 anchor1 = none anchor2 = none saved-params = "is-checked" @@ -319,8 +328,8 @@ window "rpane" command = "forum" elem "rulesb" type = BUTTON - pos = 285,7 - size = 60x16 + pos = 254,7 + size = 50x16 anchor1 = none anchor2 = none saved-params = "is-checked" @@ -328,8 +337,8 @@ window "rpane" command = "rules" elem "githubb" type = BUTTON - pos = 350,7 - size = 60x16 + pos = 306,7 + size = 50x16 anchor1 = none anchor2 = none saved-params = "is-checked" diff --git a/paradise.dme b/paradise.dme index 89df5cbfbc0..3c3fd84a257 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1164,6 +1164,7 @@ #include "code\game\verbs\ooc.dm" #include "code\game\verbs\randomtip.dm" #include "code\game\verbs\suicide.dm" +#include "code\game\verbs\webmap.dm" #include "code\game\verbs\who.dm" #include "code\modules\admin\admin.dm" #include "code\modules\admin\admin_investigate.dm"